GNU/Linux >> Tutoriales Linux >  >> Cent OS

Cómo instalar Laravel 5.x con Nginx y PHP-FPM 7.1 en CentOS 7

Laravel es un framework PHP de código abierto que sigue el patrón de diseño MVC (Model-View-Controller). Fue creado por Taylor Otwell en 2011 como un intento de proporcionar una alternativa avanzada al marco CodeIgniter (CI). En 2011, el proyecto Laravel lanzó la versión 1 y 2, este año se lanzó la versión 5.4 con muchas mejoras, como la compatibilidad con la línea de comandos (CLI) llamada 'artisan', compatibilidad integrada para más tipos de bases de datos y enrutamiento mejorado.

En este tutorial, le mostraré cómo instalar Laravel Web Framework con el servidor web Nginx, PHP-FPM 7.1 y MariaDB en un sistema CentOS 7. Te mostraré paso a paso cómo instalar y configurar Laravel bajo la pila LEMP en el servidor CentOS 7.

Este tutorial también está disponible para Laravel en Ubuntu.

Requisito previo:

  • Servidor CentOS 7.
  • Privilegios de raíz.

Paso 1:instalar el repositorio de EPEL

EPEL o Extra Package for Enterprise Linux es un repositorio de paquetes adicional que proporciona paquetes de software útiles que no están incluidos en el repositorio oficial de CentOS. Se puede instalar en distribuciones de Linux basadas en RPM como CentOS y Fedora.

En este tutorial, necesitamos el repositorio EPEL para la instalación de Nginx, ya que los paquetes de Nginx no existen en el repositorio oficial de CentOS. Instale el repositorio EPEL con el siguiente comando yum.

yum -y install epel-release

Se ha instalado el repositorio EPEL.

Paso 2:instalar Nginx

En este tutorial, ejecutaremos un Laravel bajo LEMP Stack. Nginx es la parte del servidor web de la pila LEMP y se puede instalar desde el repositorio EPEL.

Instale Nginx 1.10 desde el repositorio de EPEL con yum.

yum -y install nginx

Cuando se complete la instalación, inicie Nginx y agréguelo para que comience en el momento del arranque.

systemctl start nginx
systemctl enable nginx

Nginx se está ejecutando en el puerto 80, verifíquelo con el comando netstat a continuación.

netstat -plntu

En caso de que obtenga como resultado "Comando no encontrado", instale el paquete de herramientas de red como se muestra a continuación.

yum -y install net-tools

Paso 3:instalar y configurar PHP-FPM 7.1

Laravel se puede instalar en un servidor con una versión de PHP>=5.6.4. En este tutorial, utilizaremos la última versión de PHP 7.1 compatible con Laravel.

PHP 7.1 no existe en el repositorio base de CentOS, necesitamos instalarlo desde un repositorio de terceros llamado 'webtatic'.

Instale el repositorio webtatic con este comando rpm.

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

Ahora podemos instalar PHP-FPM con todas las extensiones que necesita Laravel con un solo comando yum.

yum install -y php71w php71w-curl php71w-common php71w-cli php71w-mysql php71w-mbstring php71w-fpm php71w-xml php71w-pdo php71w-zip

Se ha instalado PHP 7.1 en nuestro sistema CentOS 7.

A continuación, configure PHP editando el archivo de configuración php.ini con vim.

vim /etc/php.ini

Descomente la línea de abajo y cambie el valor a 0.

cgi.fix_pathinfo=0

Guarde el archivo y salga del editor.

Ahora edite el archivo PHP-FPM www.conf.

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

PHP-FPM se ejecutará bajo el usuario y grupo 'nginx ', cambie el valor de las dos líneas siguientes a 'nginx '.

user = nginx
group = nginx

En lugar de usar el puerto del servidor, PHP-FPM se ejecutará en un archivo de socket. Cambie el valor 'escuchar' a la ruta '/run/php-fpm/php-fpm.sock ' como se muestra a continuación.

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

El propietario del archivo de socket será el usuario 'nginx' y el modo de permiso es 660. Descomente y cambie todos los valores de esta manera:

listen.owner = nginx
listen.group = nginx
listen.mode  = 0660

Para las variables de entorno, elimine el comentario de estas líneas y establezca los valores como se muestra a continuación.

env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp

Guarde el archivo y salga de vim, luego inicie PHP-FPM y permita que se ejecute en el momento del arranque.

systemctl start php-fpm
systemctl enable php-fpm

PHP-FPM se está ejecutando bajo el archivo de socket, verifíquelo con el siguiente comando.

netstat -pl | grep php-fpm.sock

Se completó la instalación y configuración de PHP y PHP-FPM 7.1.

Paso 4:instalar el servidor MariaDB

Puede usar MySQL o PostgreSQL para su proyecto Laravel. Usaré el servidor de base de datos MariaDB para este tutorial. Está disponible en el repositorio de CentOS. Instale el servidor MariaDB con el siguiente comando yum.

yum -y install mariadb mariadb-server

Cuando se complete la instalación, inicie 'mariadb' y habilítelo para que se inicie en el momento del arranque.

systemctl start mariadb
systemctl enable mariadb

MariaDB se ha iniciado y se está ejecutando en el puerto 3306, verifíquelo con el comando netstat.

netstat -plntu

A continuación, configure la contraseña raíz para MariaDB con 'mylsq_secure_installation ' comando a continuación.

mysql_secure_installation

Escriba su contraseña raíz de mariadb, elimine el usuario anónimo, etc.

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

La instalación y configuración de MariaDB se ha completado.

Paso 5 - Instalar PHP Composer

PHP composer es un administrador de paquetes para el lenguaje de programación PHP. Fue creado en 2011 y está inspirado en el instalador 'npm' de Node.js y 'bundler' de Ruby. Instale Composer con el comando curl.

curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/bin --filename=composer

Cuando se complete la instalación, intente usar el 'compositor ' comando y verá los resultados a continuación.

composer

PHP Composer instalado en CentOS 7.

Paso 6:configurar el host virtual de Nginx para Laravel

En este paso, crearemos la configuración de host virtual nginx para el proyecto Laravel. Necesitamos definir el directorio raíz web para esta instalación de Laravel, usaré el '/var/www/laravel ' directorio como directorio raíz web.

Créalo con el siguiente comando mkdir:

mkdir -p /var/www/laravel

A continuación, vaya al directorio nginx y cree un nuevo archivo de configuración de host virtual laravel.conf en el directorio conf.d.

cd /etc/nginx
vim conf.d/laravel.conf

Pegue la siguiente configuración en el archivo:

server {
        listen 80;
        listen [::]:80 ipv6only=on;

    # Log files for Debugging
        access_log /var/log/nginx/laravel-access.log;
        error_log /var/log/nginx/laravel-error.log;

    # Webroot Directory for Laravel project
        root /var/www/laravel/public;
        index index.php index.html index.htm;

        # Your Domain Name
        server_name laravel.hakase-labs.co;

        location / {
                try_files $uri $uri/ /index.php?$query_string;
        }

    # PHP-FPM Configuration Nginx
        location ~ \.php$ {
                try_files $uri =404;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
        }
}

Guarde el archivo y salga de vim.

Pruebe la configuración nginx y asegúrese de que no haya ningún error, luego reinicie el servicio nginx.

nginx -t
systemctl restart nginx

La configuración del host virtual nginx para Laravel se ha completado.

Paso 7 - Instalar Laravel

Antes de instalar Laravel, necesitamos instalar unzip en el servidor.

yum -y install unzip

Ahora ve al directorio raíz web de laravel '/var/www/laravel'.

cd /var/www/laravel

Laravel proporciona dos formas para la instalación del marco en el servidor. Podemos instalar Laravel con el instalador de laravel, y podemos instalarlo con PHP composer. En este tutorial, instalaré Laravel creando un nuevo proyecto con el comando composer.

Ejecute el siguiente comando para instalar Laravel.

composer create-project laravel/laravel .

Espera a que termine la instalación de Laravel. Esto puede llevar algún tiempo.

Cuando se complete la instalación, cambie el propietario del directorio raíz web de Laravel al usuario 'nginx' y cambie el permiso del directorio de almacenamiento a 755 con los siguientes comandos.

chown -R nginx:root /var/www/laravel
chmod 755 /var/www/laravel/storage

La instalación de Laravel ha sido completada.

Paso 8:configurar SELinux

En este tutorial, Laravel se ejecutará en el modo 'Aplicación' de SELinux. Para comprobar el estado de SELinux, ejecute el siguiente comando.

sestatus

El resultado es que SELinux se está ejecutando en 'Enforcing modo '.

A continuación, debemos instalar las herramientas de administración de SELinux para CentOS 7.

Instale 'policycoreutils-python' en el servidor.

yum -y install policycoreutils-python

Ahora necesitamos cambiar el contexto de los directorios de Laravel y luego aplicar los cambios con el comando restorecon. Ejecute los comandos de administración de SELinux como se muestra a continuación.

semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/public(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/storage(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/app(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/bootstrap(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/config(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/database(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/resources(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/routes(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/vendor(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/tests(/.*)?'
restorecon -Rv '/var/www/laravel/'

La configuración de SELinux para Laravel está lista.

Paso 9 - Prueba de Laravel

Abra su navegador web y escriba la URL de Laravel de su servidor. Hemos definido el nombre de dominio para Laravel en el archivo de host virtual de Nginx. El mío es laravel.hakase-labs.co .

Cuando visite el nombre de dominio, verá la página de inicio de Laravel.

La instalación de Laravel con Nginx, PHP-FPM7 y MariaDB en CentOS 7 ha sido exitosa.


Cent OS
  1. Cómo instalar y configurar Nginx en CentOS 7

  2. Cómo instalar phpMyAdmin con Nginx en CentOS 7

  3. Cómo instalar Nextcloud con Nginx y PHP 7.3 en CentOS 8

  4. Instale Magento en CentOS 7, con Nginx, PHP-FPM y MariaDB

  5. Cómo instalar Let's Encrypt en CentOS 8 con Nginx

Cómo instalar Nginx con ngx_pagespeed en CentOS

Cómo instalar OwnCloud 8 con Nginx y PHP-FPM en CentOS 6

Cómo instalar Nginx con PHP-FastCGI en CentOS 6

Cómo instalar Magento con Nginx en CentOS 7

Cómo instalar Laravel con Nginx en CentOS 8

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