Instalar Linux, Nginx, MySQL y PHP (LEMP) en Debian 8
INTRODUCCIÓN
¡Manos a la Obra¡
Instalar Linux, Nginx, MySQL y PHP (LEMP) en Debian 8. Este tutorial describe una alternativa compatible con el LAMP (Linux, Apache, MySQL y PHP), conocido como LEMP. El paquete LEMP reemplaza el componente de servidor web Apache (que es la "A" en LAMP) con Nginx (pronunciado "motor x", proporcionando la "E" en LEMP). LEMP se compone de una variedad de software de código abierto que se utiliza para generar y ejecutar servidores web.
En este tutorial está dirigido a un usuario no root. Los comandos que requieren privilegios elevados tienen el prefijo sudo
. Si no está familiarizado con el sudo
comando, se puede comprobar nuestros usuarios y grupos
Antes de que empieces
Antes de instalar el paquete LEMP de asegurar que:
Ha seguido las Getting Started y asegurando su servidor
Usted tiene un nombre de host y el nombre de dominio completo (FQDN). Para garantizar que esto se pone de ejecución:
hostname hostname -f
El primer comando debería devolver el nombre de host, con la segunda proporcionar su nombre completo.
repositorios de paquetes y de su linode son hasta a la fecha:
sudo apt-get update && sudo apt-get upgrade
Paso 1. Instalar el servidor web Nginx
Hay varias formas de instalar Nginx. El método utilizado aquí recupera paquetes desde el repositorio de software del Proyecto Debian y ofrece una versión estable y probado del servidor web.
Instalar Nginx:
sudo apt-get install nginx
Configurar bloques de servidor
En Nginx server blocks
son el equivalente de los hosts virtuales de Apache. Crear el archivo de bloque servidor /etc/nginx/sites-available/example.com
. En este y en todos los pasos siguientes, reemplace example.com
con su dominio:
/etc/nginx/sites-available/example.com
server { listen 80 ; server_name www.example.com example.com ; access_log /var/www/html/example.com/logs/access.log ; error_log /var/www/html/example.com/logs/error.log ; location / { root /var/www/html/example.com/public_html ; index index.html index.htm ; } }
Crear el public_html
y log
los directorios que se hace referencia más arriba:
sudo mkdir -p /var/www/html/example.com/{public_html,logs}
Habilitar el sitio y reiniciar el servidor web.
sudo ln -s /etc/nginx/sites-available/example.com / etc / nginx / sites-enabled reinicio sudo /etc/init.d/nginx
Para desactivar un sitio, basta con eliminar el enlace simbólico y reiniciar Nginx:
sudo rm /etc/nginx/sites-enabled/example.com sudo /etc/init.d/nginx reinicio
El archivo de origen se guarda, y el sitio se puede volver a activar en cualquier momento.
Paso 2. Implementar con PHP FastCGI
Con el fin de implementar aplicaciones PHP es necesario implementar "PHP-FastCGI", para permitir que Nginx manejar adecuadamente y servir páginas que contienen código PHP. Comience por instalar las dependencias necesarias:
sudo apt-get install php5-cli php5-cgi-desove fcgi php-pear
La siguiente secuencia de comandos:
- Descargar un pequeño script de envoltorio para PHP-FastCGI.
- Configurar un guión de inicio para controlar el proceso.
- Iniciar el proceso por primera vez.
- Asegúrese de que el proceso se iniciará después de un ciclo de reinicio.
cd / opt / sudo wget -O php-fastcgi-deb.sh http://wwwlinode.com/docs/assets/1548-php-fastcgi-deb.sh sudo mv /opt/php-fastcgi-deb.sh / usr / bin / php-fastcgi sudo chmod + x / usr / bin / php-fastcgi sudo wget -O init-php-fastcgi- deb.sh http://www.linode.com/docs/assets/1549-init -php-fastcgi-deb.sh sudo mv /opt/init-php- fastcgi-deb.sh /etc/init.d/php-fastcgi sudo chmod + x /etc/init.d/php-fastcgi sudo / etc / init.d / php-fastcgi sudo update-rc.d inicio por defecto php-fastcgi
- En el archivo de bloque de servidor, agregar una
location
directiva para pasar archivos PHP a través de FastCGI: -
Para mitigar este problema, es posible que desee modificar la configuración para incluir un
try_files
Directiva. Tenga en cuenta que esta corrección requiere Nginx y los trabajadores php-fcgi a residir en el mismo servidor.location ~ \.php$ { try_files $uri = 404 ; include /etc/nginx/fastcgi_params ; fastcgi_pass 127.0.0.1 : 9000 ; fastcgi_index index.php ; fastcgi_param SCRIPT_FILENAME /var/www/html/example.com/public_html $fastcgi_script_name ; }
Además, es una buena idea para asegurar los directorios subir tus aplicaciones pueden utilizar. El siguiente extracto de configuración demuestra la obtención de un
/images
directorio.ubicación ~ \ php $ {include / etc / nginx / fastcgi_params; if ($ uri!~ "^/images/") { fastcgi_pass 127.0.0.1 : 9000 ; } fastcgi_index index.php ; fastcgi_param SCRIPT_FILENAME /var/www/html/example.com/public_html $fastcgi_script_name ; }
-
Cuando haya completado las modificaciones en la configuración, asegúrese de que el bloque de Sever está activado y reinicie Nginx:
reinicio /etc/init.d/nginx
/etc/nginx/sites-available/example.com
location ~ \.php$ { include /etc/nginx/fastcgi_params ; fastcgi_pass 127.0.0.1 : 9000 ; fastcgi_index index.php ; fastcgi_param SCRIPT_FILENAME /var/www/html/example.com/public_html $fastcgi_script_name ; }
Si usted está planeando para ejecutar aplicaciones que soportan la carga de archivos (imágenes, por ejemplo),
la configuración anterior puede quedar expuesto a un riesgo de seguridad al permitir la ejecución
de código arbitrario. La breve explicación para este comportamiento es que un URI adecuadamente
diseñado, que termina en ".php", en combinación con un archivo de imagen malicioso que en realidad
contiene PHP válido, puede dar lugar a la imagen que está siendo procesada como PHP. Para obtener más
información sobre los detalles de este comportamiento, es posible que desee revisar la información proporcionada
en el blog de Neal Poole
Que ahora son capaces de desplegar scripts PHP con el paquete de LEMP.
Paso 3. Instalar MySQL Database Server
motor de base de datos MySQL puede ser el principal motor de base de datos relacional de código abierto, y es una solución popular base de datos para las aplicaciones basadas en la Web.
Instalar los paquetes de servidor MySQL y PHP apoyo requerido para MySQL:
sudo apt-get install mysql-server php5-mysql
Se le pedirá que introduzca una contraseña segura para el usuario root de MySQL.
MySQL abrir la CLI:
mysql -u root -p
Se le pedirá que introduzca la contraseña del usuario root de MySQL.
Crear una base de datos y otorgar sus permisos a los usuarios sobre el mismo. Cambiar el nombre de la base ( webdata
) y nombre de usuario ( username
). Cambiar la contraseña ( password
):
webdata crear la base de datos; conceda a todos en webdata * a 'nombre de usuario' identificado por "contraseña".;
Salir de MySQL:
quit
Ahora puede proporcionar las credenciales de la base de datos y el usuario de la aplicación para utilizar la base de datos para sus fines. Para asegurarse de que PHP será capaz de acceder al conector de MySQL que acaba de instalar, reinicie el servicio de PHP:
reinicio sudo /etc/init.d/php-fastcgi
CONCLUSIÓN:
Ahora tiene un paquete LEMP completamente funcional en Debian 8 y con todas las funciones del paquete para la implementación de aplicaciones. Espero te haya sido de vital ayuda este tutorial, no olvides dejar tu opinión o inquietud en nuestra caja de comentarios.
Fuente. Artículo traducido y con muy ligeras modificaciones de: https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-debian