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.