Nous verrons dans ce document comment mettre en œuvre et configurer rapidement lighttpd (serveur http ultra-rapide) et le combiner avec les outils PHP5 et le support MySQL, éléments essentiels du développement web actuel.
L'installation se fera sans chroot et via le gestionnaire de packages précompilés pkg_add sous OpenBSD 4.5 (i386).
# pkg_add ftp://ftp.arcane-networks.fr/pub/OpenBSD/4.5/packages/i386/lighttpd-1.4.21-mysql.tgz
# pkg_add ftp://ftp.arcane-networks.fr/pub/OpenBSD/4.5/packages/i386/mysql-server-5.0.77.tgz
# pkg_add ftp://ftp.arcane-networks.fr/pub/OpenBSD/4.5/packages/i386/php5-core-5.2.8p0.tgz
# ln -s /var/www/conf/modules.sample/php5.conf \
/var/www/conf/modules
# pkg_add ftp://ftp.arcane-networks.fr/pub/OpenBSD/4.5/packages/i386/php5-fastcgi-5.2.8.tgz
La version fastcgi de php est essentielle pour le support lighttpd.
# php-fastcgi -v PHP 5.2.8 with Suhosin-Patch 0.9.6.3 (cgi-fcgi) (built: Mar 1 2009 15:20:31)
# pkg_add ftp://ftp.arcane-networks.fr/pub/OpenBSD/4.5/packages/i386/php5-curl-5.2.8.tgz
# ln -fs /var/www/conf/php5.sample/curl.ini \
/var/www/conf/php5/curl.ini
# pkg_add ftp://ftp.arcane-networks.fr/pub/OpenBSD/4.5/packages/i386/php5-gd-5.2.8-no_x11.tgz
# ln -fs /var/www/conf/php5.sample/gd.ini \
/var/www/conf/php5/gd.ini
# pkg_add ftp://ftp.arcane-networks.fr/pub/OpenBSD/4.5/packages/i386/php5-mbstring-5.2.8.tgz
# ln -fs /var/www/conf/php5.sample/mbstring.ini \
/var/www/conf/php5/mbstring.ini
# pkg_add ftp://ftp.arcane-networks.fr/pub/OpenBSD/4.5/packages/i386/php5-mcrypt-5.2.8.tgz
# ln -fs /var/www/conf/php5.sample/mcrypt.ini \
/var/www/conf/php5/mcrypt.ini
# pkg_add ftp://ftp.arcane-networks.fr/pub/OpenBSD/4.5/packages/i386/php5-mysql-5.2.8.tgz
# ln -fs /var/www/conf/php5.sample/mysql.ini \
/var/www/conf/php5/mysql.ini
# pkg_add ftp://ftp.arcane-networks.fr/pub/OpenBSD/4.5/packages/i386/php5-snmp-5.2.8.tgz
# ln -fs /var/www/conf/php5.sample/snmp.ini \
/var/www/conf/php5/snmp.ini
Ici nous allons mettre en place MySQL, le pass root MySQL ainsi que le script de démarrage automatique au lancement d'OpenBSD.
# /usr/local/bin/mysql_install_db
# /usr/local/bin/mysqld_safe &
NB: S'il s'avère que votre serveur est particulièrement sollicité vous pouvez jeter un oeil aux conseils contenus dans /usr/local/share/doc/mysql/README.OpenBSD .
# /usr/local/bin/mysqladmin -u root password 'nouveau-pass'
# vi /etc/rc.conf.local
mysql=YES
# vi /etc/rc.local
# Démarrage MySQL
if [ X"${mysql}" == X"YES" -a -x /usr/local/bin/mysqld_safe ]; then
echo -n " mysqld "
/usr/local/bin/mysqld_safe --user=_mysql &
fi
Préparation de la configuration, configuration du support php et du script de démarrage automatique.
# vi /etc/lighttpd.conf
Voici les lignes à modifier :
server.document-root = "/var/www/htdocs" accesslog.filename = "/var/www/logs/access.log" server.errorlog = "/var/www/logs/error.log" index-file.names = ( "index.html", "index.htm", "default.htm", "index.php" ) server.chroot = "/"
Dans les options de server.modules += veuillez décocher :
( "mod_fastcgi" )
Ligne à rajouter dans votre configuration :
# vi /etc/lighttpd.conf
fastcgi.server = ( ".php" =>
( "localhost" =>
(
"socket" => "/tmp/php-fastcgi.socket",
"bin-path" => "/usr/local/bin/php-fastcgi"
)
)
)
# /usr/local/sbin/lighttpd -f /etc/lighttpd.conf
Vous devriez obtenir ceci :
# ps aux |grep lighttpd _lighttpd 17283 0.0 0.1 1216 2216 ?? S 3:24PM 0:00.08 /usr/local/sbin/lighttpd -f /etc/lighttpd.conf _lighttpd 21167 0.0 0.3 5360 7744 ?? Is 3:24PM 0:00.18 /usr/local/bin/php-fastcgi _lighttpd 12338 0.0 0.3 5544 7752 ?? Is 3:24PM 0:00.17 /usr/local/bin/php-fastcgi _lighttpd 44 0.0 0.3 5360 7752 ?? Is 3:24PM 0:00.17 /usr/local/bin/php-fastcgi _lighttpd 12300 0.0 0.3 5544 7716 ?? Is 3:24PM 0:00.17 /usr/local/bin/php-fastcgi _lighttpd 30543 0.0 0.3 5688 6452 ?? I 3:24PM 0:01.05 /usr/local/bin/php-fastcgi _lighttpd 24209 0.0 0.1 5360 1588 ?? I 3:24PM 0:00.01 /usr/local/bin/php-fastcgi _lighttpd 14986 0.0 0.3 5512 6420 ?? I 3:24PM 0:00.25 /usr/local/bin/php-fastcgi _lighttpd 14792 0.0 0.1 5544 1576 ?? I 3:24PM 0:00.02 /usr/local/bin/php-fastcgi
# vi /var/www/htdocs/phpinfo.php
<?php phpinfo(); phpinfo(INFO_MODULES); ?>
http://ip/phpinfo.php pour vérifier que PHP est bien pris en compte.
# vi /etc/rc.conf.local
lighttpd=YES
# vi /etc/rc.local
# Démarrage Lighttpd
if [ X"${lighttpd}" == X"YES" -a -x /usr/local/sbin/lighttpd ]; then
echo -n " lighttpd "
/usr/local/sbin/lighttpd -f /etc/lighttpd.conf
fi
Auteur : Angeli Matthieu
Date de réalisation : 22/05/2009
Version d'OpenBSD : 4.5