Instalar Linux, Nginx, MySQL, PHP (LEMP) en Ubuntu 14.04

Por kedinn 2014/10/29

Empezare a compartir mis conocimiento sobre servidores y este sera mi primer tutorial, donde instalaremos servidor web Nginx, base de datos Mysql y PHP.

Este procedimiento es lo mismo en debian.

lemp-nginx-mysql-php-ubuntu

Instalación de Nginx

sudo apt-get update
sudo apt-get install nginx

Si quieren Instalar la ultima versión estable de nginx (ignoran las anteriores lineas)

sudo apt-get install python-software-properties

sudo add-apt-repository ppa:nginx/stable

sudo apt-get update

sudo apt-get install nginx

Ahora veremos si funciona correctamente en su dirección de dominio o IP.

http://dominio_o_IP

Si te aparece la siguiente imagen esta todo bien :)

nginx_instalar

Instalación de Mysql

Ahora instalaremos base de datos Mysql con en la siguiente linea.

sudo apt-get install mysql-server

 

Se le solicitará que facilite una contraseña de root para MySQL.

La base de datos MySQL ya está instalado, pero su configuración aún no es exactamente completa.

En primer lugar, tenemos que decirle a MySQL que genere la estructura de directorios que necesita para almacenar sus bases de datos e información. Podemos hacer esto escribiendo:

sudo mysql_install_db

Ahora con la siguiente linea pediremos una configuración de seguridad que son opcionales pero que nos servirá para asegurar el servidor.

sudo mysql_secure_installation

Le pedirá introducir la contraseña de root de MySQL que haya seleccionado durante la instalación.

A continuación, se le preguntará si desea cambiar la contraseña. Si usted es feliz con su contraseña de root de MySQL, escribe "N" para no y pulsa “Enter”. después se le pedirá que retire algunos usuarios de prueba y bases de datos. Usted sólo debe pulsar “ENTER” a través de estas instrucciones para eliminar la configuración predeterminada inseguras, no se preocupe mas adelante podrá configurar Mysql según lo que quiere.

Una vez que terminado al final les mostrara que fue instalado con éxito!

Instalación de PHP

Ahora tenemos Nginx como servidor web y base de datos MySQL, continuación instalaremos PHP.

Desde Nginx no contiene el procesamiento de PHP nativo como algunos otros servidores web, tendremos que instalar php5-fpm, lo que significa “fastCGI process manager”.

Empezaremos con la siguiente linea:

sudo apt-get install php5-fpm php5-mysql

Configure el procesador de PHP

Ahora tenemos instalado PHP, pero tenemos que hacer un cambio de configuración ligera para hacer nuestra configuración más segura.

Abra el archivo de configuración de php5-fpm con la siguiente linea:

sudo nano /etc/php5/fpm/php.ini

Buscamos en este archivo la linea que contenga cgi.fix_pathinfo. si esta comentado lo descomentamos por predeterminado viene con un valor 1, lo cambio por 0, la linea tiene que estar de la siguiente forma:

cgi.fix_pathinfo=0

Ahora reiniciarremos nuestro procesador de PHP escribiendo:

sudo service php5-fpm restart

Hasta ahora no sabemos si estamos bien, entonces vamos a configurar y ver si esta funciona correctamente.

Configuración de nginx

Vamos a cambiar algunas cosas para decirle a Nginx utilizar nuestro procesador de PHP para el contenido dinámico, algo parecido como Apache.

Entramos al siguiente archivo:

sudo nano /etc/nginx/sites-available/default

y nos mostrara como esto:

server {
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;

    root /usr/share/nginx/html;
    index index.html index.htm;

    server_name localhost;

    location / {
        try_files $uri $uri/ =404;
    }
}

Tenemos que hacer un cambio y nos tiene que quedar como esto:


    server {
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;

    root /usr/share/nginx/html;
    index index.php index.html index.htm;

    server_name server_domain_name_or_IP;

    location / {
        try_files $uri $uri/ =404;
    }

    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/html;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_index index.php;
        include fastcgi_params;
    }


}

Reiniciaremos nginx:

sudo service nginx restart

Crearemos un archivo info.php, esto sera para que nos muestre todas las instalaciones que tenemos

sudo nano /usr/share/nginx/html/info.php

Ahora insertemos este código php:

<?php
phpinfo();
?>

y lo guardamos Ctrl + x para salir y luego YES para que se guarde.

abrimos nuestro navegador entraremos a nuestra dirección con el nombre de dominio o ip:

http://dominio_o_IP/info.php

Si esta todo bien nos mostrara de esta forma :

php_info

si quieren eliminar el archivo info.php es con el comando rm :

sudo rm /usr/share/nginx/html/info.php

 

Videotutorial


Y listo! espero que les sirva y saludos :)