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