InstalacionesTutoriales

Cómo instalar Nginx, MariaDB y PHP en CentOS 7 (LEMP)

Nginx (pronunciado en inglés “engine X”) es un servidor web/proxy inverso ligero de alto rendimiento y un proxy para protocolos de correo electrónico (IMAP/POP3).

Es software libre y de código abierto, licenciado bajo la Licencia BSD simplificada; también existe una versión comercial distribuida bajo el nombre de nginx plus. Es multiplataforma, por lo que corre en sistemas tipo Unix (GNU/Linux, BSD, Solaris, Mac OS X, etc.) y Windows.

El sistema es usado por una larga lista de sitios web conocidos, como: WordPress, Netflix, Hulu, GitHub, Ohloh, SourceForge, TorrentReactor y partes de Facebook (como el servidor de descarga de archivos zip pesados).

Instalamos Nginx

Debemos agregar el repositorio EPEL

# yum install epel-release

Instalamos Nginx

# yum install nginx

Iniciamos Nginx

# systemctl start nginx

captura-de-pantalla-de-2016-12-01-202251

Al parecer, Nginx no distingue entre CentOS y Fedora

Si estás ejecutando un cortafuegos, ejecuta los siguientes comandos para permitir el tráfico HTTP y HTTPS:


# firewall-cmd --permanent --zone=public --add-service=http
# firewall-cmd --permanent --zone=public --add-service=https
# firewall-cmd --reload

Permitimos que Nginx inicie cada vez que el servidor se reinicie

# systemctl enable nginx

Instalamos MariaDB

# yum install mariadb-server mariadb

Iniciamos el servicio

# systemctl start mariadb

Ejecutamos el script post instalación

# mysql_secure_installation

mysql_secure_installation prompts:
Enter current password for root (enter for none):
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
New password: password
Re-enter new password: password
Password updated successfully!
Reloading privilege tables..
... Success!

Enter al principio porque el root de MariaDB no tiene contraseña, agregamos una nueva contraseña y luego damos “Y” a todo.

Habilitamos MariaDB para que inicie con el sistema

# systemctl enable mariadb

Instalamos PHP

# yum install php php-mysql php-fpm

Configuramos PHP

Abrimos el siguiente archivo

# vi /etc/php.ini

Descomentamos la siguiente linea y colocamos un cero

;cgi.fix_pathinfo=1

Debe quedar así

cgi.fix_pathinfo=0

Ahora editamos el siguiente archivo

# vi /etc/php-fpm.d/www.conf

Modificamos

listen =

Debe quedar así

listen = /var/run/php-fpm/php-fpm.sock

Descomentamos las siguientes lineas (quitamos el punto y coma)
listen.owner = nobody
listen.group = nobody

Modificamos

user = apache
group = apache

Debe quedar así

user = nginx
group = nginx

Iniciamos PHP

# systemctl start php-fpm

Colocamos PHP al inicio del sistema

# systemctl enable php-fpm

Configuramos Nginx para que procese páginas en PHP

Abrimos el siguiente archivo

# vi /etc/nginx/conf.d/default.conf

Copiamos y pegamos

server {
    listen       80;
    server_name  server_domain_name_or_IP;

    # note that these lines are originally from the "location /" block
    root   /usr/share/nginx/html;
    index index.php index.html index.htm;

    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_pass unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

Modificamos server_domain_name_or_IP, guardamos.

Reiniciamos Nginx

# systemctl restart nginx

Probamos si funciona PHP, creamos un archivo info.php

# vi /usr/share/nginx/html/info.php

Colocamos la siguiente linea y guardamos

<?php phpinfo(); ?>

Si colocamoshttp://nuestra_ip/info.php debe verse una página como esta

captura-de-pantalla-de-2016-12-01-204330

Borramos el archivo, ya que no es necesario

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

Conclusión

La instalación de LEMP es un poco más compleja que una instalación de LAMP, sobre todo porque PHP no puede funcionar directamente con Nginx y se debe realizar ciertas modificaciones para que funcione. Se dice que Nginx es mas veloz en comparación con Apache, por eso ha ido aumentando su popularidad. Pero eso es relativo, es mas veloz porque tiene menos complementos. Personalmente sigo prefiriendo Apache

Etiquetas

Related Articles

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Check Also

Close
Close