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.