GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Configuración básica de PHP 7 y Nginx en Ubuntu 16.04 Linux

Nginx está superando rápidamente a Apache como el servidor web favorito. Para las aplicaciones web creadas en lenguajes como Rails y Python, es prácticamente omnipresente, pero es un poco más lento de entender en el mundo de PHP. Parte de la razón de esto es la facilidad con la que PHP y Apache se combinan. Sin embargo, PHP y Nginx pueden cooperar casi con la misma facilidad y, con el lanzamiento de PHP 7, combinar los dos puede ser una opción bastante rápida.

Los Paquetes

Lo primero es lo primero. Actualice Ubuntu y obtenga los paquetes Nginx y PHP.

# sudo apt-get update && sudo apt-get -y upgrade
# sudo apt-get -y install nginx php7.0 php7.0-fpm

Cuando finalice la instalación, todos los paquetes deberían estar en su lugar y en funcionamiento. Para asegurarse de que este sea el caso, puede verificar que tanto Nginx como los servicios PHP-FPM se estén ejecutando en Systemd.

# sudo systemctl status nginx
# sudo systemctl status php7.0-fpm

Si Systemd confirma que ambos servicios se están ejecutando, el servidor debería estar activo y debería poder ver la página de bienvenida predeterminada de Nginx navegando a localhost en el navegador.

Configuración

Por supuesto, eso no está ni cerca de estar listo para albergar nada. Se necesita cierta configuración para apuntar a Nginx a algún contenido real y mejorar la seguridad. El directorio raíz de los archivos de configuración de Nginx se encuentra en /etc/nginx . Afortunadamente, ya existen valores predeterminados de Ubuntu que facilitan mucho el proceso de configuración.

Nginx.conf

El archivo de configuración principal para Nginx es nginx.conf . Ábralo en el editor de texto de su elección. Requerirá permisos de root, por lo que probablemente sea mejor un editor basado en texto como Vim. La configuración predeterminada es mayormente correcta. Obviamente, hay cosas que se pueden hacer para mejorar la velocidad y la seguridad del sistema, pero la mayor parte está más allá del alcance de este tutorial básico. Si desea mejorar el rendimiento, las opciones de Gzip comentadas ayudarán con la compresión y pueden acelerar las cosas. Por el lado de la seguridad, agregar las siguientes tres líneas ayudará a prevenir actividades maliciosas.

add_header X-Frame-Options SAMEORIGIN;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";

Configuración del sitio

Una vez agregadas las líneas, guarde y salga. Hay dos carpetas en la raíz de Nginx, sites-available y sites-enabled . sites-available almacena las configuraciones del sitio. sites-enabled contiene enlaces simbólicos a los archivos de configuración en sites-available . De esta manera, habilitar y deshabilitar sitios es tan simple como crear y eliminar enlaces simbólicos.

Usando su editor de texto, cree un archivo en /etc/nginx/sites-available/yoursite . Este archivo contendrá cualquier configuración específica del sitio para su nuevo sitio web PHP 7. El siguiente ejemplo contiene un desglose en los comentarios de lo que hace cada línea. Es una configuración bastante básica, pero hará el trabajo.


server { 
	
	#Nginx should listen on port 80 for requests to yoursite.com
	listen 80; 
	server_name yoursite.com; 

	#Create access and error logs in /var/log/nginx
	access_log /var/log/nginx/yoursite.access_log main; 
	error_log /var/log/nginx/yoursite.error_log info; 

	#Nginx should look in /var/www/yoursite for your website
	root /var/www/yoursite/;
	#The homepage of your website is a file called index.php 
	index index.php; 

	#Specifies that Nginx is looking for .php files
	location ~ \.php$ { 
		#If a file isn’t found, 404
		try_files $uri =404; 
		#Include Nginx’s fastcgi configuration
		include /etc/nginx/fastcgi.conf;
		#Look for the FastCGI Process Manager at this location 
		fastcgi_pass unix:/run/php/php7.0-fpm.sock; 
	} 
}

Cuando haya creado ese archivo, guárdelo y vaya a sites-enabled directorio. A partir de ahí, cree el enlace simbólico de vuelta al archivo que acaba de crear.

# cd /etc/nginx/sites-enabled
# sudo ln -s /etc/nginx/sites-available/yoursite

Seguridad de PHP.ini

La seguridad es un objetivo en movimiento, y es imposible mantenerse a la vanguardia de todas las posibles amenazas, pero siempre es una buena idea bloquear cualquier instalación de servidor nuevo tanto como sea posible. Hay algunos ajustes simples que se pueden hacer en el php.ini archivo de configuración que ayudará a proteger PHP. Con su editor de texto, abra /etc/php/7.0/fpm/php.ini . Este es un archivo enorme. Nuevamente, Vim o algo con una función de búsqueda es probablemente lo mejor.

Primero encuentra disable_functions y agrega phpinfo,system,mail,exec al final de la cadena de funciones que ya están ahí. Luego busque file_uploads y establézcalo en Off . A continuación, busque sql.safe_mode y enciéndelo On . Por último, busque allow_url_fopen y establézcalo en Off . Antes de cerrar el archivo, agregue una línea más al final.

register_globals = Off

Cuando haya terminado, guarde y cierre. Reinicie el servidor y debería estar listo para funcionar.

# sudo systemctl restart php7.0-fpm
# sudo systemctl restart nginx

Adónde ir después

Tal como está, el servidor Ubuntu debería poder ejecutar la mayoría de los sitios web PHP. Cualquier archivo PHP colocado en /var/www/yoursite será ejecutado por el servidor. Buscará el index.php archivo primero y el sitio web puede ramificarse desde allí. Por supuesto, se puede hacer mucho más para configurar PHP y Nginx para velocidad, seguridad y casi cualquier situación especial, pero ahora tiene un sólido punto de partida.


Ubuntu
  1. Cómo instalar PHP 7.4 y 8.0 en Ubuntu 18.04 o 20.04

  2. Instalar y configurar PHP OPcache en Ubuntu 20.04

  3. Cómo instalar OpenLiteSpeed ​​y PHP en Ubuntu

  4. Instalación y configuración de Php y Nginx en Ubuntu 20.04

  5. Cómo instalar y configurar PHP y Nginx (LEMP) en Ubuntu 20.04

Cómo instalar Linux, Lighttpd, MySQL y PHP (LLMP Stack) en Ubuntu 18.04

Cómo instalar Linux, Nginx, MySQL, PHP (LEMP Stack) en Ubuntu 18.04

Arranque dual Ubuntu y Arch Linux

Cómo instalar y configurar Yii PHP Framework en Ubuntu Linux

Cómo instalar Laravel PHP Framework con Nginx en Ubuntu Linux

Ubuntu GRUB Linux Bootloader y configuración