Laravelは、人気のあるオープンソースのPHPWebアプリケーションフレームワークです。表現力豊かでエレガントな構文を備えており、大規模で堅牢なアプリケーションに必要なツールを提供します。 Deployerは、時間節約機能と最適化が満載されたモジュラーオープンソースPHPデプロイメントツールです。 Laravel、Symfony、Zend Framework、CodeIgniterなどの多くの一般的なフレームワークのデプロイをサポートしています。このチュートリアルでは、Ubuntu16.04にDeployerを使用してLaravelアプリケーションをデプロイする方法を示します。
要件
- rootまたはsudoアクセスを備えたUbuntu16.04サーバー。
- Gitサーバー。独自のセルフホストgitサーバー、またはGitlab、Github、Bitbucketなどの一般的なGitサービスを使用できます。
ローカル開発環境のセットアップ
Laravelアプリケーションをローカルコンピューターからデプロイするので、最初にローカル開発環境をセットアップして、Deployerをインストールする必要があります。
まず、ローカルコンピュータにcomposerをまだインストールしていない場合は、次のコマンドを使用してインストールします。
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
最後に、ローカルPCのsshキーをgitサーバーに追加して、gitサーバーに接続します。
SSHキーをお持ちでない場合は、Ubuntu16.04でSSHキーを設定する方法に関する記事をご覧ください
Gitがホストするサービスを使用している場合は、SSHキーをアカウントに追加する方法に関するドキュメントを確認できます。
- SSHキーをGitHubアカウントに追加します
- SSHキーをGitLabアカウントに追加する
- SSHキーをBitbucketアカウントに追加する
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
また、composerをインストールする必要があります:
curl -sS https://getcomposer.org/installer | php sudo mv composer.phar /usr/local/bin/composer chmod +x /usr/local/bin/composer
Nginxをインストールして構成する
公式のUbuntuリポジトリから最新の安定したNginxバージョンをインストールします:
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がインストールされていない場合は、Ubuntu16.04にMySQLをインストールする方法に関するチュートリアルにアクセスできます
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とPHPFPMの両方がユーザーwww-dataとして実行されています。デプロイヤユーザーが作成したファイルとディレクトリは、www-userが書き込み可能である必要があります。
次のコマンドを実行して、デプロイヤーユーザーをwww-dataグループに追加します。
sudo usermod -aG www-data deployer
次のコマンドを実行して、ドキュメントのルート所有権を変更します。
sudo chown deployer:www-data /var/www/html/my-laravel-app.com
ユーザーグループIDを設定します
sudo chmod g+s /var/www/html/my-laravel-app.com
上記のコマンドを使用すると、 `/var/www/html/my-laravel-app.com`内に作成されたすべての新しいファイルとサブディレクトリは、ディレクトリグループIDを継承します。
ローカルユーザーの公開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を構成および使用する方法の詳細については、ドキュメントページにアクセスしてください。
もちろん、Blazing-Fast Ubuntuサーバーの1つを使用する場合は、リモートサーバーを構成する必要はありません。その場合は、専門のLinux管理者にデプロイヤーユーザーを作成し、必要なすべてのサービスをインストールして構成するように依頼するだけです。 。 24時間年中無休でご利用いただけます。リクエストはすぐに処理されます。
PS。この投稿が気に入った場合は、Ubuntu 16.04でDeployerを使用してLaravelアプリケーションを自動的にデプロイする方法について、左側のボタンを使用してソーシャルネットワーク上の友達と共有するか、下に返信を残してください。ありがとう。