INSTALACION DE NGINX (LEMP) EN ARCHLINUX

¿Qué es Nginx?



alt


Es un servidor HTTP, proxy en reversa, balanceador de carga y proxy de correo electrónico, basado en el concepto del código abierto. Enfocado en una arquitectura de manejo de eventos asíncronos en lugar de hilos o threads es reconocido por su alto desempeño, bajo consumo de recursos, estabilidad, esca labilidad y configuración sencilla.
# LEMP  es el acrónimo de Linux Nginx Mysql y PHP.<br>
Se estima que más del 14% de los sitios en Internet están servidos o proxiados por Nginx, entre ellos podemos mencionar algunos de gran relevancia que seguro conocerás como GitHub, Wordpress.com, Netflix, Heroku, SoundCloud y muchos más.

Nginx vs. Apache

Mencionemos algunas características que ilustrarán las ventajas que ofrece Nginx en contraste con el servidor web más conocido en el mercado.

  • Manejo de concurrencia de entre 4 y 8 veces mayor.
  • Servicio de recursos estáticos de hasta 300% más rápido.
  • Consumo de memoria de hasta 20 veces menos.

Cómo instalar (LEMP) Nginx, MySQL, PHP en Arch Linux

Primer paso:

Debemos actualizar el gestor de paquetes

sudo pacman -Syu

Segundo paso:

Vamos a instalar MariaBD (Mysql)

sudo pacman -S mysql

Es necesario inicializar el directorio de datos MariaDB antes de iniciar el servicio. Para ello, ejecute:

mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql

Ahora vamos iniciar los servicio de MariaDB
y permitir que se inicie al arrancar

systemctl start mysqld

systemctl enable mysqld

Si queremos detener los servicio de MariaDB

systemctl stop mysqld

Si queremos reiniciar los servicio de MariaDB

systemctl restart mysqld

Podemos verificar si MariaDB está funcionando

systemctl status mysqld

Nos debera devolver algo similar:

[ariel@Toshiba ~]$ systemctl status mysqld
● mariadb.service - MariaDB database server Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled) Active: active (running) since Tue 2016-12-13 02:34:28 BOT; 1min 6s ago Process: 675 ExecStartPost=/bin/sh -c systemctl unset-environment WSREPSTARTPOSITION (code Process: 338 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galerarecovery ] && VAR= || VAR=`/usr Process: 333 ExecStartPre=/bin/sh -c systemctl unset-environment WSREPSTART_POSITION (code= Main PID: 428 (mysqld) Status: "Taking your SQL requests now..." Tasks: 27 (limit: 4915) CGroup: /system.slice/mariadb.service └─428 /usr/sbin/mysqld

dic 13 02:34:25 Toshiba mysqld[428]: 2016-12-13 2:34:25 139937974525440 [Note] InnoDB: Highest dic 13 02:34:26 Toshiba mysqld[428]: 2016-12-13 2:34:26 139937974525440 [Note] InnoDB: 128 rol
dic 13 02:34:26 Toshiba mysqld[428]: 2016-12-13 2:34:26 139937974525440 [Note] InnoDB: Waiting
dic 13 02:34:26 Toshiba mysqld[428]: 2016-12-13 2:34:26 139937974525440 [Note] InnoDB: Percon
dic 13 02:34:27 Toshiba mysqld[428]: 2016-12-13 2:34:27 139937974525440 [Note] Plugin 'FEEDBAC
dic 13 02:34:27 Toshiba mysqld[428]: 2016-12-13 2:34:27 139937445836544 [Note] InnoDB: Dumping
dic 13 02:34:27 Toshiba mysqld[428]: 2016-12-13 2:34:27 139937974525440 [Note] Server socket c

También seremos capases de establecer la contraseña de root de MySQL durante la instalación.

sudo mysql_secure_installation

Nos tendra que devolver una serie de preguntas:

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none): ## Press Enter OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB root user without the proper authorisation.

Set root password? [Y/n]## Press Enter New password:## Enter password
Re-enter new password: ## Re-enter password
Password updated successfully!
Reloading privilege tables..
... Success!

By default, a MariaDB installation has an anonymous user, allowing anyone to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n]## Press Enter ... Success!

Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n]## Press Enter ... Success!

By default, MariaDB comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n]## Press Enter - Dropping test database... ... Success! - Removing privileges on test database... ... Success!

Reloading the privilege tables will ensure that all changes made so far will take effect immediately.

Reload privilege tables now? [Y/n]## Press Enter ... Success!

Cleaning up...

All done! If you've completed all of the above steps, your MariaDB installation should now be secure.

Thanks for using MariaDB!

Tercer paso:

Instalar Nginx
ahora vamos a instalar Nginx web del servidor con el comando:

pacman -S nginx

Iniciamos el servicio Nginx y permitir que se inicie al arrancar, utilizando comandos:

systemctl start nginx

systemctl enable nginx

Para comprobar si Nginx ha comenzado o no, ejecutamos

systemctl status nginx

Nos devolvera lo siguiente

● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
Active: active (running) since Fri 2016-02-19 16:20:41 IST; 5s ago
Process: 10032 ExecStart=/usr/bin/nginx -g pid /run/nginx.pid; error_log stderr; (code=exited, status=0/SUCCESS)
Main PID: 10047 (nginx)
Tasks: 2 (limit: 512)
CGroup: /system.slice/nginx.service
├─10047 nginx: master process /usr/bin/nginx -g pid
/run/nginx.pid...
└─10048 nginx: worker process

Feb 19 16:20:41 server systemd[1]: Starting A high performance web server a.....
Feb 19 16:20:41 server systemd[1]: Started A high performance web server an...r.

Hint: Some lines were ellipsized, use -l to show in full.

El archivo de configuración global Nginx es /etc/nginx/nginx.conf . Puede editar y cambiarlo según sus necesidades.

Nginx prueba

Abra su navegador Web y vaya a http://localhost o http://dirección IP . Usted estará con la página de prueba del servidor Nginx.
alt

Cuarto paso:

Instalación de PHP

pacman -S php-fpm

Una vez instalado PHP, necesitamos decirle Nginx ejecutar PHP usando PHP-FPM.

Para ello, edite /etc/nginx/nginx.conf,

nano /etc/nginx/nginx.conf

Encuentre la siguiente sección y añadir o modificar como se muestra a continuación.

location ~ \.php$ {
fastcgipass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi
index index.php;
root /usr/share/nginx/html;
include fastcgi.conf;
}

alt

Guardar y cierre el archivo.

Ahora vamos a inciar el servicio de nginx utilizando los siguiente comandos.

Para iniciar el servicio y permitir que se inicie al arrancar

systemctl start php-fpm

systemctl enable php-fpm

Si queremos detener el servicio de Nginx

systemctl stop php-fpm

Test php

Ahora vamos a crear un test.php en el directorio raíz del servidor web.

nano /usr/share/nginx/html/test.php

Añadir las siguientes líneas:

<?php
phpinfo();
?>

Por ultimo guardamos y reiniciamos
Si queremos reiniciar el servicio de Nginx

systemctl restart php-fpm

Abra su navegador web y vaya a http: //ip-address/test.php
Nos tendra que devolver lo siguiente en pantalla

alt


Página oficial