Table of Contents
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-end para almacenamiento de caché y sesiones, ORM (mapeo relacional de objetos) de base de datos expresivo e intuitivo, procesamiento de trabajos en segundo plano sólido y transmisión de eventos en tiempo real.
Además, utiliza herramientas como Composer. un administrador de paquetes PHP para administrar dependencias y Artisan. un comando-interfaz de línea para construir y administrar aplicaciones web.
En este artículo, aprenderá cómo instalar la última versión del marco web Laravel PHP. en CentOS 8. distribución de Linux.
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
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 mariad b # systemctl enable php-fpm nginx mariadb # systemctl status php-fpm nginx mariadb
3.. A continuación, debe proteger y fortalecer 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.
Ingrese la contraseña actual para root (ingrese para ninguna): Ingrese ¿Establecer contraseña de root? [S/n] y #set new root password ¿Eliminar usuarios anónimos? [S/n] y ¿Deshabilitar el inicio de sesión de root de forma remota? [S/n] y ¿Eliminar la base de datos de prueba y acceder a ella? [S/n] y ¿Volver a cargar las tablas de privilegios ahora? [Y/n] y
4.. Si tiene el servicio firewalld. en ejecución, debe abrir HTTP. y Servicio 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 usando un navegador en la dirección IP de su sistema.
http://servidor-IP
Verificar la página web de Nginx
Paso 2: Configurar y asegurar PHP-FPM y Nginx
6.. Para procesar solicitudes del servidor web Nginx. PHP-FPM. puede escuchar en un socket Unix o un socket 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
Por defecto, 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.
Establecer el socket de escucha de PHP-FPM
7.. Si usa un socket Unix, también debe establecer la propiedad y los permisos correctos en él, 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 con el que se ejecuta Nginx.
listen.owner = nginx listen.group = nginx listen.mode = 066
Establecer la propiedad del socket de escucha en Nginx
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 el línea “; date.timezone” y descomentarlo, luego establezca su valor como se muestra en t La captura de pantalla (use valores que se apliquen a su región/continente y país).
date.timezone = Africa/Kampala
Establecer zona horaria en PHP
9.. Para mitigar el riesgo de que Nginx. pase solicitudes de usuarios malintencionados que utilizan otras extensiones para ejecutar código PHP en PHP-FPM, descomente el siguiente parámetro y establezca su valor en 0.
cgi.fix_pathinfo = 1
Secure PHP y Nginx
10.. En relación con el 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
Limitar las ejecuciones de extensiones PHP
Paso 3: Instalar Composer y Laravel PHP Framework
11.. Luego, instale Composer. paquete 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
Instalar Composer en CentOS 8
12.. Ahora que Composer. está instalado, utilícelo para instalar los archivos y dependencias de Laravel de la siguiente manera. Reemplaza mysite.com. con el nombre del directorio donde se almacenarán los archivos de 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
Instalar Laravel en CentOS 8
Si todo va bien durante el proceso, la aplicación debe instalarse correctamente y debe generarse una clave como se muestra en la siguiente captura de pantalla.
Instalación de Laravel completa
13.. Durante 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/
Lista de archivos de Laravel
14.. A continuación, debe configurar la propiedad y los permisos correctos en el almacenamiento. y el bootstrap/cache. directorios para que el servidor web Nginx pueda escribir.
# 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 de los directorios almacenamiento. y bootstrap/cache.
# 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 Nginx. para comenzar a servir su sitio web o aplicación, debe crear un bloque de servidor en un archivo .conf en el directorio /etc/nginx/conf.d/ 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; nombre_servidor misitio.com; root/var/www/html/mysite.com/public; index index.php; juego de caracteres utf-8; gzip encendido; 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; ubicación/try_files $ uri $ uri//index.php?$query_string; ubicación ~ \ .php incluir fastcgi.conf; fastcgi_split_path_info ^ (. + \. php) (/.+) $; fastcgi_pass unix:/run/php-fpm/www.sock; ubicación ~/\.ht denegar todo;
17.. Guarde el archivo y verifique si la sintaxis de configuración de Nginx. es correcta ejecutando.
# nginx-t
Verifique la configuración de Nginx
18.. Luego reinicie PHP-FPM. y Nginx. para que los cambios recientes surtan efecto.
# systemctl restart php-fpm # systemctl restart Nginx
Paso 5: Accediendo 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 completamente calificado (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 del servidor y el dominio en el archivo requerido (reemplace el valor de acuerdo con su configuración).
# ip add #get Remote Server IP $ echo “10.42.0.21 misitio.com” | sudo tee-a/etc/hosts
Agregar entradas DNS en Lo cal Archivo
20.. A continuación, abra un navegador web en la máquina local y use la siguiente dirección para navegar.