Archivio

Archivio per la categoria ‘Linux’

How to configure Xdebug on Ubuntu with Zend Server

17 febbraio 2011 Nessun commento

I assume you have properly installed and configured Zend Server CE from the repository.

First of all you need to install automake:

sudo apt-get update && sudo apt-get upgrade
sudo apt-get install automake

Install Xdebug with PECL as root:

# pecl install xdebug

Note: if you don’t have PECL in your path you can prepend the absolute path before the command

# /usr/local/zend/bin/pecl install xdebug

Now you must edit php.ini file.

sudo nano /usr/local/zend/etc/php.ini

Add these lines at the end of file:

; Xdebug
zend_extension = /usr/local/zend/lib/php_extensions/xdebug.so
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000

Note: Xdebug is incompatible with theZend Debugger extension. To disable this component you can log into Zend Server control page at https://localhost:10082 and navigate to tab Server Setup > Components then turn off Zend Debugger. Remember to click the Restart PHP button to apply the changes.

Links:

Set up a simple VNC server

13 ottobre 2010 Nessun commento

Using built in VNC server for KDE or Gnome I ran into several problems, like screen freeze or lost connection.

If you need a VNC server for your current desktop session in (K)Ubuntu you can use x11vnc.

1. install packages

sudo apt-get install x11vnc

2. set a password

x11vnc -storepasswd

3. start the server

x11vnc -forever -noxdamage -usepw

If you want to access your desktop via browser using a java applet you have to installa vnc-java package and use this commans:

sudo apt-get install vnc-java
x11vnc -forever -noxdamage -usepw -httpdir /usr/share/vnc-java/ -httpport 5800

Categorie:(K)Ubuntu, Debian, KDE, Linux Tag: , ,

Impostare l’ambiente di sviluppo per Zend Framework su Ubuntu

18 gennaio 2010 2 commenti

Se vogliamo iniziare a conoscere il fantastico mondo di Zend Framework sarà necessario creare un ambiente di sviluppo adatto alle nostre esigenze. In questa guida vedremo come configurare la nostra distribuzione Ubuntu per poter lavorare in locale con tutti gli strumenti necessari.

Lo scopo di questo tutorial è quello di ottenere un sistema di sviluppo per Zend Framework

Configurazione del sistema operativo

Quello che noi vogliamo ottenere è un server LAMP configurato ah hoc per le nostre applicazioni web. Per prima cosa installiamo MySQL:

sudo apt-get install mysql-server mysql-client

Se vogliamo rendere accessibile il server MySQL dall’esterno dobbiamo modificare il file /etc/mysql/my.conf

sudo nano /etc/mysql/my.conf

e commentare la linea

#bind 127.0.0.1

Questa configurazione del sistema utilizzerà Zend Server CE che comprende la propria versione di PHP e le librerie vere e proprie di Zend Framework. Fortunatamente Zend ha messo ha disposizione i repository contenenti tutti i pacchetti per le varie distribuzioni di Linux tra cui Debian/Ubuntu. Seguiamo quindi le indicazioni fornite aggiungiamo il nostro repository al file /etc/apt/source.list.

deb http://repos.zend.com/zend-server/deb server non-free

Prosegui la lettura…

Tunnel SSH

12 gennaio 2010 Nessun commento

L’idea di poter creare un canale virtuale cifrato tra due computer remoti attraverso internet  permette di scambiare dati in modo sicuro e apre le porte a numerose applicazioni.

Immaginiamo di dover accedere alla nostra rete privata di casa senza l’uso di VPN da una postazione esterna alla LAN.

Chiameremo server il pc di casa che accetta la connessione dall’esterno sulla porta 22 e client il pc remoto dal quale vogliamo connetterci. Per creare il nostro tunnell SSH non dobbiamo far altro che lanciare il seguente comando dal client:

ssh -N -D 9999 user@server.mydomain.com

Verrà creato un socket tra client e server, l’opzione -N impedisce che vengano eseguiti comandi remoti mentre l’opzione -D 9999 specifica che vogliamo creare un socket sulla porta 9999 del client. A questo punto abbiamo un canale collegato direttamente al nostro server accessibile dal nostro browser. Per poter navigare come se fossimo sul server è necessario configurare firefox in modo che utilizzi il socket. Abbiamo due opzioni, una consiste nel modificare le preferenze direttamente nel browser, la seconda consiste nell’installare l’estensione Foxy Proxy. Quest’ultimo è comodo per facilitare il passaggio tra navigazione diretta e navigazione tramite socket. Nel primo caso andiamo nelle preferenze di Firefox, selezioniamo la tab Avanzate, poi la tab Rete e clicchiamo su Impostazioni di rete, selezioniamo quindi la voce “Configurazione manuale del proxy“. Scriviamo localhost nella casella Proxy HTTP e 9999 nella casella Porta. Prosegui la lettura…

Categorie:Linux Tag: , , ,

Supporto USB per VirtualBox 2.2 su Ubuntu 9.04 Jaunty

13 maggio 2009 11 commenti

Ecco come abilitare il supporto USB per VirtualBox 2.2 su Ubuntu 9.04.

Per prima cosa assicuriamoci di disinstallare eventualmente la versione open source (OSE), infatti per il nostro scopo utilizzeremo la versione proprietaria.

sudo apt-get autoremove virtualbox-ose

A questo punto aggiungiamo i repository per VirtualBox

sudo nano /etc/apt/sources.list

Aggiungiamo questa riga in fondo al file

deb http://download.virtualbox.org/virtualbox/debian jaunty non-free

Preleviamo la chiave pubblica

wget -q http://download.virtualbox.org/virtualbox/debian/sun_vbox.asc -O- | sudo apt-key add -

Installiamo VirtualBox

sudo apt-get update
sudo apt-get install virtualbox-2.2

Aggiugiamo il nostro utente al gruppo vboxusers

sudo gpasswd -a $USER vboxusers

Cerchiamo il gid di ‘vboxusers’

grep vboxusers /etc/group

Il comando restituirà una stringa come questa

vboxusers: x:123:username

Inseriamo una riga in fondo al file /etc/fstab e sostituiamo il devgid col numero restituito nel comando precedente, nel mio caso 123.

none /proc/bus/usb usbfs devgid=123,devmode=664 0 0

Ora senza riavviare il sistema e lanciando il comando

sudo mount -a

dovreste essere in grado di vedere le vostre periferiche USB su VirtualBox

Categorie:(K)Ubuntu, Linux Tag: ,

Backup: sincronizziamo con rsync

8 giugno 2008 2 commenti

rsync_logo

Avendo la necessità di tenere sempre una copia aggiornata dei miei dati sul PC di lavoro ho deciso di creare uno script bash che automaticamente crea una copia di backup incrementale sul mio server.

Il comando che uso è rsync, un programma che ha molte delle caratteristiche di rcp, ma con in aggiunta la possibilità di utilizzare il protocollo rsync remote-update che permette un rapido trasferimento dei file.

Ecco il mio script (backup.sh):

#!/bin/bash

COMMAND=”rsync -r -t -p -o -g -x -v –progress –delete”
SOURCE=”/home/max”
DESTINATION=”max@server.example.com:/home/max/backup”

DIR=”Documenti”
echo “$DIR”
eval $COMMAND “$SOURCE/$DIR/” “$DESTINATION/$DIR”

DIR=”.kde”
echo “$DIR”
eval $COMMAND “$SOURCE/$DIR/” “$DESTINATION/$DIR”

Il funzionamento è semplice. Ho definito innanzi tutto alcune variabili:

  • COMMAND: contiene la riga di comando per rsync con le varie opzioni
  • SOURCE: è la directory sorgente
  • DESTINATION: è la directory di destinazione, definita con il formato user@server:/destination_dir

Dopodiché è sufficiente definire la directory per la quale vogliamo effettuare il backup:

  • DIR: directory locale da sincronizzare

È possibile aggiungere più directory all’interno dello stesso script.

Rsync mette a disposizione numerose opzioni che permettono di personalizzare i backup a seconda delle proprie esigenze. Per la lista completa delle opzioni, naturalmente si farà riferimento alla pagina di manuale

man 1 rsync

Nota: per chi non lo sapesse esiste un tool grafico Grsync che rende più user friendly l’uso di questo programma.

Grsync

Una volta creato lo script sarà sufficiente renderlo eseguibile e farlo eseguire a cron a intervalli di tempo regolari e grazie all’autenticazione a chiave pubblica, lo script non chiederà la password del server ogni volta che viene eseguito.

Programmi correlati: rdiff-backup, unison

Categorie:Linux Tag: , ,

Ntpdate: Sincronizzare l'orologio di sistema

11 febbraio 2008 Nessun commento

Quando è indispensabile tenere la data di sistema sempre aggiornata è consigliabile affidarsi alla sincronizzazione con un server NTP (Network Time Protocol).

In una distribuzione Debian, il comando più diffuso è ntpdate e lo installiamo con apt-get.

#apt-get install ntpdate

A questo punto il nostro sistema è automaticamente sincronizzato con il server NTP pool.ntp.org. Per modificare le impostazioni di default possiamo modificare il file /etc/default/ntpdate:

#nano /etc/default/ntpdate

È possibile lanciare il comando ntpdate specificando direttamente il server NTP a cui collegarsi:

#ntpdate 0.europe.pool.ntp.org

Categorie:(K)Ubuntu, Debian, Linux Tag: ,

SSH: autenticazione con chiave pubblica

10 febbraio 2008 Nessun commento

Un’alternativa alla classica autenticazione tramite password in ssh è l’utilizzo della chiave pubblica.

Ecco una breve guida che può essere utile per configurare l’accesso a un server remoto senza inserire la password.

key_diagram

Questa metodo è utlite in alcuni casi:

  • Sicurezza: previene il rischio di attacchi brute force (solo se è disabilitata l’autenticazione con password)
  • Comodità: è utile quando si utilizzano script automatici che richiedono l’accesso ad un server remoto (per esempio script di backup)

Per semplicità in questa guida mostrerò l’autenticazione di un utente da una macchina client come utente in una macchina server.
Attenzione: evitare assolutamente l’autenticazione a chiave pubblica tra due sistemi root – root.

Generazione delle chiavi RSA

Innanzi tutto assicurarsi di avere la directory .ssh nella propria home. Se non è presente la creiamo e settiamo i permessi:

client$ mkdir ~/.ssh
client$ chmod 700 ~/.ssh

Ora è necessario generare la coppia chiave privata / chiave pubblica RSA sul client:

client$ ssh-keygen -f ~/.ssh/id_rsa -t rsa
Enter passphrase (empty for no passphrase): …
Enter same passphrase again: …

Viene richiesto l’inserimento di una passphrase. Essa dovrà essere non vuota ed è consigliabile inserirne una composta da almeno 16 caratteri. Non scegliere una frase semplice e facilmente rintracciabile. È abitudine creare passphrase estratte da libri, poemi, testi di canzoni, le cui parole sono spesso intervallate da caratteri non alfabetici.

Le chiavi RSA generate si trovano ora in ~/.ssh/id_rsa per la chiave privata e ~/.ssh/id_rsa.pub per la chiave pubblica.

È buona norma proteggere tali file settando adeguati permessi:

client$ chmod go-w ~/
client$ chmod 700 ~/.ssh
client$ chmod go-rwx ~/.ssh/*

Distribuzione della chiave pubblica

La chiave pubblica precedentemente generata ~/.ssh/id_rsa.pub nel client deve essere copiata sul server nel file ~/.ssh/authorized_keys. Iniziamo a copiare la chiave pubblica nella home dell’utente del server, che si trova all’indirizzo server.example.org:

client$ scp ~/.ssh/id_rsa.pub server.example.org:

Nota: fate attenzione ai due punti “:”.

A questo punto effettuaiamo il login al server e importaiamo la chiave del client:

server$ mkdir ~/.ssh
server$ chmod 700 ~/.ssh
server$ cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
server$ chmod 600 ~/.ssh/authorized_keys
server$ rm ~/id_rsa.pub

Nel caso in cui si vogliano importare più chiavi pubbliche è necessario effettuare un append della chiave pubblica al file ~/.ssh/authorized_keys. Ogni chiave pubblica deve stare su una riga.

Ora possiamo effettuare la nostra connessione dal client al server senza l’inserimento della password:

client$ ssh server.example.org
Enter passphrase for key ‘~/.ssh/id_rsa’:

Ci verrà richiesta la passphrase, precedentemente scelta, per verificare l’autenticazione.

Inconveniente

Ogni volta che vogliamo effettuare un accesso al server remoto ci verrà richiesto l’inserimento della passphrase. È evidente che non è ciò che volevamo ottenere.

Un’idea comoda, ma meno sicura, consiste nell’impostare la chiave RSA senza passphrase.

Un compromesso invece consiste nell’utilizzo del comando ssh-agent, ma questo è un altro capitolo. Rimando alla guida di manuale:

$ man 1 ssh-agent

ssh-agent is a program to hold private keys used for public key authenti‐
cation (RSA, DSA). The idea is that ssh-agent is started in the begin‐
ning of an X-session or a login session, and all other windows or pro‐
grams are started as clients to the ssh-agent program. Through use of
environment variables the agent can be located and automatically used for
authentication when logging in to other machines using ssh(1).

Fonti:
http://sial.org/howto/openssh/publickey-auth/