GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Instalación de Lighttpd con PHP (modo PHP-FPM) y MySQL o MariaDB en Ubuntu 15.10

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 instalar Lighttpd en un servidor Ubuntu 15.10 con soporte PHP (a través de PHP-FPM) y MySQL o MariaDB. 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.

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

sudo su

2 Instalación de MySQL / MariaDB

Ubuntu proporciona paquetes para el servidor de base de datos MySQL original (MySQL 5.6) y la bifurcación MySQL MariaDB (10). La mayoría de los usuarios prefieren usar MariaDB hoy en día, ya que es un poco más rápido que MySQL y el desarrollo avanza más rápido. Te dejo la decisión de qué instalar aquí y te explicaré ambas opciones. Siga las instrucciones del capítulo 2.1 o 2.2, pero no ambas.

2.1 Instalación de MySQL

Instale MySQL así:

apt-get -y install mysql-server-5.6 mysql-client-5.6

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

2.2 Instalación de MariaDB

Instale MariaDB así:

apt-get -y install mariadb-server mariadb-client

Ahora establecemos una contraseña de root para MariaDB.

mysql_secure_installation

Se le harán estas preguntas:

Enter current password for root (enter for none): <-- press enter
Set root password? [Y/n] <-- y
New password: <-- Enter the new MariaDB root password here
Re-enter new password: <-- Repeat the password
Remove anonymous users? [Y/n] <-- y
Disallow root login remotely? [Y/n] <-- y
Reload privilege tables now? [Y/n] <-- y

3 Instalación de Lighttpd

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

apt-get -y install lighttpd

Ahora dirija su navegador a http://192.168.1.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/html 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 PHP 5.6

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

apt-get -y install php5-fpm php5

PHP-FPM es un proceso daemon (con la unidad de servicio systemd php5-fpm.service) que ejecuta un servidor FastCGI en el socket /var/run/php5-fpm.sock.

5 Configuración de Lighttpd y PHP

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
[...]

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

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 Nov 11 13:59 10-fastcgi.conf -> ../conf-available/10-fastcgi.conf
lrwxrwxrwx 1 root root 37 Nov 11 13:59 15-fastcgi-php.conf -> ../conf-available/15-fastcgi-php.conf

Luego recargamos Lighttpd:

service 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/html. 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, PHP 5.6 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 PHP.

7 Obtener compatibilidad con MySQL en PHP5

Para obtener soporte de MySQL en PHP, podemos instalar el paquete php5-mysqlnd. Esto es preferible a php5-mysql paquete ya que contiene un controlador MySQL más nuevo que admite 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 -y install php5-mysqlnd 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 -y install php5-xcache

Ahora recarga PHP-FPM:

service php5-fpm reload

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 -y install phpmyadmin

Verá las siguientes preguntas:

Servidor web para reconfigurar automáticamente:<-- lighttpd
¿Configurar base de datos para phpmyadmin con dbconfig-common? <-- sí

Password of the database's administrative user: <-- Enter the MySQL/MariaDB root password
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 (opcional)

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:

service 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 la línea de conexión con las líneas de host y puerto:

nano /etc/lighttpd/conf-available/15-fastcgi-php.conf
# /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"
        ))
)

Finalmente recargar Lighttpd:

service lighttpd force-reload

10 Descarga de imagen de máquina virtual de este tutorial

Este tutorial está disponible como una imagen de máquina virtual lista para usar en formato ovf/ova para los suscriptores de Howtoforge. El formato VM es compatible con VMWare y Virtualbox. La imagen de la máquina virtual utiliza los siguientes detalles de inicio de sesión:

Inicio de sesión SSH/Shell

Nombre de usuario:administrador
Contraseña:howtoforge

Este usuario tiene derechos sudo.

Inicio de sesión en MySQL/MariaDB

Nombre de usuario:root
Contraseña:howtoforge

La IP de la VM es 192.168.1.100, se puede cambiar en el archivo /etc/network/interfaces. Cambie todas las contraseñas anteriores para proteger la máquina virtual.

11 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 Lighttpd con soporte PHP5 (PHP-FPM) y MySQL en Ubuntu 14.04LTS

  3. Instalación de Nginx con PHP y MariaDB (como reemplazo de MySQL) - LEMP - en Ubuntu 15.10 (Wiley Werewolf)

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

  5. Instalación de LLMP (Lighttpd, PHP y MySQL) en Ubuntu 14.10

Instalación de Lighttpd con PHP (modo PHP-FPM) y MySQL o MariaDB en Ubuntu 15.04

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

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

Cómo instalar Lighttpd con PHP y MariaDB en Ubuntu 15.04

Cómo instalar Lighttpd con PHP y MariaDB en Ubuntu 16.04 LTS

Cómo instalar Lighttpd con MariaDB y PHP en Ubuntu 18.04 LTS