GNU/Linux >> Tutoriales Linux >  >> Panels >> Panels

Cómo implementar automáticamente aplicaciones Laravel con Deployer en Ubuntu 16.04

Laravel es un popular marco de aplicación web PHP de código abierto. Tiene una sintaxis expresiva y elegante y proporciona las herramientas necesarias para aplicaciones grandes y robustas. Deployer es una herramienta de implementación de PHP modular de código abierto repleta de funciones y optimizaciones que ahorran tiempo. Admite la implementación de muchos marcos populares, incluidos Laravel, Symfony, Zend Framework y CodeIgniter. En este tutorial, le mostraremos cómo implementar una aplicación Laravel con Deployer en Ubuntu 16.04.

Requisitos

  • Servidor Ubuntu 16.04 con acceso root o sudo.
  • Servidor Git. Puede usar su propio servidor Git alojado o cualquier servicio Git popular como Gitlab, Github o Bitbucket.

Configuración del Entorno de Desarrollo Local

Implementará su aplicación Laravel desde su computadora local, por lo que primero debe configurar el entorno de desarrollo local e instalar Deployer.

Primero, si aún no tiene Composer instalado en su computadora local, instálelo con:

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

Luego, crea un nuevo proyecto de Laravel en tu computadora local:

composer create-project --prefer-dist laravel/laravel my-laravel-app

Para instalar Deployer en su computadora local, ejecute los siguientes comandos en la consola:

curl -LO https://deployer.org/deployer.phar
mv deployer.phar /usr/local/bin/dep
chmod +x /usr/local/bin/dep  

Finalmente, conéctese al servidor git agregando la clave ssh de su PC local al servidor git.

Si no tiene claves SSH, puede consultar nuestro artículo sobre cómo configurar claves SSH en Ubuntu 16.04

Si está utilizando el servicio alojado de Git, puede consultar su documentación sobre cómo agregar una clave SSH a su cuenta.

  • Añadir claves SSH a la cuenta de GitHub
  • Añadir claves SSH a la cuenta de GitLab
  • Añadir claves SSH a la cuenta de Bitbucket

Instalar y configurar PHP

Ahora que su máquina de desarrollo local está lista antes de que podamos comenzar a implementar, debemos configurar el servidor instalando todos los servicios necesarios.

Para instalar la última versión estable de PHP versión 7 y todos los módulos necesarios, ejecute:

sudo apt update
sudo apt install php7.0-fpm php7.0-cli php7.0-gd php7.0-mysql php7.0-mcrypt php-pear php7.0-curl

También necesitamos instalar composer:

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

Instalar y configurar Nginx

Instale la última versión estable de Nginx desde los repositorios oficiales de Ubuntu:

sudo apt install nginx

A continuación, cree un nuevo bloque de servidor Nginx:

sudo nano /etc/nginx/sites-available/my-laravel-app.com
server {  
    listen 80;
    server_name my-laravel-app.com;
    root /var/www/html/my-laravel-app.com/current/public;

    index index.html index.htm index.php;

    charset utf-8;

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

    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }

    error_page 404 /index.php;

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        fastcgi_param DOCUMENT_ROOT $realpath_root;
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    }

}

Active el bloqueo del servidor creando un enlace simbólico:

sudo ln -s /etc/nginx/sites-available/my-laravel-app.com /etc/nginx/sites-enabled/my-laravel-app.com

Pruebe la configuración de Nginx y reinicie nginx:

sudo nginx -t
sudo service nginx restart

Crear base de datos MySQL

Si no tiene instalado MySQL, puede visitar nuestro tutorial sobre cómo instalar MySQL en Ubuntu 16.04

Para crear una base de datos para la aplicación laravel, ejecute los siguientes comandos:

mysql -u root -p
CREATE DATABASE laravel;
GRANT ALL PRIVILEGES ON laravel.* TO 'laraveluser'@'localhost' IDENTIFIED BY 'your-password';
FLUSH PRIVILEGES;
\q

Crear un usuario implementador

El objetivo principal de este usuario es implementar nuestra aplicación Laravel ejecutando comandos en nuestro servidor.

Para crear el usuario ejecute el siguiente comando:

sudo adduser deployer

Tanto Nginx como PHP FPM se ejecutan como usuario www-data. El usuario www debe poder escribir en los archivos y directorios creados por el usuario implementador.

Ejecute el siguiente comando para agregar el usuario implementador al grupo www-data:

sudo usermod -aG www-data deployer

Cambie la propiedad raíz del documento ejecutando:

sudo chown deployer:www-data /var/www/html/my-laravel-app.com

y establecer ID de grupo de usuarios

sudo chmod g+s /var/www/html/my-laravel-app.com

Con el comando anterior, todos los archivos y subdirectorios nuevos creados dentro de `/var/www/html/my-laravel-app.com` heredarán el ID de grupo del directorio.

Agregue su clave SSH pública de usuario local al archivo /home/deployer/.ssh/authorized_keys para que pueda iniciar sesión en el servidor remoto desde su computadora local sin una contraseña como implementador de usuario y ejecutar los comandos de implementación.

Finalmente, debe agregar la clave SSH del usuario implementador a su servidor git, al igual que hizo con el usuario de su computadora local.

Uso del implementador

Abra la terminal de su computadora local y cambie al directorio del proyecto laravel.

cd ~/my-laravel-app

Ejecute el siguiente comando para crear un archivo de receta llamado deploy.php .

dep init -t Laravel

Abra el archivo y configure y establezca las credenciales de repositorio correctas y configure el parámetro de host de la siguiente manera:

host('your_remove_server_ip')
    ->user('deployer')
    ->set('deploy_path', '/var/www/html/my-laravel-app.com');

Desde el directorio interno del proyecto, ahora puede ejecutar el comando `dep` para implementar su aplicación.

Para obtener más información sobre cómo configurar y usar Deployer, visite su página de documentación.

Por supuesto, no tiene que configurar su servidor remoto si usa uno de nuestros servidores Ubuntu Blazing-Fast, en cuyo caso simplemente puede pedirle a nuestros administradores expertos de Linux que creen el usuario implementador e instalen y configuren todos los servicios necesarios para usted. . Están disponibles las 24 horas del día, los 7 días de la semana y atenderán su solicitud de inmediato.

PD. Si le gustó esta publicación, sobre cómo implementar automáticamente aplicaciones Laravel con Deployer en Ubuntu 16.04, compártala con sus amigos en las redes sociales usando los botones a la izquierda o simplemente deje una respuesta a continuación. Gracias.


Panels
  1. ¿Cómo reemplazamos Iptables con Firewalld en Ubuntu 16.04?

  2. Cómo implementar automáticamente aplicaciones Laravel con Deployer en Ubuntu 16.04

  3. Cómo instalar Joomla con Nginx en Ubuntu 18.04

  4. Cómo instalar Let's Encrypt en Ubuntu 20.04 con Apache

  5. Cómo habilitar el protocolo HTTPS con Apache 2 en Ubuntu 20.04

Cómo instalar WordPress 5.x con Nginx en Ubuntu 18.04 / Ubuntu 16.04

Cómo instalar ElastAlert con Elasticsearch en Ubuntu

Cómo instalar NextCloud en Ubuntu 20.04 con Apache

Cómo instalar WordPress con Nginx en Ubuntu

Cómo instalar Lighttpd con PHP en Ubuntu 20.04

¿Cómo implementar la aplicación Laravel con Nginx en Ubuntu?