GNU/Linux >> Tutoriales Linux >  >> Ubuntu

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

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 14.04 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.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
Repetir la contraseña para el usuario "root" de MySQL:<-- yourrootsqlpassword

3 Instalación de Lighttpd

Lighttpd está disponible como un paquete de Ubuntu, por lo tanto, podemos instalarlo así, ya que apache2 está instalado de forma predeterminada en ubuntu14.04, por lo que primero desinstalaremos apache2 y luego instalaremos lighttpd.

service apache2 stop
update-rc.d -f apache2 remove
apt-get remove apache2
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 php5-fpm) que ejecuta un servidor FastCGI en el socket /var/run/php5-fpm.sock.

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.conf.bak) y modifique 15-fastcgi-php.conf de la siguiente manera:

cd /etc/lighttpd/conf-available/
cp 15-fastcgi-php.conf 15-fastcgi-php.conf.bak
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  7 05:33 10-fastcgi.conf -> ../conf-available/10-fastcgi.conf
lrwxrwxrwx 1 root root 37 May  7 05:33 15-fastcgi-php.conf -> ../conf-available/15-fastcgi-php.conf
[email protected]:/etc/lighttpd/conf-available#

Luego recargamos Lighttpd:

service lighttpd force-reload

Nota:si obtiene errores de configuración regional, puede eliminar el error usando

apt-get install language-pack-en-base  
dpkg-reconfigure locales

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" =>
        ((
                "socket" => "/var/run/php5-fpm.sock",
                "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:

service 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 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...

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

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

<?php
phpinfo();
?>

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:

service php5-fpm reload

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

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

Finalmente recargar Lighttpd:

service 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. Cómo instalar Lighttpd con PHP-FPM 7 y MySQL 5.7 en Ubuntu 18.04 LTS

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

  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" =>
            ((
                    "host" => "127.0.0.1",
                    "port" => "9000",
                    "broken-scriptfilename" => "enable"
            ))
    )