Búsqueda de sitios web

Cómo instalar Laravel PHP Framework con Nginx en CentOS 8


Laravel es un marco web de código abierto, conocido y moderno basado en PHP con una sintaxis expresiva, elegante y fácil de entender que facilita la creación de aplicaciones web grandes y robustas.

Sus características clave incluyen un motor de enrutamiento simple y rápido, un potente contenedor de inyección de dependencias, múltiples back-ends para almacenamiento de sesión y caché, ORM (mapeo relacional de objetos) de base de datos expresivo e intuitivo, procesamiento robusto de trabajos en segundo plano y transmisión de eventos en tiempo real.

Además, utiliza herramientas como Composer, un administrador de paquetes PHP para administrar dependencias, y Artisan, una interfaz de línea de comandos para crear y administrar aplicaciones web.

En este artículo, aprenderá cómo instalar la última versión del marco web Laravel PHP en la distribución de Linux CentOS 8.

Requisitos del servidor

El marco Laravel tiene los siguientes requisitos:

  • PHP >= 7.2.5 con estas extensiones PHP OpenSSL, PDO, Mbstring, Tokenizer, XML, Ctype y JSON.
  • Composer: para instalar y administrar dependencias.

Paso 1: Instalar LEMP Stack en CentOS 8

1. Para comenzar, actualice los paquetes de software del sistema e instale la pila LEMP (Linux, Nginx, MariaDB/MySQL y PHP) usando los siguientes comandos dnf.

dnf update
dnf install nginx php php-fpm php-common php-xml php-mbstring php-json php-zip mariadb-server php-mysqlnd

2. Cuando se complete la instalación de LEMP, debe iniciar PHP-PFM, Nginx y MariaDB utilizando los siguientes comandos systemctl.

systemctl start php-fpm nginx mariadb
systemctl enable php-fpm nginx mariadb
systemctl status php-fpm nginx mariadb

3. A continuación, debe proteger y reforzar el motor de base de datos MariaDB utilizando el script de seguridad como se muestra.

mysql_secure_installation

Responda las siguientes preguntas para asegurar la instalación del servidor.

Enter current password for root (enter for none): Enter Set root password? [Y/n] y #set new root password 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

4. Si tiene el servicio firewalld ejecutándose, debe abrir el servicio HTTP y HTTPS en el firewall. para habilitar las solicitudes de los clientes al servidor web Nginx.

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

5. Finalmente, puede confirmar que su pila LEMP se está ejecutando utilizando un navegador en la dirección IP de su sistema.

http://server-IP

Paso 2: Configurar y proteger PHP-FPM y Nginx

6. Para procesar solicitudes del servidor web Nginx, PHP-FPM puede escuchar en un socket Unix o TCP y esto está definido por el parámetro listen en el archivo de configuración /etc/php-fpm.d/www.conf.

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

De forma predeterminada, está configurado para escuchar en un socket Unix como se muestra en la siguiente captura de pantalla. El valor aquí se especificará en el archivo de bloque del servidor Nginx más adelante.

7. Si utiliza un socket Unix, también debe configurar la propiedad y los permisos correctos como se muestra en la captura de pantalla. Descomente los siguientes parámetros y establezca sus valores para el usuario y el grupo para que coincidan con el usuario y el grupo en el que se ejecuta Nginx.

listen.owner = nginx
listen.group = nginx
listen.mode = 066

8. A continuación, configure también la zona horaria de todo el sistema en el archivo de configuración /etc/php.ini.

vi /etc/php.ini

Busque la línea “;date.timezone ” y descomentela, luego establezca su valor como se muestra en la captura de pantalla (use valores que se apliquen a su región/continente y país).

 
date.timezone = Africa/Kampala

9. Para mitigar el riesgo de que Nginx pase solicitudes de usuarios malintencionados que usan otras extensiones para ejecutar código PHP a PHP-FPM, descomente el siguiente parámetro y establezca su valor en < código>0.

cgi.fix_pathinfo=1

10. En relación al punto anterior, descomente también el siguiente parámetro en el archivo /etc/php-fpm.d/www.conf. Lea el comentario para obtener más explicaciones.

security.limit_extensions = .php .php3 .php4 .php5 .php7

Paso 3: Instalar Composer y Laravel PHP Framework

11. A continuación, instale el paquete Composer ejecutando los siguientes comandos. El primer comando descarga el instalador y luego lo ejecuta usando PHP.

curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
chmod +x /usr/local/bin/composer

12. Ahora que Composer está instalado, utilícelo para instalar archivos y dependencias de Laravel de la siguiente manera. Reemplace mysite.com con el nombre del directorio donde se almacenarán los archivos Laravel, la ruta absoluta (o ruta raíz en el archivo de configuración de Nginx) será /var/www/html/mysite .com.

cd /var/www/html/
composer create-project --prefer-dist laravel/laravel mysite.com

Si todo va bien durante el proceso, la aplicación debería instalarse correctamente y se debería generar una clave como se muestra en la siguiente captura de pantalla.

13. Durante el proceso de instalación, se creó el archivo de entorno .env y también se generó la aplicación requerida, por lo que no es necesario crearlos manualmente como antes. Para confirmar esto, ejecute una lista larga del directorio raíz de laravel usando el comando ls.

ls -la mysite.com/

14. A continuación, debe configurar la propiedad y los permisos correctos en los directorios almacenamiento y bootstrap/cache para que la web Nginx pueda escribirlos. servidor.

chown -R :nginx /var/www/html/mysite.com/storage/
chown -R :nginx /var/www/html/mysite.com/bootstrap/cache/
chmod -R 0777 /var/www/html/mysite.com/storage/
chmod -R 0775 /var/www/html/mysite.com/bootstrap/cache/

15. Si SELinux está habilitado en su servidor, también debe actualizar el contexto de seguridad del almacenamiento y bootstrap/cache . directorios.

semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/mysite.com/storage(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/mysite.com/bootstrap/cache(/.*)?'
restorecon -Rv '/var/www/html/mysite.com'

Paso 4: Configurar el bloque del servidor Nginx para Laravel

16. Para que Nginx comience a servir su sitio web o aplicación, debe crear un bloque de servidor en un archivo .conf en /etc/nginx/conf.d/ directorio como se muestra.

vi /etc/nginx/conf.d/mysite.com.conf

Copie y pegue la siguiente configuración en el archivo. Tome nota de los parámetros raíz y fastcgi_pass.

server {
	listen      80;
       server_name mysite.com;
       root        /var/www/html/mysite.com/public;
       index       index.php;

       charset utf-8;
       gzip on;
	gzip_types text/css application/javascript text/javascript application/x-javascript  image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon;
        location / {
        	try_files $uri $uri/ /index.php?$query_string;
        }

        location ~ \.php {
                include fastcgi.conf;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass unix:/run/php-fpm/www.sock;
        }
        location ~ /\.ht {
                deny all;
        }
}

17. Guarde el archivo y verifique si la sintaxis de configuración de Nginx es correcta ejecutando.

nginx -t

18. Luego reinicie los servicios PHP-FPM y Nginx para que los cambios recientes entren en vigor.

systemctl restart php-fpm
systemctl restart Nginx

Paso 5: acceder al sitio web de Laravel desde un navegador web

19. Para acceder al sitio web de Laravel en mysite.com, que no es un nombre de dominio completo (FQDN) y no está registrado (solo se usa con fines de prueba) , usaremos el archivo /etc/hosts en su máquina local para crear DNS local.

Ejecute el siguiente comando para agregar la dirección IP y el dominio del servidor en el archivo requerido (reemplace el valor según su configuración).

ip add		#get remote server IP
echo "10.42.0.21  mysite.com" | sudo tee -a /etc/hosts

20. A continuación, abra un navegador web en la máquina local y utilice la siguiente dirección para navegar.

http://mysite.com

Ha implementado con éxito Laravel en CentOS 8. Ahora puede comenzar a desarrollar su sitio web o aplicación web utilizando Laravel. Para obtener más información, consulte la guía de introducción a Laravel.