Поиск по сайту:
Трудное детство… Килобайтные игрушки. (Неизвестный автор)

Как автоматически развертывать приложения Laravel с помощью Deployer на Ubuntu 16.04

20.06.2018
Как автоматически развертывать приложения Laravel с помощью Deployer на Ubuntu 16.04

Laravel — популярная открытая PHP-платформа для веб-приложений. Она имеет выразительный, элегантный синтаксис и предоставляет инструменты, необходимые для больших, надежных приложений. Deployer — это модульный инструмент для развертывания PHP с открытым исходным кодом, оснащенный функциями экономии времени и оптимизации. Он поддерживает развертывание многих популярных фреймворков, включая Laravel, Symfony, Zend Framework и CodeIgniter. В этой статье мы покажем вам, как развернуть приложение Laravel с помощью Deployer на Ubuntu 16.04.

Требования

  • Сервер Ubuntu 16.04 с доступом root или sudo.
  • Git сервер. Вы можете использовать свой собственный сервер GIT или любые популярные сервисы Git, такие как Gitlab, Github или Bitbucket.

Настройка локальной среды разработки

Вы разворачиваете приложение Laravel с локального компьютера, поэтому сначала вам нужно настроить локальную среду разработки и установить Deployer.

Сначала, если у вас уже нет композитора, установленного на вашем локальном компьютере, установите его с помощью:

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

 

Затем создайте новый проект Laravel на вашем локальном компьютере:

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

 

Чтобы установить Deployer на локальный компьютер, выполните следующие команды в консоли:

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

 

Наконец, подключитесь к серверу git, добавьте свой локальный ПК ssh на сервер git.

Если у вас нет ключей SSH, вы можете проверить нашу статью о том, как настроить SSH-ключи на Ubuntu 16.04

Установка и настройка PHP

Теперь, когда ваша локальная машина разработки готова, прежде чем мы начнем развертывание, нам нужно настроить сервер, установив все необходимые службы.

Чтобы установить последнюю стабильную версию PHP версии 7 и все необходимые модули, запустите:

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

 

Нам также необходимо установить композитор:

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

Установите и настройте Nginx

Установите последнюю стабильную версию Nginx из официальных репозиториев Ubuntu:

sudo apt install nginx

 

Затем создайте новый серверный блок 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;
    }

}

 

Активируйте серверный блок, создав символическую ссылку:

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

 

Проверьте конфигурацию Nginx и перезапустите nginx:

sudo nginx -t
sudo service nginx restart

Создание базы данных MySQL

Если у вас нет MySQL, вы можете посетить наш учебник о том, как установить MySQL на Ubuntu 16.04

Чтобы создать базу данных для приложения laravel, выполните следующие команды:

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

Создание пользователя Deployer

Основная цель этого пользователя — развернуть наше приложение Laravel, выполнив команды на нашем сервере.

Чтобы создать пользователя, выполните следующую команду:

sudo adduser deployer

 

Оба Nginx и PHP FPM работают как пользователь www-data. Файлы и каталоги, созданные пользователем deployer, должны быть доступны для записи пользователем www-user.

Выполните следующую команду, чтобы добавить пользователя развертывателя в группу www-data:

sudo usermod -aG www-data deployer

 

Измените корневую правку документа, запустив:

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

 

и установите идентификатор группы пользователей

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

 

С помощью приведенной выше команды все новые файлы и подкаталоги, созданные в файле `/var/www/html/my-laravel-app.com`, наследуют идентификатор группы каталогов.

Добавьте свой публичный SSH-ключ местного пользователя в файл /home/deployer/.ssh/authorized_keys, чтобы вы могли войти в удаленный сервер с локального компьютера без пароля в качестве пользовательского развертывателя и выполнить команды развертывания.

Наконец, вам нужно добавить SSH-ключ пользователя развертывателя на ваш сервер git, как и у вашего локального пользователя.

Использование Deployer

Откройте локальный компьютерный терминал и перейдите в каталог проекта laravel.

cd ~/my-laravel-app

 

Выполните следующую команду, чтобы создать файл рецепта с именем deploy.php.

dep init -t Laravel

 

Откройте файл и настройте и установите правильные учетные данные репозитория и настройте параметр хоста следующим образом:

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

 

Внутри каталога проекта вы можете запустить команду `dep` для развертывания вашего приложения.

Дополнительные сведения о настройке и использовании Deployer см. на странице документации по адресу https://deployer.org/docs.

 

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...
Поделиться в соц. сетях:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Читайте также

Спасибо!

Теперь редакторы в курсе.