Serveur Web · 9 min read · Jan 03, 2026

Serveur Web de Base Sur Ubuntu 9.04 Avec Zend Framework

Serveur Web de Base Sur Ubuntu 9.04 Avec Zend Framework

Ceci est une brève description des étapes nécessaires pour configurer un serveur Web de base avec le Zend Framework installé.

Comme toujours, je vais suivre l’un des excellents guides de Falko, car il n’y a pas de raison de réinventer la roue, pour ainsi dire. Je vais suivre The Perfect Server - Ubuntu 9.04 [ISPConfig 3]. Cependant, comme j’ai besoin d’un serveur d’applications Web pour des tests de pré-production, je n’ai pas besoin de Mail ou d’ISPConfig, donc je vais suivre le guide ISPConfig-3 de l’étape 1 à 11 et commencer ma propre version à partir de là.

Je n’installerai pas Postfix, Courier (pas besoin de Mail ou IMAP), Saslauthd (Authentification), je ne vais pas non plus installer rootkit hunter ou des utilitaires binaires, donc je vais les laisser de côté également :

12 Installer MySQL

Nous pouvons installer MySQL en utilisant la commande suivante :

apt-get install mysql-client mysql-server

On vous posera les questions suivantes :

Nouveau mot de passe pour l’utilisateur MySQL “root” : <– votremotdepassemysqlroot
Répétez le mot de passe pour l’utilisateur MySQL “root” : <– votremotdepassemysqlroot

Nous voulons que MySQL écoute sur toutes les interfaces, pas seulement localhost, donc nous modifions /etc/mysql/my.cnf et commentons la ligne bind-address = 127.0.0.1 :

nano /etc/mysql/my.cnf
[...]  

# Au lieu de skip-networking, la valeur par défaut est maintenant d'écouter uniquement sur  

# localhost, ce qui est plus compatible et n'est pas moins sécurisé.  

#bind-address           = 127.0.0.1  

[...]  

Ensuite, nous redémarrons MySQL :

/etc/init.d/mysql restart

Vérifiez maintenant que le réseau est activé. Exécutez

netstat -tap | grep mysql

La sortie devrait ressembler à ceci :

root@server1:~# netstat -tap | grep mysql  
tcp        0      0 *:mysql                 *:*                     LISTEN      8474/mysqld  
root@server1:~#

13 Installer Apache2, Java et phpMyAdmin

Je n’installe pas PHP5 à ce stade car j’ai plusieurs façons différentes de l’installer dans la section suivante. Sachez simplement que si vous allez compiler à partir de la source, vous voudrez peut-être lire la section suivante et envisager de ne pas installer apache à ce stade. Sinon, tout sera installé comme suit :

sudo su  
apt-get install apache2 sun-java6-bin phpmyadmin

Vous verrez la question suivante :

Serveur web à reconfigurer automatiquement : <– apache2
EULA Java <– Tab pour lire l’EULA puis OK
Acceptez-vous les termes de la licence DLJ ? <– Oui
Configurer la base de données pour phpmyadmin avec dbconfig-common ? <– Oui
Mot de passe de l’utilisateur administratif de votre base de données : <– votremotdepassemysqlroot
Mot de passe de l’application MySQL pour phpmyadmin : <– [vide]

14 Installations PHP5 :

Nous avons plusieurs façons d’installer PHP, selon ce dont vous avez besoin. J’ai eu un succès variable pour obtenir les modules installés dont j’ai besoin, donc je vais vous donner toutes les façons que j’ai essayées pour installer PHP et vous pourrez choisir celle qui vous convient.

apt-get install depuis le dépôt ubuntu

Nous pouvons simplement utiliser Apt pour obtenir la version PHP depuis les dépôts ubuntu. Ce sera la façon la plus simple et donnera le succès le plus facile et devrait être utilisé si vous n’avez pas d’exigences spécifiques pour PHP

apt-get install php5 php5-common php5-cli

apt-get install depuis une source debian

Debian a mis à jour son dépôt avec la dernière version de PHP5 et je crois qu’il inclut la bibliothèque GD complète de PHP5, donc cela peut être un chemin plus facile vers le succès que de compiler à partir de la source, mais cela signifie que vous utilisez une source qui n’est pas reconnue par Ubuntu et vous devrez décider si cela vous convient.

Cette décision prise, vous devez ajouter les dépôts debian à votre liste de sources, ce que vous pouvez faire en modifiant votre liste de sources comme précédemment.

Nous pouvons simplement utiliser Apt pour obtenir la version PHP depuis les dépôts ubuntu.

echo deb http://packages.dotdeb.org stable all >> /etc/apt/sources.list
echo deb-src http://packages.dotdeb.org stable all >> /etc/apt/sources.list

Ensuite, exécutez

apt-get update

Après cela, vous pouvez choisir de mettre à niveau toute autre installation que debian a également mise à jour.

apt-get upgrade  
apt-get install php5 php5-common php5-cli  
reboot

Compiler à partir de la source du dépôt

Bien que cela ait réussi, cela a installé la version ubuntu de PHP5, ce qui est bien pour la plupart des installations, cela vous permettra d’activer certaines choses supplémentaires qui ne viennent pas avec l’installation aptitude. Vous pouvez utiliser ./configure –help pour voir ce qui est disponible à activer lors de la compilation.

aptitude install libmysqlclient15-dev libxml2-dev libcurl4-openssl-dev libjpeg-dev libpng-dev sendmail libmcrypt-dev libmhash-dev

Cela vous permettra d’installer la version sécurisée d’ubuntu avec des extras qui peuvent ne pas être inclus dans la version 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/rules

Trouvez et remplacez

[...]  
--with-gd=shared,/usr --enable-gd-native-ttf \  
[...]  

par

[...]  
--with-gd=shared, --enable-gd-native-ttf \  
[...]  
dpkg-buildpackage -rfakeroot  
cd ..  
# Installer le nouveau paquet php5-gd  
dpkg -i php5-gd_5.2.6-1ubuntu6.3_i386.deb

Compilation complète à partir de la source externe

Lorsque j’ai exécuté cela pour la dernière fois, j’ai dû recompiler apache2 également pour que ma nouvelle version de php5 soit reconnue. Je ne sais pas pourquoi ou si c’était juste moi, donc je vais tester quelques fois de plus et je vais éditer ce post pour mettre à jour les méthodes si je peux réussir sans installer apache2 également.

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-dev
cd /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 stop
cd /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-cli

J’ai eu quelques avertissements concernant la nécessité d’instructions LoadModule dans apache2.conf et httpd.conf, si vous trouvez cela également, alors vous pouvez ajouter des instructions fictives commentées et faire à nouveau make install et cela devrait fonctionner.

nano /etc/apache2/apache2.conf
[...]  
    # Inclure la configuration du module :  
    Include /etc/apache2/mods-enabled/*.load  
    Include /etc/apache2/mods-enabled/*.conf

    # Directive LoadModule fictive pour aider les installations de modules  
    #LoadModule dummy_module /usr/lib/apache2/modules/mod_dummy.so  
[...]  

15 Tester PHP et la bibliothèque GD / Obtenir des détails sur votre installation PHP5

Comme nous avons PHP-CLI installé, nous pouvons tester l’installation de la bibliothèque GD avec :

php -r "var_dump(function_exists('imagecreatefromjpeg'));" <-- affichera true si la bibliothèque GD est installée  
php -r "var_dump(function_exists('imagerotate'));" <-- sera false si la bibliothèque limitée est installée

Le document racine du site Web par défaut est /var/www. Nous allons maintenant créer un petit fichier PHP (phpinfo.php) dans ce répertoire et l’appeler dans un navigateur. Le fichier affichera de nombreux détails utiles sur notre installation PHP, tels que la version PHP installée.

nano /var/www/phpinfo.php

Maintenant, nous appelons ce fichier dans un navigateur (par exemple, http://192.168.0.100/phpinfo.php) :

Maintenant, vous devriez voir, PHP5 fonctionne, en faisant défiler vers le bas, vous verrez tous les modules qui sont déjà activés dans PHP5. Vous devriez également voir MySQL répertorié là.

16 Configurer les installations

Nous devons nous assurer que rewrite_module est activé dans apache2 pour que le Zend Framework fonctionne correctement, alors vérifions :

a2dismod

Espérons que vous devriez voir rewrite répertorié dans la liste des modules actuellement activés. Si ce n’est pas le cas, appuyez sur entrer pour ne désactiver rien et ensuite émettez :

a2enmod rewrite

Ensuite, nous devons activer AllowOverride All dans le fichier du site par défaut

nano /etc/apache2/sites-available/default
[...]  
  DocumentRoot /var/www/  
          
                Options FollowSymLinks  
                AllowOverride All  
          
          
                Options FollowSymLinks   
                AllowOverride All  
                Order allow,deny  
                allow from all  
          
[...]  

Après cela, nous devons sécuriser phpMyAdmin en supprimant le fichier /etc/phpmyadmin/htpasswd.setup…

rm -f /etc/phpmyadmin/htpasswd.setup

… et supprimer ou commenter la section suivante dans /etc/phpmyadmin/apache.conf :

nano /etc/phpmyadmin/apache.conf
[...]  
## Autoriser pour la configuration  
#  
#      
#    AuthType Basic  
#    AuthName "phpMyAdmin Setup"  
#    AuthUserFile /etc/phpmyadmin/htpasswd.setup  
#      
#    Require valid-user  
#  
[...]  

Redémarrez Apache ensuite :

/etc/init.d/apache2 restart

17 Installer Zend Framework

Bien que le Zend Framework soit disponible dans les dépôts d’Ubuntu 9.04, c’est la version 1.7.5 et je veux avoir la dernière version, donc je vais la télécharger via SVN, mais d’abord nous devons l’installer :

aptitude install subversion

Maintenant, nous pouvons obtenir la dernière version du Zend Framework

cd /opt  
mkdir ZendFramework  
cd /ZendFramework  
svn co http://framework.zend.com/svn/framework/standard/tags/release-1.8.3/

Ensuite, ce que nous allons faire est de créer un lien symbolique appelé “current” vers ce dossier de version, de cette façon, si nous changeons la version du Zend Framework, nous pouvons le faire sans redémarrer Apache :

ln -s release-1.8.3 current

Ainsi, nous n’avons pas à ajouter manuellement le chemin d’inclusion dans vos scripts PHP en utilisant set_include_path. Je veux que le Zend Framework actuel soit inclus automatiquement, en ajoutant le chemin au /etc/php5/apache2/php.ini.

nano /etc/php5/apache2/php.ini

Changez :

include_path = ".:/usr/share/php5:/usr/share/pear"

en :

include_path = ".:/opt/ZendFramework/current/library:/usr/share/php5:/usr/share/pear"

Redémarrez Apache à nouveau :

/etc/init.d/apache2 restart

Lorsqu’une nouvelle version du Zend Framework est publiée, tout ce que nous avons à faire est de vérifier le répertoire SVN et de changer le lien symbolique.

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 current

18 Configurer l’outil Zend

Nous devons maintenant configurer les chemins pour la ligne de commande, donc nous allons faire les mêmes modifications que nous venons de faire ci-dessus au PHP CLI.

nano /etc/php5/cli/php.ini
include_path = ".:/opt/ZendFramework/current/library:/usr/share/php5:/usr/share/pear"

Avant de sortir de l’utilisateur super, nous avons une dernière chose à faire pour que vous puissiez utiliser l’outil sous votre nom d’utilisateur plutôt que superutilisateur, vous devrez définir les permissions sur le dossier /var/www

chown username:usergroup /var/www

Maintenant, à ce stade, vous devrez sortir de l’utilisateur super :

exit
nano ~/.bashrc

et ajouter la ligne

[...]  
PATH=/opt/ZendFramework/current/bin:"${PATH}"
[...]  

Presque là, nous allons juste tester l’installation, mais d’abord nous devrions probablement redémarrer.

sudo reboot

Lorsque vous vous reconnectez, ne faites pas sudo su mais plutôt :

zf.sh show version

Et vous devriez obtenir

Version du Zend Framework : 1.8.3

19 Utiliser l’outil

Accédez au répertoire où vous souhaitez que votre nouveau projet soit :

cd /var/www  
zf.sh create project yourProject

Et vous devriez constater que l’outil créera votre structure de site de base, y compris vos contrôleurs et vues initiaux.

Enfin, vous voudrez probablement copier le dossier Zend dans votre nouveau projet

cp -r /opt/ZendFramework/current/library/Zend /var/www/yourProject/library/Zend

Et vous pouvez tester l’installation de Zend en allant sur : http://192.168.0.100/yourProject/public/

Profitez-en !

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.