Nginx (pronunciado "motor x") es un servidor HTTP gratuito, de código abierto y de alto rendimiento. Nginx es conocido por su estabilidad, rico conjunto de funciones, configuración simple y bajo consumo de recursos. Este tutorial muestra cómo puede instalar Nginx en un servidor Ubuntu 12.04 LTS con soporte para PHP5 (a través de PHP-FPM) y soporte para MySQL (LEMP =L inux + nginx (pronunciado "e motor x") + M ySQL + P HP).
¡No emito ninguna garantía de que esto funcione para usted!
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
Para instalar MySQL, ejecutamos
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 Nginx
Nginx está disponible como paquete para Ubuntu 12.04 que podemos instalar de la siguiente manera:
apt-get install nginx
Inicie nginx después:
/etc/init.d/nginx start
Escriba la dirección IP o el nombre de host de su servidor web en un navegador (por ejemplo, http://192.168.0.100), y debería ver la siguiente página:
La raíz del documento nginx predeterminada en Ubuntu 12.04 es /usr/share/nginx/www.
4 Instalación de PHP5
Podemos hacer que PHP5 funcione en nginx a través de PHP-FPM (PHP-FPM (FastCGI Process Manager) es una implementación alternativa de PHP FastCGI con algunas funciones adicionales útiles para sitios de cualquier tamaño, especialmente los sitios más concurridos) que instalamos de la siguiente manera:
apt-get install php5-fpm
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 Configuración de nginx
La configuración de nginx está en /etc/nginx/nginx.conf que abrimos ahora:
vi /etc/nginx/nginx.conf
La configuración es fácil de entender (puede obtener más información aquí:http://wiki.nginx.org/NginxFullExample y aquí:http://wiki.nginx.org/NginxFullExample2)
Primero (esto es opcional) ajuste la cantidad de procesos de trabajo y establezca el tiempo de espera de keepalive_time en un valor razonable:
[...] worker_processes 4; [...] keepalive_timeout 2; [...] |
[...] server { listen 80; ## listen for ipv4; this line is default and implied listen [::]:80 default ipv6only=on; ## listen for ipv6 root /usr/share/nginx/www; index index.php index.html index.htm; # Make site accessible from http://localhost/ server_name _; location / { # First attempt to serve request as file, then # as directory, then fall back to index.html try_files $uri $uri/ /index.html; # Uncomment to enable naxsi on this location # include /etc/nginx/naxsi.rules } location /doc/ { alias /usr/share/doc/; autoindex on; allow 127.0.0.1; deny all; } # Only for nginx-naxsi : process denied requests #location /RequestDenied { # For example, return an error code #return 418; #} #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/www; } # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi_params; } # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # location ~ /\.ht { deny all; } } [...] |
<?php phpinfo(); ?> |
[...] ;listen = 127.0.0.1:9000 listen = /tmp/php5-fpm.sock [...] |
[...] location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/tmp/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; } [...] |