Server Web · 8 min read · Jan 03, 2026
Server Web di Base Su Ubuntu 9.04 Con Zend Framework
Server Web di Base Su Ubuntu 9.04 Con Zend Framework
Questa è una breve descrizione dei passaggi necessari per impostare un server Web di base con il Zend Framework installato.
Come sempre, seguirò una delle eccellenti guide di Falko, poiché non ha senso reinventare la ruota, per così dire. Seguirò The Perfect Server - Ubuntu 9.04 [ISPConfig 3]. Tuttavia, poiché ho bisogno di un server per applicazioni Web per test di pre-produzione, non ho bisogno di Mail o ISPConfig, quindi seguirò la Guida ISPConfig-3 dal Passo 1 - 11 e inizierò la mia versione da lì.
Non installerò Postfix, Courier (non ho bisogno di Mail o IMAP), Saslauthd (Autenticazione), non installerò nemmeno rootkit hunter o utilità binarie, quindi li escluderò:
12 Installare MySQL
Possiamo installare MySQL utilizzando il seguente comando:
apt-get install mysql-client mysql-serverTi verranno poste le seguenti domande:
Nuova password per l’utente MySQL “root”: <– yourrootsqlpassword
Ripeti la password per l’utente MySQL “root”: <– yourrootsqlpassword
Vogliamo che MySQL ascolti su tutte le interfacce, non solo su localhost, quindi modifichiamo /etc/mysql/my.cnf e commentiamo la riga bind-address = 127.0.0.1:
nano /etc/mysql/my.cnf[...]
# Invece di skip-networking, il valore predefinito è ora ascoltare solo su
# localhost, che è più compatibile e non è meno sicuro.
#bind-address = 127.0.0.1
[...] Poi riavviamo MySQL:
/etc/init.d/mysql restartOra controlla che la rete sia abilitata. Esegui
netstat -tap | grep mysqlL’output dovrebbe apparire così:
root@server1:~# netstat -tap | grep mysql
tcp 0 0 *:mysql *:* LISTEN 8474/mysqld
root@server1:~#13 Installare Apache2, Java e phpMyAdmin
Non installerò PHP5 a questo punto poiché ho un paio di modi diversi per installarlo nella sezione successiva. Sappi solo che se intendi compilare dal sorgente, potresti voler leggere la sezione successiva e considerare di non installare apache a questo punto. Altrimenti, tutto sarà installato come segue:
sudo su
apt-get install apache2 sun-java6-bin phpmyadminVedrai la seguente domanda:
Server web da riconfigurare automaticamente: <– apache2
EULA di Java <– Tab per leggere l’EULA poi OK
Accetti i termini della licenza DLJ? <– Sì
Configurare il database per phpmyadmin con dbconfig-common? <– Sì
Password dell’utente amministrativo del tuo database: <– yourrootsqlpassword
Password dell’applicazione MySQL per phpmyadmin: <– [vuoto]
14 Installazioni PHP5:
Abbiamo diversi modi per installare PHP, a seconda di ciò di cui hai bisogno. Ho avuto successi variabili nell’ottenere i moduli installati di cui ho bisogno, quindi ti darò tutti i modi che ho provato per installare PHP e puoi scegliere quale ti serve.
apt-get install dal repository ubuntu
Possiamo semplicemente usare Apt per ottenere la versione di PHP dai repository ubuntu. Questo sarà il modo più semplice e porterà al successo più facile e dovrebbe essere usato se non hai requisiti specifici da PHP
apt-get install php5 php5-common php5-cliapt-get install da una sorgente debian
Debian ha aggiornato il proprio repository all’ultima versione di PHP5 e credo che abbia inclusa la libreria PHP5 GD completa, quindi potrebbe essere un percorso più semplice per il successo rispetto alla compilazione dal sorgente, ma significa che stai usando una sorgente che non è riconosciuta da Ubuntu e dovrai decidere se va bene per te.
Detta decisione, devi aggiungere i repository debian alla tua lista di sorgenti, cosa che puoi fare modificando la tua lista di sorgenti come prima.
Possiamo semplicemente usare Apt per ottenere la versione di PHP dai repository ubuntu.
echo deb http://packages.dotdeb.org stable all >> /etc/apt/sources.listecho deb-src http://packages.dotdeb.org stable all >> /etc/apt/sources.listPoi esegui
apt-get updateDopo questo puoi scegliere di aggiornare qualsiasi altra installazione che debian ha aggiornato.
apt-get upgrade
apt-get install php5 php5-common php5-cli
rebootCompilare dal sorgente del repository
Sebbene sia stato un successo, ha installato la versione ubuntu di PHP5, che va bene per la maggior parte delle installazioni, questo ti permetterà di abilitare alcune cose extra che non vengono incluse nell’installazione di aptitude. Puoi usare ./configure –help per vedere cosa è disponibile per essere abilitato mentre compili.
aptitude install libmysqlclient15-dev libxml2-dev libcurl4-openssl-dev libjpeg-dev libpng-dev sendmail libmcrypt-dev libmhash-devQuesto ti permetterà di installare la versione sicura di ubuntu con extra che potrebbero non essere inclusi nella versione standard.
cd /usr/src
apt-get install build-essential debhelper fakeroot
apt-get source php5
apt-get install build-dep php5
cd php5-5.2.6.dfsg.1/
nano debian/rulesTrova e sostituisci
[...]
--with-gd=shared,/usr --enable-gd-native-ttf \
[...] con
[...]
--with-gd=shared, --enable-gd-native-ttf \
[...] dpkg-buildpackage -rfakeroot
cd ..
# Installa il nuovo pacchetto php5-gd
dpkg -i php5-gd_5.2.6-1ubuntu6.3_i386.debCompilazione completa da sorgente esterna
Quando ho eseguito questo ultimo passaggio, ho dovuto ricompilare apache2 anche per far riconoscere la mia nuova versione di php5. Non sono sicuro del perché o se fosse solo un problema mio, quindi testerò un paio di volte in più e modificherò questo post per aggiornare i metodi se riesco a ottenere successo senza installare apache2.
aptitude install php5-dev libmysqlclient15-dev libxml2-dev libcurl4-openssl-dev libjpeg-dev libpng-dev sendmail libmcrypt-dev libmhash-dev bzip2 libcurl3 curl libpng12-dev libfreetype6-dev libmcrypt4 libmcrypt-dev libmhash2 libxslt1-dev apache2-prefork-dev libjpeg62-dev freetype2 libxft libxft-dev libcurl4-gnutls-devcd /usr/src
wget http://apache.mirror.anlx.net/httpd/httpd-2.0.63.tar.gz
tar -zxvf httpd-2.0.63.tar.gz
cd httpd-2.0.63
./configure --help
./configure --prefix=/etc --enable-rewrite --enable-so --enable-ssl
make
make install
/etc/bin/apachectl start
/etc/bin/apachectl stopcd /usr/src
wget http://uk.php.net/get/php-5.2.9.tar.gz/from/this/mirror
tar xzvf php-5.2.9.tar.gz
cd php-5.2.9
./configure --help
./configure --prefix=/etc/php5/apache2 --with-apxs2=/usr/bin/apxs2 --with-config-file-path=/etc/php5/apache2 --enable-zip --enable-calendar --enable-mbstring --with-mysql --with-mysqli --with-curl --with-curlwrappers --with-zlib --with-gd --with-jpeg-dir --with-png-dir --with-mcrypt --with-mhash --with-pdo-mysql
make
make install
./configure --prefix=/etc/php5/cli --with-apxs2=/usr/bin/apxs2 --with-config-file-path=/etc/php5/cli --enable-zip --enable-calendar --enable-mbstring --with-mysql --with-mysqli --with-curl --with-curlwrappers --with-zlib --with-gd --with-jpeg-dir --with-png-dir --with-mcrypt --with-mhash --with-pdo-mysql
make
make install-cliHo ricevuto alcuni avvisi riguardo alla necessità di dichiarazioni LoadModule in apache2.conf e httpd.conf, se trovi anche tu questo, puoi aggiungere dichiarazioni fittizie commentate e fare di nuovo install.
nano /etc/apache2/apache2.conf[...]
# Includi la configurazione del modulo:
Include /etc/apache2/mods-enabled/*.load
Include /etc/apache2/mods-enabled/*.conf
# Direttiva LoadModule fittizia per facilitare le installazioni di moduli
#LoadModule dummy_module /usr/lib/apache2/modules/mod_dummy.so
[...] 15 Testare PHP e la Libreria GD / Ottenere Dettagli Sulla Tua Installazione PHP5
Poiché abbiamo PHP-CLI installato, possiamo testare l’installazione della Libreria GD con:
php -r "var_dump(function_exists('imagecreatefromjpeg'));" <-- restituirà true se la Libreria GD è installata
php -r "var_dump(function_exists('imagerotate'));" <-- sarà false se è installata la libreria limitataLa radice del documento del sito web predefinito è /var/www. Ora creeremo un piccolo file PHP (phpinfo.php) in quella directory e lo chiameremo in un browser. Il file mostrerà molti dettagli utili sulla nostra installazione di PHP, come la versione di PHP installata.
nano /var/www/phpinfo.phpOra chiamiamo quel file in un browser (ad esempio, http://192.168.0.100/phpinfo.php):
Ora dovresti vedere, PHP5 sta funzionando, scorrendo verso il basso, vedrai tutti i moduli che sono già abilitati in PHP5. Dovresti anche vedere MySQL elencato lì.
16 Configurare le installazioni
Dobbiamo assicurarci che rewrite_module sia abilitato in apache2 affinché il Zend Framework funzioni correttamente, quindi controlliamo:
a2dismodSperiamo che tu possa vedere rewrite elencato nell’elenco dei moduli attualmente abilitati. Se non lo è, premi invio per non disabilitare nulla e poi emetti:
a2enmod rewritePoi dobbiamo abilitare AllowOverride All nel file del sito predefinito
nano /etc/apache2/sites-available/default[...]
DocumentRoot /var/www/
Options FollowSymLinks
AllowOverride All
<directory var="" www="">
Options FollowSymLinks
AllowOverride All
Order allow,deny
allow from all
[...] Dopo questo dobbiamo proteggere phpMyAdmin eliminando il file /etc/phpmyadmin/htpasswd.setup…
rm -f /etc/phpmyadmin/htpasswd.setup… e rimuovere o commentare la seguente sezione in /etc/phpmyadmin/apache.conf:
nano /etc/phpmyadmin/apache.conf[...]
## Autorizza per la configurazione
#
#
# AuthType Basic
# AuthName "phpMyAdmin Setup"
# AuthUserFile /etc/phpmyadmin/htpasswd.setup
#
# Require valid-user
#
[...] Riavvia Apache successivamente:
/etc/init.d/apache2 restart17 Installare Zend Framework
Sebbene Zend Framework sia disponibile nei repository di Ubuntu 9.04, è la versione 1.7.5 e voglio avere l’ultima versione, quindi la scaricherò tramite SVN, ma prima dobbiamo installarla:
aptitude install subversionOra possiamo ottenere l’ultima versione del Zend Framework
cd /opt
mkdir ZendFramework
cd /ZendFramework
svn co http://framework.zend.com/svn/framework/standard/tags/release-1.8.3/Successivamente, ciò che faremo è creare un collegamento simbolico chiamato “current” a quella cartella di rilascio, in modo che se cambiamo la versione del Zend Framework, possiamo farlo senza riavviare Apache:
ln -s release-1.8.3 currentIn modo che non dobbiamo aggiungere manualmente il percorso di inclusione nei tuoi script PHP utilizzando set_include_path. Voglio che il Zend Framework corrente sia incluso automaticamente, aggiungendo il percorso a /etc/php5/apache2/php.ini.
nano /etc/php5/apache2/php.iniCambia:
include_path = ".:/usr/share/php5:/usr/share/pear"in:
include_path = ".:/opt/ZendFramework/current/library:/usr/share/php5:/usr/share/pear"Riavvia Apache di nuovo:
/etc/init.d/apache2 restartQuando viene rilasciata una nuova versione del Zend Framework, tutto ciò che dobbiamo fare è controllare la directory SVN e cambiare il collegamento simbolico.
cd /opt/ZendFramework
svn co http://framework.zend.com/svn/framework/standard/tags/release-1.8.4/
rm current
ln -s release-1.8.4 current18 Configurare lo Strumento Zend
Ora dobbiamo impostare i percorsi per la riga di comando, quindi faremo le stesse modifiche che abbiamo appena fatto sopra al PHP CLI.
nano /etc/php5/cli/php.iniinclude_path = ".:/opt/ZendFramework/current/library:/usr/share/php5:/usr/share/pear"Prima di uscire dall’utente Super, abbiamo un’ultima cosa da fare affinché tu possa utilizzare lo strumento sotto il tuo nome utente piuttosto che come superutente, dovrai impostare i permessi sulla cartella /var/www
chown username:usergroup /var/wwwOra a questo punto dovrai uscire dall’utente super:
exitnano ~/.bashrce aggiungere la riga
[...]
PATH=/opt/ZendFramework/current/bin:"${PATH}"
[...] Quasi finito, testeremo solo l’installazione, ma prima probabilmente dovremmo riavviare.
sudo rebootQuando accedi di nuovo, non usare sudo su, ma invece:
zf.sh show versionE dovresti ottenere
Zend Framework Version: 1.8.319 Utilizzare lo Strumento
Naviga nella directory in cui vuoi il tuo nuovo progetto:
cd /var/www
zf.sh create project yourProjectE dovresti scoprire che lo strumento creerà la tua struttura di base del sito, inclusi i tuoi controller e viste iniziali.
Infine, probabilmente vorrai copiare la cartella Zend nel tuo nuovo progetto
cp -r /opt/ZendFramework/current/library/Zend /var/www/yourProject/library/ZendE puoi testare l’installazione di Zend andando su: http://192.168.0.100/yourProject/public/
Divertiti!
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.