El siguiente artículo lo guiará a través de los pasos sobre cómo instalar LEMP (Linux, Nginx, MariaDB y PHP-FPM) en uno de nuestros CentOS 7 Servidores Virtuales Linux .
Si por el contrario, estás buscando cómo configurar LAMP , luego consulte nuestra guía sobre cómo instalar LAMP (Linux Apache, MariaDB y PHP) en un CentOS 7 VPS
¿Qué es LEMP?
UN LEMP pila es sinónimo de LEMP servidor o LEMP Servidor web. Se refiere a una configuración que incluye Linux , Nginx , MariaDB (MySQL) y PHP .
ACTUALIZAR EL SISTEMA
Como de costumbre, SSH
a su VPS Linux, inicie una screen
sesión y asegúrese de que su CentOS 7 está completamente actualizado ejecutando los siguientes comandos:
## screen -U -S lemp-centos7 ## yum update
INSTALAR MARIA DB (MYSQL)
MariaDB es un reemplazo directo para MySQL y es el servidor de base de datos predeterminado utilizado en CentOS 7 (RHEL7) . Continúe con la instalación usando yum
como en:
## yum install mariadb mariadb-server mysql
A continuación, abra /etc/my.cnf.d/server.cnf
usando su editor de texto favorito y agregue bind-address = 127.0.0.1
dentro del [mysqld]
bloquear. Por ejemplo:
## vim /etc/my.cnf.d/server.cnf [mysqld] #log-bin=mysql-bin #binlog_format=mixed bind-address = 127.0.0.1
Esto obligará a MariaDB a escuchar solo en localhost , lo que se considera una buena práctica de seguridad. Bien, ahora reinicie el servidor de la base de datos MariaDB y habilítelo para que se inicie al iniciar el sistema usando:
## systemctl restart mariadb ## systemctl status mariadb ## systemctl enable mariadb
Opcionalmente, puede ejecutar mysql_secure_installation
secuencia de comandos posterior a la instalación para mejorar la seguridad de la instalación de MariaDB (MySQL) . Por ejemplo:
## mysql_secure_installation Enter current password for root (enter for none): ENTER Set root password? [Y/n] Y Remove anonymous users? [Y/n] Y Disallow root login remotely? [Y/n] Y Remove test database and access to it? [Y/n] Y Reload privilege tables now? [Y/n] Y
INSTALAR SERVIDOR HTTP NGINX
Nginx
aún no está disponible en CentOS 7 repositorios oficiales al momento de escribir este artículo. Entonces, para ser fácilmente instalado y administrado usando yum
, podemos usar el repositorio para la última versión estable de Nginx para CentOS 7.
Por ejemplo:
## rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm ## yum install nginx
Una vez que esté instalado, ejecute el siguiente comando para averiguar la cantidad de CPU disponibles en su SSD VPS:
## grep -c processor /proc/cpuinfo 2
Este número debe representar el número de nginx
procesos establecidos en el archivo de configuración principal de Nginx en /etc/nginx/nginx.conf
.
## vim /etc/nginx/nginx.conf ... worker_processes 2;
Detenga Apache si se está ejecutando en el sistema con el siguiente comando:
## [[ $(pgrep httpd) ]] && ( systemctl stop httpd; systemctl disable httpd )
y pruebe, inicie y agregue Nginx al inicio del sistema usando:
## nginx -t ## systemctl restart nginx ## systemctl enable nginx
Navegue a http://server_ip y debería obtener algo como:
Esto significa que tiene Nginx funcionando correctamente.
INSTALAR PHP-FPM
Vamos a ejecutar PHP como FastCGI usando PHP-FPM , así que instale el soporte de PHP usando yum
:
## yum install php-fpm php-mysql
además, es posible que desee instalar algunas otras extensiones de PHP requerido por sus aplicaciones. Aquí está la lista:
php-bcmath : A module for PHP applications for using the bcmath library php-cli : Command-line interface for PHP php-common : Common files for PHP php-dba : A database abstraction layer module for PHP applications php-devel : Files needed for building PHP extensions php-embedded : PHP library for embedding in applications php-enchant : Enchant spelling extension for PHP applications php-fpm : PHP FastCGI Process Manager php-gd : A module for PHP applications for using the gd graphics library php-intl : Internationalization extension for PHP applications php-ldap : A module for PHP applications that use LDAP php-mbstring : A module for PHP applications which need multi-byte string handling php-mysql : A module for PHP applications that use MySQL databases php-mysqlnd : A module for PHP applications that use MySQL databases php-odbc : A module for PHP applications that use ODBC databases php-pdo : A database access abstraction module for PHP applications php-pear.noarch : PHP Extension and Application Repository framework php-pecl-memcache : Extension to work with the Memcached caching daemon php-pgsql : A PostgreSQL database module for PHP php-process : Modules for PHP script using system process interfaces php-pspell : A module for PHP applications for using pspell interfaces php-recode : A module for PHP applications for using the recode library php-snmp : A module for PHP applications that query SNMP-managed devices php-soap : A module for PHP applications that use the SOAP protocol php-xml : A module for PHP applications which use XML php-xmlrpc : A module for PHP applications which use the XML-RPC protocol
Edite el archivo de configuración principal de PHP en /etc/php.ini
y establece lo siguiente:
## vim /etc/php.ini date.timezone = America/New_York memory_limit = 64M expose_php = Off
Además, edite /etc/php-fpm.d/www.conf
y cambie el usuario y el grupo en el que se ejecutará el grupo de fpm a nginx
:
## vim +/^user /etc/php-fpm.d/www.conf user = nginx group = nginx
configurar la propiedad del directorio de registros:
## chown nginx:root -R /var/log/php-fpm/
inicie y agregue el servidor PHP al inicio del sistema usando systemctl
## systemctl restart php-fpm ## systemctl enable php-fpm
CONFIGURAR NGINX VHOST
Digamos que tienes un dominio mydomain.com
y le gusta usarlo para alojar una aplicación web basada en PHP en /srv/www/mydomain.com.com
como WordPress, Joomla, Laravel, etc. Para configurar las solicitudes de servicio de Nginx para mydomain.com
y sirva los scripts PHP en /srv/www/mydomain.com.com
tendrías que crear un bloque de servidor en /etc/nginx/conf.d/mydomain.com.conf
que sería algo como:
## vim /etc/nginx/conf.d/mydomain.com.conf server { server_name mydomain.com; listen 80; root /srv/www/mydomain.com; access_log /var/log/nginx/mydomain.com-access.log; error_log /var/log/nginx/mydomain.com-error.log; index index.php; location / { try_files $uri $uri/ /index.php?$args; } location ~* \.(jpg|jpeg|gif|css|png|js|ico|html)$ { access_log off; expires max; } location ~ /\.ht { deny all; } location ~ \.php { try_files $uri = 404; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include /etc/nginx/fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }
pruebe y reinicie Nginx usando:
## nginx -t ## systemctl restart nginx
Opcionalmente, cree una prueba info.php
script usando el siguiente comando:
## mkdir -p /srv/www/mydomain.com ## echo -e "<?php\n\tphpinfo();" > /srv/www/mydomain.com/info.php ## chown nginx: -R /srv/www/
e intente acceder a él en su navegador en http://mydomain.com/info.php
Por supuesto, no tiene que hacer nada de esto si utiliza uno de nuestros servicios de alojamiento VPS Linux, en cuyo caso simplemente puede pedir a nuestros administradores expertos de Linux que instalen LEMP por usted . Están disponibles las 24 horas del día, los 7 días de la semana y atenderán su solicitud de inmediato. También puede intentar leer nuestra guía sobre cómo instalar LEMP (Linux, Nginx, MySQL y PHP-FPM) en un VPS Debian 8.
PD. Si te gustó esta publicación, compártela con tus amigos en las redes sociales usando los botones de la izquierda o simplemente deja una respuesta a continuación. Gracias.