Laravel je populární, open-source PHP webový aplikační framework. Má výraznou, elegantní syntaxi a poskytuje nástroje potřebné pro velké, robustní aplikace. Deployer je modulární open-source nástroj pro nasazení PHP nabitý funkcemi a optimalizacemi, které šetří čas. Podporuje nasazení mnoha populárních frameworků, včetně Laravel, Symfony, Zend Framework a CodeIgniter. V tomto tutoriálu vám ukážeme, jak nasadit aplikaci Laravel pomocí Deployer na Ubuntu 16.04.
Požadavky
- Server Ubuntu 16.04 s přístupem root nebo sudo.
- Server Git. Můžete použít svůj vlastní hostovaný git server nebo jakoukoli populární službu Git, jako je Gitlab, Github nebo Bitbucket.
Nastavení prostředí místního rozvoje
Aplikaci Laravel nasadíte z místního počítače, takže nejprve musíte nastavit místní vývojové prostředí a nainstalovat Deployer.
Nejprve, pokud ještě nemáte na svém místním počítači nainstalovaný skladatel, nainstalujte jej pomocí:
curl -sS https://getcomposer.org/installer | php sudo mv composer.phar /usr/local/bin/composer chmod +x /usr/local/bin/composer
Dále vytvořte nový projekt Laravel na místním počítači:
composer create-project --prefer-dist laravel/laravel my-laravel-app
Chcete-li nainstalovat Deployer na místní počítač, spusťte v konzole následující příkazy:
curl -LO https://deployer.org/deployer.phar mv deployer.phar /usr/local/bin/dep chmod +x /usr/local/bin/dep
Nakonec se připojte k serveru git přidáním ssh klíče místního počítače na server git.
Pokud nemáte klíče SSH, můžete se podívat na náš článek o tom, jak nastavit klíče SSH na Ubuntu 16.04
Pokud používáte hostovanou službu Git, můžete se podívat na jejich dokumentaci o tom, jak přidat klíč SSH do vašeho účtu.
- Přidat klíče SSH do účtu GitHub
- Přidat klíče SSH do účtu GitLab
- Přidat klíče SSH do účtu Bitbucket
Nainstalujte a nakonfigurujte PHP
Nyní, když je váš místní vývojový stroj připraven, než začneme nasazovat, musíme nakonfigurovat server instalací všech nezbytných služeb.
Chcete-li nainstalovat nejnovější stabilní verzi PHP verze 7 a všechny potřebné moduly, spusťte:
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
Potřebujeme také nainstalovat skladatel:
curl -sS https://getcomposer.org/installer | php sudo mv composer.phar /usr/local/bin/composer chmod +x /usr/local/bin/composer
Nainstalujte a nakonfigurujte Nginx
Nainstalujte nejnovější stabilní verzi Nginx z oficiálních repozitářů Ubuntu:
sudo apt install nginx
Dále vytvořte nový blok serveru 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; } }
Aktivujte blok serveru vytvořením symbolického odkazu:
sudo ln -s /etc/nginx/sites-available/my-laravel-app.com /etc/nginx/sites-enabled/my-laravel-app.com
Otestujte konfiguraci Nginx a restartujte nginx:
sudo nginx -t sudo service nginx restart
Vytvoření databáze MySQL
Pokud nemáte nainstalované MySQL, můžete navštívit náš tutoriál o tom, jak nainstalovat MySQL na Ubuntu 16.04
Chcete-li vytvořit databázi pro aplikaci laravel, spusťte následující příkazy:
mysql -u root -p
CREATE DATABASE laravel; GRANT ALL PRIVILEGES ON laravel.* TO 'laraveluser'@'localhost' IDENTIFIED BY 'your-password'; FLUSH PRIVILEGES; \q
Vytvořit uživatele Deployer
Hlavním účelem tohoto uživatele je nasadit naši aplikaci Laravel prováděním příkazů na našem serveru.
Chcete-li vytvořit uživatele, spusťte následující příkaz:
sudo adduser deployer
Nginx i PHP FPM běží jako uživatel www-data. Soubory a adresáře vytvořené uživatelem nasazení musí být pro uživatele www.
zapisovatelnéSpuštěním následujícího příkazu přidejte uživatele nasazení do skupiny www-data:
sudo usermod -aG www-data deployer
Změňte vlastnictví kořenového adresáře dokumentu spuštěním:
sudo chown deployer:www-data /var/www/html/my-laravel-app.com
a nastavte ID uživatelské skupiny
sudo chmod g+s /var/www/html/my-laravel-app.com
Pomocí výše uvedeného příkazu všechny nové soubory a podadresáře vytvořené v rámci `/var/www/html/my-laravel-app.com` zdědí ID skupiny adresářů.
Přidejte svůj veřejný SSH klíč místního uživatele do souboru /home/deployer/.ssh/authorized_keys, abyste se mohli přihlásit ke vzdálenému serveru z místního počítače bez hesla jako uživatel pro nasazení a spouštět příkazy nasazení.
Nakonec musíte přidat klíč SSH uživatele nasazení na váš git server, stejně jako jste to udělali s uživatelem místního počítače.
Používání nástroje Deployer
Otevřete terminál místního počítače a přepněte se do adresáře projektu laravel.
cd ~/my-laravel-app
Spusťte následující příkaz a vytvořte soubor receptu s názvem deploy.php
.
dep init -t Laravel
Otevřete soubor a nakonfigurujte a nastavte správná pověření úložiště a nakonfigurujte parametr hostitele takto:
host('your_remove_server_ip') ->user('deployer') ->set('deploy_path', '/var/www/html/my-laravel-app.com');
Z vnitřního adresáře projektu můžete nyní spustit příkaz `dep` k nasazení vaší aplikace.
Další informace o tom, jak nakonfigurovat a používat Deployer, naleznete na stránce dokumentace.
Samozřejmě nemusíte konfigurovat vzdálený server, pokud používáte jeden z našich bleskově rychlých serverů Ubuntu, v takovém případě můžete jednoduše požádat naše zkušené administrátory Linuxu, aby vytvořili uživatele pro nasazení a nainstalovali a nakonfigurovali všechny potřebné služby za vás. . Jsou k dispozici 24×7 a okamžitě se postarají o váš požadavek.
PS. Pokud se vám líbil tento příspěvek o tom, jak automaticky nasadit aplikace Laravel pomocí Deployer na Ubuntu 16.04, sdílejte jej se svými přáteli na sociálních sítích pomocí tlačítek vlevo nebo jednoduše zanechte odpověď níže. Děkuji.