GNU/Linux >> Tutoriels Linux >  >> Debian

Installation de Lighttpd avec PHP5 (PHP-FPM) et MySQL sur Debian 8 (Jessie)

Lighttpd est un serveur Web sécurisé, rapide et conforme aux normes conçu pour les environnements à vitesse critique. Ce tutoriel montre comment vous pouvez installer Lighttpd sur un serveur Debian 8 (Jessie) avec le support PHP5 (via PHP-FPM) et le support MySQL. PHP-FPM (FastCGI Process Manager) est une implémentation alternative de PHP FastCGI avec quelques fonctionnalités supplémentaires utiles pour les sites de toute taille, en particulier les sites les plus fréquentés. J'utilise PHP-FPM dans ce tutoriel au lieu du spawn-fcgi de Lighttpd.

1 Remarque préliminaire

Dans ce tutoriel, j'utilise le nom d'hôte server1.example.com avec l'adresse IP 192.168.1.100. Ces paramètres peuvent différer pour vous, vous devez donc les remplacer le cas échéant. Utilisez un serveur minimal Debian comme base pour cette installation. Il peut s'agir d'une image minimale de votre centre de données ou vous en installez un à partir de zéro à l'aide de notre didacticiel sur le serveur minimal Debian.

2 Installer MySQL / MariaDB

Debian 8 est livrée avec 2 bases de données compatibles MySQL, la base de données MySQL traditionnelle et MariaDB, un fork MySQL maintenu par l'inventeur original de MySQL, Monty Widenius. MariaDB est en tête en ce qui concerne la vitesse de la base de données et l'activité de développement pour le moment, je vais donc la choisir pour mon serveur.

Ci-dessous, je décrirai l'installation de MariaDB (chapitre 2.1) et de MySQL (chapitre 2.2) afin que vous puissiez choisir la base de données que vous préférez. Assurez-vous simplement de suivre le chapitre 2.1 ou 2.2, mais pas les deux.

2.1 Installer MariaDB

Pour installer MariaDB, exécutez cette commande.

apt-get install mariadb-server mariadb-client

Il vous sera demandé de fournir un mot de passe pour l'utilisateur root MariaDB - ce mot de passe est valide pour l'utilisateur [email protected] ainsi que [email protected]rver1.example.com, nous n'avons donc pas besoin de spécifier un mot de passe root MariaDB manuellement plus tard :

New password for the MariaDB "root" user: <-- yourrootsqlpassword
Repeat password for the MariaDB "root" user: <-- yourrootsqlpassword

2.2 Installer MySQL

Nous installons MySQL 5 comme ceci :

apt-get install mysql-server mysql-client

Il vous sera demandé de fournir un mot de passe pour l'utilisateur root MySQL - ce mot de passe est valide pour l'utilisateur [email protected] ainsi que [email protected], nous n'avons donc pas besoin de spécifier manuellement un mot de passe root MySQL ultérieurement :

Nouveau mot de passe pour l'utilisateur "root" MySQL :<-- yourrootsqlpassword
Répétez le mot de passe pour l'utilisateur "root" MySQL :<-- yourrootsqlpassword

3 Installer Lighttpd

Lighttpd est disponible en tant que package Debian, nous pouvons donc l'installer comme ceci :

apt-get install lighttpd

Dirigez maintenant votre navigateur vers http://192.168.1.100/, et vous devriez voir la page d'espace réservé Lighttpd :

La racine de document par défaut de Lighttpd est /var/www sur Debian, et le fichier de configuration est /etc/lighttpd/lighttpd.conf.

Des configurations supplémentaires sont stockées dans des fichiers du répertoire /etc/lighttpd/conf-available - ces configurations peuvent être activées avec la commande lighttpd-enable-mod qui crée un lien symbolique du répertoire /etc/lighttpd/conf-enabled vers la configuration appropriée fichier dans /etc/lighttpd/conf-available. Vous pouvez désactiver les configurations avec la commande lighttpd-disable-mod.

4 Installer PHP5

Nous pouvons faire fonctionner PHP5 dans Lighttpd via PHP-FPM que nous installons comme ceci :

apt-get install php5-fpm php5

PHP-FPM est un processus démon (avec le script d'initialisation /etc/init.d/php5-fpm) qui exécute un serveur FastCGI sur le socket /var/run/php5-fpm.sock.

5 Configuration de Lighttpd et PHP5

Pour activer PHP5 dans Lighttpd, nous devons modifier /etc/php5/fpm/php.ini et décommenter la ligne cgi.fix_pathinfo=1 :

nano /etc/php5/fpm/php.ini
[...]
; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI.  PHP's
; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok
; what PATH_INFO is.  For more information on PATH_INFO, see the cgi specs.  Setting
; this to 1 will cause PHP CGI to fix its paths to conform to the spec.  A setting
; of zero causes PHP to behave as before.  Default is 1.  You should fix your scripts
; to use SCRIPT_FILENAME rather than PATH_TRANSLATED.
; http://php.net/cgi.fix-pathinfo
cgi.fix_pathinfo=1
[...]

Et redémarrez le service php5-fpm pour appliquer le changement de configuration :

systemctl restart php5-fpm.service

Le fichier de configuration Lighttpd pour PHP /etc/lighttpd/conf-available/15-fastcgi-php.conf convient pour une utilisation avec spawn-fcgi, cependant, nous voulons utiliser PHP-FPM, donc nous créons une sauvegarde du fichier ( nommé 15-fastcgi-php-spawnfcgi.conf) et modifiez 15-fastcgi-php.conf comme suit :

cd /etc/lighttpd/conf-available/
cp 15-fastcgi-php.conf 15-fastcgi-php-spawnfcgi.conf
nano 15-fastcgi-php.conf
# -*- depends: fastcgi -*-
# /usr/share/doc/lighttpd/fastcgi.txt.gz
# http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ConfigurationOptions#mod_fastcgi-fastcgi

## Start an FastCGI server for php (needs the php5-cgi package)
fastcgi.server += ( ".php" =>
        ((
                "socket" => "/var/run/php5-fpm.sock",
                "broken-scriptfilename" => "enable"
        ))
)

Pour activer la configuration fastcgi, exécutez les commandes suivantes :

lighttpd-enable-mod fastcgi
lighttpd-enable-mod fastcgi-php

Cela crée les liens symboliques /etc/lighttpd/conf-enabled/10-fastcgi.conf qui pointe vers /etc/lighttpd/conf-available/10-fastcgi.conf et /etc/lighttpd/conf-enabled/15-fastcgi-php .conf qui pointe vers /etc/lighttpd/conf-available/15-fastcgi-php.conf :

ls -l /etc/lighttpd/conf-enabled
[email protected]:/etc/lighttpd/conf-available# ls -l /etc/lighttpd/conf-enabled
total 0
lrwxrwxrwx 1 root root 33 Aug 11 08:20 10-fastcgi.conf -> ../conf-available/10-fastcgi.conf
lrwxrwxrwx 1 root root 37 Aug 11 08:20 15-fastcgi-php.conf -> ../conf-available/15-fastcgi-php.conf

Puis on recharge Lighttpd :

systemctl force-reload lighttpd.service

6 Tester PHP5 / Obtenir des détails sur votre installation PHP5

La racine du document du site Web par défaut est /var/www. Nous allons maintenant créer un petit fichier PHP (info.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/html/info.php
<?php
phpinfo();
?>

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

Comme vous le voyez, PHP5 fonctionne, et il fonctionne via FPM/FastCGI, comme indiqué dans la ligne API du serveur. Si vous faites défiler plus bas, vous verrez tous les modules déjà activés dans PHP5. MySQL n'y figure pas, ce qui signifie que nous n'avons pas encore de support MySQL dans PHP5.

7 Obtenir le support MySQL en PHP5

Pour obtenir le support MySQL en PHP, nous pouvons installer le package php5-mysqlnd. C'est un nouveau pilote de base de données compatible avec MySQL et MariaDB. C'est une bonne idée d'installer d'autres modules PHP5, car vous pourriez en avoir besoin pour vos applications. Vous pouvez rechercher les modules PHP5 disponibles comme ceci :

apt-cache search php5

Choisissez ceux dont vous avez besoin et installez-les comme ceci :

apt-get install php5-mysqlnd php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-pspell php5-recode php5-sqlite php5-tidy php5-xmlrpc php5-xsl

Xcache est un cache d'opcode PHP gratuit et ouvert pour la mise en cache et l'optimisation du code intermédiaire PHP. Il est similaire à d'autres cacheurs d'opcodes PHP, tels que eAccelerator et APC. Il est fortement recommandé d'en installer un pour accélérer votre page PHP.

Xcache peut être installé comme suit :

apt-get install php5-xcache

Rechargez maintenant PHP-FPM :

systemctl restart php5-fpm.service

Rechargez maintenant http://192.168.1.100/info.php dans votre navigateur et faites défiler à nouveau jusqu'à la section des modules. Vous devriez maintenant y trouver plein de nouveaux modules, dont le module MySQL :

8 phpMyAdmin

phpMyAdmin est une interface Web à travers laquelle vous pouvez gérer vos bases de données MySQL. C'est une bonne idée de l'installer :

apt-get install phpmyadmin

Vous verrez les questions suivantes :

Serveur Web à reconfigurer automatiquement :<-- lighttpd

Configure database for phpmyadmin with dbconfig-common? <-- Yes
Password of the database's administrative user: <-- yourrootsqlpassword
MySQL application password for phpmyadmin: <-- Press <enter>

Ensuite, vous pouvez accéder à phpMyAdmin sous http://192.168.1.100/phpmyadmin/ :

9 Faire en sorte que PHP-FPM utilise une connexion TCP

Par défaut, PHP-FPM écoute sur le socket /var/run/php5-fpm.sock. Il est également possible de faire en sorte que PHP-FPM utilise une connexion TCP. Pour cela, ouvrez /etc/php5/fpm/pool.d/www.conf...

nano /etc/php5/fpm/pool.d/www.conf

... et faites en sorte que la ligne d'écoute ressemble à ceci :

[...]
;listen = /var/run/php5-fpm.sock
listen = 127.0.0.1:9000
[...]

Cela fera écouter PHP-FPM sur le port 9000 sur l'IP 127.0.0.1 (localhost). Assurez-vous d'utiliser un port qui n'est pas utilisé sur votre système.

Rechargez ensuite PHP-FPM :

systemctl restart php5-fpm.service

Ouvrez ensuite le fichier de configuration PHP de Lighttpd /etc/lighttpd/conf-available/15-fastcgi-php.conf et remplacez la ligne socket par les lignes host et port :

nano /etc/lighttpd/conf-available/15-fastcgi-php.conf
# -*- depends: fastcgi -*-
# /usr/share/doc/lighttpd/fastcgi.txt.gz
# http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ConfigurationOptions#mod_fastcgi-fastcgi

## Start an FastCGI server for php (needs the php5-cgi package)
fastcgi.server += ( ".php" =>
        ((
                "host" => "127.0.0.1",
                "port" => "9000",
                "broken-scriptfilename" => "enable"
        ))
)

Enfin rechargez Lighttpd :

systemctl force-reload lighttpd.service

  • Lighttpd :http://www.lighttpd.net/
  • PHP :http://www.php.net/
  • PHP-FPM :http://php-fpm.org/
  • MySQL :http://www.mysql.com/
  • Debian :http://www.debian.org/
  • phpMyAdmin :http://www.phpmyadmin.net/

Debian
  1. Installation de Nginx avec PHP5 (et PHP-FPM) et le support MySQL (LEMP) sur Ubuntu 14.04 LTS

  2. Installation de Lighttpd avec PHP5 (PHP-FPM) et prise en charge de MySQL sur Ubuntu 14.04LTS

  3. Installation de Lighttpd avec prise en charge de PHP5 et MySQL sur Ubuntu 10.04

  4. Installation de Lighttpd avec PHP5 (PHP-FPM) et prise en charge de MySQL sur Ubuntu 12.04

  5. Installation de Nginx avec PHP5 (et PHP-FPM) et le support MySQL (LEMP) sur Ubuntu 12.04 LTS

Installation d'Apache2 avec prise en charge de PHP5 et MySQL sur Debian Wheezy

Installation de Nginx avec PHP5 (et PHP-FPM) et prise en charge de MySQL (LEMP) sur Debian Wheezy

Installation de Lighttpd avec PHP5 (PHP-FPM) et prise en charge de MySQL sur Debian Wheezy

Installation de Nginx avec PHP (comme PHP-FPM) et MariaDB (LEMP) sur Debian 8

Installation de Nginx avec PHP5 (et PHP-FPM) et prise en charge de MySQL sur CentOS 6.4

Installation de Nginx avec PHP5 (et PHP-FPM) et prise en charge de MySQL sur Fedora 19