GNU/Linux >> Tutoriales Linux >  >> Ubuntu

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

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 Ubuntu 12.04 con soporte PHP5 (a través de PHP-FPM) y soporte 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.0.100. Estas configuraciones pueden diferir para usted, por lo que debe reemplazarlas cuando corresponda.

Estoy ejecutando todos los pasos de este tutorial con privilegios de root, así que asegúrese de haber iniciado sesión como root:

sudo su

2 Instalación de MySQL 5

Primero 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 de Ubuntu, por lo que podemos instalarlo así:

apt-get install lighttpd

Ahora dirija su navegador a http://192.168.0.100/index.lighttpd.html, 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 Ubuntu, 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 puerto 9000.

5 Configurando Lighttpd y PHP5

Para habilitar PHP5 en Lighttpd, debemos modificar /etc/php5/fpm/php.ini y descomentar la línea cgi.fix_pathinfo=1:

vi /etc/php5/fpm/php.ini

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
vi 15-fastcgi-php.conf
[...]
; 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
[...]

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 May 15 19:50 10-fastcgi.conf -> ../conf-available/10-fastcgi.conf
lrwxrwxrwx 1 root root 41 May 15 19:50 15-fastcgi-php.conf -> ../conf-available/15-fastcgi-php.conf
[email protected]:/etc/lighttpd/conf-available#

Luego recargamos Lighttpd:

/etc/init.d/lighttpd force-reload

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.

vi /var/www/info.php
# /usr/share/doc/lighttpd-doc/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"
        ))
)

Ahora llamamos a ese archivo en un navegador (por ejemplo, http://192.168.0.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-mysql. 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-mysql php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp 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:

/etc/init.d/php5-fpm reload

Ahora vuelva a cargar http://192.168.0.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
¿Configurar base de datos para phpmyadmin con dbconfig-common? <-- No

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

9 Hacer que PHP-FPM use un socket Unix

De forma predeterminada, PHP-FPM escucha en el puerto 9000 en 127.0.0.1. También es posible hacer que PHP-FPM use un socket Unix que evita la sobrecarga de TCP. Para ello, abra /etc/php5/fpm/pool.d/www.conf...

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

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

<?php
phpinfo();
?>

Luego recarga PHP-FPM:

/etc/init.d/php5-fpm reload

A continuación, abra el archivo de configuración de PHP de Lighttpd /etc/lighttpd/conf-disponible/15-fastcgi-php.conf y reemplace las líneas de host y puerto con "socket" => "/tmp/php5-fpm.sock":

vi /etc/lighttpd/conf-available/15-fastcgi-php.conf
[...]
;listen = 127.0.0.1:9000
listen = /tmp/php5-fpm.sock
[...]

Finalmente recargar Lighttpd:

/etc/init.d/lighttpd force-reload

10 enlaces

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

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

  2. Instalación de Apache2 con compatibilidad con PHP5 y MySQL en Ubuntu 14.04LTS (LAMP)

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

  4. Cómo instalar Lighttpd con PHP-FPM 7 y MySQL 5.7 en Ubuntu 18.04 LTS

  5. Cómo instalar Lighttpd con PHP5 y MySQL en Ubuntu 11.04

Instalación de Lighttpd con compatibilidad con PHP5 y MySQL en Debian Lenny

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 Lighttpd con PHP5 (PHP-FPM) y MySQL en Debian 8 (Jessie)

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

    # /usr/share/doc/lighttpd-doc/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" => "/tmp/php5-fpm.sock",
                    "broken-scriptfilename" => "enable"
            ))
    )