GNU/Linux >> Tutoriales Linux >  >> Debian

Instalación de Lighttpd con PHP5 (PHP-FPM) y MySQL en Debian 8 (Jessie)

Lighttpd es un servidor web seguro, rápido y compatible con los estándares diseñado para entornos de velocidad crítica. Este tutorial muestra cómo puede instalar Lighttpd en un servidor Debian 8 (Jessie) con soporte para PHP5 (a través de PHP-FPM) y soporte para MySQL. PHP-FPM (Administrador de procesos FastCGI) es una implementación alternativa de PHP FastCGI con algunas características adicionales útiles para sitios de cualquier tamaño, especialmente sitios más ocupados. Uso PHP-FPM en este tutorial en lugar de spawn-fcgi de Lighttpd.

1 nota preliminar

En este tutorial, utilizo el nombre de host server1.example.com con la dirección IP 192.168.1.100. Estas configuraciones pueden diferir para usted, por lo que debe reemplazarlas cuando corresponda. Use un servidor mínimo de Debian como base para esta instalación, puede ser una imagen mínima de su centro de datos o puede instalar uno desde cero utilizando nuestro tutorial de servidor mínimo de Debian.

2 Instalación de MySQL / MariaDB

Debian 8 se envía con 2 bases de datos compatibles con MySQL, la base de datos MySQL tradicional y MariaDB, una bifurcación de MySQL mantenida por el inventor original de MySQL, Monty Widenius. MariaDB es líder en cuanto a velocidad de base de datos y actividad de desarrollo en este momento, así que lo elegiré para mi servidor.

A continuación describiré la instalación de MariaDB (Capítulo 2.1) y MySQL (Capítulo 2.2) para que pueda elegir la base de datos que prefiera. Solo asegúrese de seguir el capítulo 2.1 o el 2.2, pero no ambos.

2.1 Instalar MariaDB

Para instalar MariaDB, ejecute este comando.

apt-get install mariadb-server mariadb-client

Se le pedirá que proporcione una contraseña para el usuario root de MariaDB; esta contraseña es válida para el usuario [email protected] así como para [email protected]rver1.example.com, por lo que no tenemos que especificar una contraseña root de MariaDB manualmente más tarde:

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

2.2 Instalar MySQL

Instalamos MySQL 5 así:

apt-get install mysql-server mysql-client

Se le pedirá que proporcione una contraseña para el usuario root de MySQL; esta contraseña es válida para el usuario [email protected] así como para [email protected], por lo que no tenemos que especificar una contraseña de root de MySQL manualmente más adelante:

Nueva contraseña para el usuario "root" de MySQL:<-- yourrootsqlpassword
Repita la contraseña para el usuario "root" de MySQL:<-- yourrootsqlpassword

3 Instalación de Lighttpd

Lighttpd está disponible como paquete Debian, por lo que podemos instalarlo así:

apt-get install lighttpd

Ahora dirija su navegador a http://192.168.1.100/, y debería ver la página de marcadores de posición de Lighttpd:

La raíz del documento predeterminada de Lighttpd es /var/www en Debian, y el archivo de configuración es /etc/lighttpd/lighttpd.conf.

Las configuraciones adicionales se almacenan en archivos en el directorio /etc/lighttpd/conf-disponible; estas configuraciones se pueden habilitar con el comando lighttpd-enable-mod que crea un enlace simbólico desde el directorio /etc/lighttpd/conf-enabled a la configuración adecuada archivo en /etc/lighttpd/conf-disponible. Puede deshabilitar configuraciones con el comando lighttpd-disable-mod.

4 Instalación de PHP5

Podemos hacer que PHP5 funcione en Lighttpd a través de PHP-FPM que instalamos así:

apt-get install php5-fpm php5

PHP-FPM es un proceso daemon (con el script de inicio /etc/init.d/php5-fpm) que ejecuta un servidor FastCGI en el socket /var/run/php5-fpm.sock.

5 Configuración de Lighttpd y PHP5

Para habilitar PHP5 en Lighttpd, debemos modificar /etc/php5/fpm/php.ini y descomentar la línea 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
[...]

Y reinicie el servicio php5-fpm para aplicar el cambio de configuración:

systemctl restart php5-fpm.service

El archivo de configuración de Lighttpd para PHP /etc/lighttpd/conf-disponible/15-fastcgi-php.conf es adecuado para usar con spawn-fcgi, sin embargo, queremos usar PHP-FPM, por lo que creamos una copia de seguridad del archivo ( llamado 15-fastcgi-php-spawnfcgi.conf) y modifique 15-fastcgi-php.conf de la siguiente manera:

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"
        ))
)

Para habilitar la configuración de fastcgi, ejecute los siguientes comandos:

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

Esto crea los enlaces simbólicos /etc/lighttpd/conf-enabled/10-fastcgi.conf que apunta a /etc/lighttpd/conf-disponible/10-fastcgi.conf y /etc/lighttpd/conf-enabled/15-fastcgi-php .conf que apunta a /etc/lighttpd/conf-disponible/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

Luego recargamos Lighttpd:

systemctl force-reload lighttpd.service

6 Probar PHP5 / Obtener detalles sobre su instalación de PHP5

La raíz del documento del sitio web predeterminado es /var/www. Ahora crearemos un pequeño archivo PHP (info.php) en ese directorio y lo llamaremos en un navegador. El archivo mostrará muchos detalles útiles sobre nuestra instalación de PHP, como la versión de PHP instalada.

nano /var/www/html/info.php
<?php
phpinfo();
?>

Ahora llamamos a ese archivo en un navegador (por ejemplo, http://192.168.1.100/info.php):

Como puede ver, PHP5 funciona y funciona a través de FPM/FastCGI, como se muestra en la línea API del servidor. Si se desplaza hacia abajo, verá todos los módulos que ya están habilitados en PHP5. MySQL no se encuentra en la lista, lo que significa que aún no tenemos compatibilidad con MySQL en PHP5.

7 Obtener compatibilidad con MySQL en PHP5

Para obtener soporte de MySQL en PHP, podemos instalar el paquete php5-mysqlnd. Ese es un nuevo controlador de base de datos que es compatible con MySQL y MariaDB. Es una buena idea instalar algunos otros módulos de PHP5, ya que podría necesitarlos para sus aplicaciones. Puede buscar módulos PHP5 disponibles como este:

apt-cache search php5

Elige los que necesites e instálalos así:

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 es un caché de código de operación de PHP gratuito y abierto para almacenar en caché y optimizar el código intermedio de PHP. Es similar a otros cachés de código de operación de PHP, como eAccelerator y APC. Se recomienda encarecidamente tener uno de estos instalados para acelerar su página PHP.

Xcache se puede instalar de la siguiente manera:

apt-get install php5-xcache

Ahora recarga PHP-FPM:

systemctl restart php5-fpm.service

Ahora vuelva a cargar http://192.168.1.100/info.php en su navegador y desplácese hacia abajo hasta la sección de módulos nuevamente. Ahora debería encontrar muchos módulos nuevos allí, incluido el módulo MySQL:

8 phpMyAdmin

phpMyAdmin es una interfaz web a través de la cual puede administrar sus bases de datos MySQL. Es una buena idea instalarlo:

apt-get install phpmyadmin

Verá las siguientes preguntas:

Servidor web para reconfigurar automáticamente:<-- lighttpd

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

Luego, puede acceder a phpMyAdmin en http://192.168.1.100/phpmyadmin/:

9 Hacer que PHP-FPM use una conexión TCP

De forma predeterminada, PHP-FPM escucha en el socket /var/run/php5-fpm.sock. También es posible hacer que PHP-FPM utilice una conexión TCP. Para ello, abra /etc/php5/fpm/pool.d/www.conf...

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

... y haz que la línea de escucha tenga el siguiente aspecto:

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

Esto hará que PHP-FPM escuche en el puerto 9000 en la IP 127.0.0.1 (localhost). Asegúrese de utilizar un puerto que no esté en uso en su sistema.

Luego recarga PHP-FPM:

systemctl restart php5-fpm.service

A continuación, abra el archivo de configuración de PHP de Lighttpd /etc/lighttpd/conf-disponible/15-fastcgi-php.conf y reemplace la línea de conexión con las líneas de host y puerto:

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"
        ))
)

Finalmente recargar Lighttpd:

systemctl force-reload lighttpd.service

10 enlaces

  • 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. Instalación de Nginx con PHP5 (y PHP-FPM) y compatibilidad con MySQL (LEMP) en Ubuntu 14.04 LTS

  2. Instalación de Lighttpd con soporte PHP5 (PHP-FPM) y MySQL en Ubuntu 14.04LTS

  3. Instalación de Lighttpd con compatibilidad con PHP5 y MySQL en Ubuntu 10.04

  4. Instalación de Lighttpd con soporte PHP5 (PHP-FPM) y MySQL en Ubuntu 12.04

  5. Instalación de Nginx con PHP5 (y PHP-FPM) y compatibilidad con MySQL (LEMP) en Ubuntu 12.04 LTS

Instalación de Apache2 con compatibilidad con PHP5 y MySQL en Debian Wheezy

Instalación de Nginx con PHP5 (y PHP-FPM) y compatibilidad con MySQL (LEMP) en Debian Wheezy

Instalación de Lighttpd con soporte PHP5 (PHP-FPM) y MySQL en Debian Wheezy

Instalación de Nginx con PHP (como PHP-FPM) y MariaDB (LEMP) en Debian 8

Instalación de Nginx con soporte PHP5 (y PHP-FPM) y MySQL en CentOS 6.4

Instalación de Nginx con soporte PHP5 (y PHP-FPM) y MySQL en Fedora 19