Ubuntu16.04でDeployerを使用してLaravelアプリケーションを自動的にデプロイする方法

提供:Dev Guides
移動先:案内検索

序章

Laravel は、認証、ルーティング、キャッシングなどの一般的なWeb開発タスクを簡単にするために設計されたオープンソースのPHPWebフレームワークです。 Deployer は、Laravel、CodeIgniter、Symfony、Zend Frameworkなど、多くの一般的なフレームワークをすぐにサポートするオープンソースのPHPデプロイメントツールです。

Deployerは、アプリケーションをGitリポジトリからサーバーに複製し、 Composer を使用して依存関係をインストールし、手動で行う必要がないようにアプリケーションを構成することで、展開を自動化します。 これにより、アップロードや構成ではなく、開発により多くの時間を費やすことができ、より頻繁にデプロイできます。

このチュートリアルでは、ダウンタイムなしでLaravelアプリケーションを自動的にデプロイします。 これを行うには、コードをデプロイするローカル開発環境を準備してから、アプリケーションにサービスを提供するためにNginxとMySQLデータベースを使用して本番サーバーを構成します。

前提条件

このガイドを開始する前に、次のものが必要です。

  • Ubuntu 16.04 チュートリアルでの初期サーバー設定で説明されているように、sudo権限を持つ非rootユーザーを持つ1つのUbuntu16.04サーバー。
  • Ubuntu 16.04 チュートリアルでLinux、Nginx、MySQL、PHP(LEMPスタック)をインストールする方法の説明に従ってインストールされたLEMPスタック。
  • Ubuntu 16.04にComposerをインストールして使用する方法のステップ1と2に従って、サーバーにインストールされたPHP、Composer、およびGit。
  • サーバーにインストールされているphp-xmlおよびphp-mbstringパッケージ。 sudo apt-get install php7.0-mbstring php7.0-xmlを実行してこれらをインストールします。
  • Gitサーバー。 GitLabBitbucketGitHubなどのサービスを使用できます。 GitLabとBitbucketは無料でプライベートリポジトリを提供し、GitHubは月額$7からプライベートリポジトリを提供します。 または、チュートリアル VPSでプライベートGitサーバーをセットアップする方法に従って、プライベートGitサーバーをセットアップすることもできます。
  • サーバーを指すドメイン名。 DigitalOcean チュートリアルでホスト名を設定する方法は、これを構成するのに役立ちます。
  • ローカルマシンにもComposerとGitがインストールされています。 正確なインストール方法は、ローカルオペレーティングシステムによって異なります。 Gitのインストール手順は、 Gitプロジェクトのダウンロードページにあり、ComposerはComposerプロジェクトのWebサイトから直接ダウンロードできます。

ステップ1—ローカル開発環境のセットアップ

ローカルマシンからアプリケーションを作成してデプロイするので、ローカル開発環境を構成することから始めます。 Deployerは、ローカルマシンから展開プロセス全体を制御するため、最初にインストールします。

注:ローカルマシンでWindowsを使用している場合は、BASHエミュレーター(Git bashなど)を使用してすべてのローカルコマンドを実行する必要があります。


ローカルマシンで、ターミナルを開き、curlを使用してDeployerインストーラーをダウンロードします。

curl -LO https://deployer.org/deployer.phar

次に、短いPHPスクリプトを実行して、インストーラーがDeployer-ダウンロードページにある最新のインストーラーのSHA-1ハッシュと一致することを確認します。 強調表示された値を最新のハッシュに置き換えます。

php -r "if (hash_file('sha1', 'deployer.phar') === '35e8dcd50cf7186502f603676b972065cb68c129') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('deployer.phar'); } echo PHP_EOL;"
OutputInstaller verified

Deployerをシステム全体で利用できるようにします。 ローカルマシンでWindowsまたはmacOSを実行している場合は、次のコマンドを実行する前に/usr/local/bin/depディレクトリを作成する必要がある場合があることに注意してください。

sudo mv deployer.phar /usr/local/bin/dep

実行可能にする:

sudo chmod +x /usr/local/bin/dep

次に、ローカルマシンでLaravelプロジェクトを作成します。

composer create-project --prefer-dist laravel/laravel laravel-app "5.5.*"

必要なすべてのソフトウェアをローカルマシンにインストールしました。 これで、アプリケーションのGitリポジトリの作成に進みます。

ステップ2—リモートGitリポジトリに接続する

Deployerは、ユーザーがどこからでもコードをデプロイできるように設計されています。 この機能を有効にするには、ユーザーがインターネット上のリポジトリにコードをプッシュし、そこからDeployerがコードを本番サーバーにコピーする必要があります。 Laravelアプリケーションのソースコードを管理するために、オープンソースのバージョン管理システムであるGitを使用します。 SSHプロトコルを使用してGitサーバーに接続できます。これを安全に行うには、SSHキーを生成する必要があります。 これはパスワードベースの認証よりも安全であり、各展開の前にパスワードを入力しないようにします。

ローカルマシンで次のコマンドを実行して、SSHキーを生成します。 -fはキーファイルのファイル名を指定し、gitkeyを独自のファイル名に置き換えることができることに注意してください。 gitkeyおよびgitkey.pubという名前のSSHキーペア)を~/.ssh/フォルダーに生成します。

ssh-keygen -t rsa -b 4096 -f  ~/.ssh/gitkey

ローカルマシンにさらに多くのSSHキーがある可能性があるため、Gitサーバーに接続するときに使用するSSH秘密キーを認識するようにSSHクライアントを構成します。

ローカルマシンにSSH構成ファイルを作成します。

touch ~/.ssh/config

ファイルを開き、Gitサーバーへのショートカットを追加します。 これには、HostNameディレクティブ(Gitサーバーのホスト名を指す)とIdentityFileディレクティブ(作成したSSHキーのファイルパスを指す)が含まれている必要があります。

〜/ .ssh / config

Host mygitserver.com
    HostName mygitserver.com
    IdentityFile ~/.ssh/gitkey

ファイルを保存して閉じてから、そのアクセス許可を制限します。

chmod 600 ~/.ssh/config

これで、SSHクライアントはGitサーバーへの接続に使用する秘密鍵を認識します。

次のコマンドを使用して、公開鍵ファイルの内容を表示します。

cat ~/.ssh/gitkey.pub

出力をコピーして、公開鍵をGitサーバーに追加します。

Gitホスティングサービスを使用している場合は、アカウントにSSHキーを追加する方法についてドキュメントを参照してください。

これで、ローカルマシンを使用してGitサーバーに接続できるようになります。 次のコマンドを使用して接続をテストします。

ssh -T [email protected]

このコマンドでエラーが発生した場合は、Gitホスティングサービスのドキュメントを参照してSSHキーを正しく追加したことを確認し、接続を再試行してください。

アプリケーションをリモートGitリポジトリにプッシュしてデプロイする前に、まず本番サーバーを構成しましょう。

ステップ3—Deployerユーザーの構成

Deployerは、SSHプロトコルを使用して、サーバー上でコマンドを安全に実行します。 このため、運用サーバーの構成に向けた最初のステップは、DeployerがSSH経由でサーバーにログインしてコマンドを実行するために使用できるユーザーを作成することです。

sudo非rootユーザーでLEMPサーバーにログインし、次のコマンドを使用して「deployer」という名前の新しいユーザーを作成します。

sudo adduser deployer

Laravelは、キャッシュされたファイルとアップロードを保存するために書き込み可能なディレクトリを必要とするため、 deployer ユーザーによって作成されたディレクトリは、NginxWebサーバーによって書き込み可能である必要があります。 これを行うには、ユーザーをwww-dataグループに追加します。

sudo usermod -aG www-data deployer

deployer ユーザーによって作成されるファイルのデフォルトのアクセス許可は、ファイルの場合は644、ディレクトリの場合は755である必要があります。 このようにして、 deployer ユーザーはファイルの読み取りと書き込みを行うことができ、グループと他のユーザーはファイルを読み取ることができます。

これを行うには、deployerのデフォルトのumaskを022に設定します。

sudo chfn -o umask=022 deployer

アプリケーションを/var/www/html/ディレクトリに保存するので、ディレクトリの所有権をdeployerユーザーとwww-dataグループに変更します。

sudo chown deployer:www-data /var/www/html

deployer ユーザーは、/var/www/htmlディレクトリ内のファイルとフォルダーを変更できる必要があります。 その場合、/var/www/htmlディレクトリ内に作成されたすべての新しいファイルとサブディレクトリは、フォルダのグループID( www-data )を継承する必要があります。 これを実現するには、次のコマンドを使用して、このディレクトリにグループIDを設定します。

sudo chmod g+s /var/www/html

DeployerはSSHを使用してGitリポジトリを本番サーバーに複製するため、LEMPサーバーとGitサーバー間の接続が安全であることを確認する必要があります。 ローカルマシンで使用したのと同じアプローチを使用し、deployerユーザー用のSSHキーを生成します。

サーバー上のdeployerユーザーに切り替えます。

su - deployer

次に、deployerユーザーとしてSSHキーペアを生成します。 今回は、SSHキーのデフォルトのファイル名を受け入れることができます。

ssh-keygen -t rsa -b 4096

公開鍵を表示します。

cat ~/.ssh/id_rsa.pub

前の手順で行ったように、公開鍵をコピーしてGitサーバーに追加します。

ローカルマシンはSSHを使用してサーバーとも通信するため、ローカルマシンで deployer ユーザーのSSHキーを生成し、サーバーに公開キーを追加する必要があります。

ローカルマシンで、次のコマンドを実行します。 deployerkeyを任意のファイル名に自由に置き換えてください。

ssh-keygen -t rsa -b 4096 -f  ~/.ssh/deployerkey

公開鍵を含む次のコマンドの出力をコピーします。

cat ~/.ssh/deployerkey.pub

サーバーdeployerユーザーとして、次のコマンドを実行します。

nano ~/.ssh/authorized_keys

公開鍵をエディターに貼り付け、CTRL-XYENTERの順に押して保存して終了します。

ファイルの権限を制限します。

chmod 600 ~/.ssh/authorized_keys

次に、sudoユーザーに切り替えます。

exit

これで、サーバーはGitサーバーに接続でき、ローカルマシンからdeployerユーザーを使用してサーバーにログインできます。

ローカルマシンからサーバーにdeployerユーザーとしてログインし、接続をテストします。

ssh deployer@your_server_ip  -i ~/.ssh/deployerkey

deployer としてログインした後、サーバーとGitサーバー間の接続もテストします。

ssh -T [email protected]

最後に、サーバーを終了します。

exit

ここから、WebサーバーでのNginxとMySQLの構成に進むことができます。

ステップ4—Nginxを構成する

これで、アプリケーションを提供するWebサーバーを構成する準備が整いました。 これには、Laravelファイルを保持するために使用するドキュメントルートとディレクトリ構造の構成が含まれます。 /var/www/laravelディレクトリからファイルを提供するようにNginxを設定します。

まず、新しいサイトのサーバーブロック構成ファイルを作成する必要があります。

sudoユーザーとしてサーバーにログインし、新しい構成ファイルを作成します。 example.comを独自のドメイン名に置き換えることを忘れないでください。

sudo nano /etc/nginx/sites-available/example.com 

serverブロックを構成ファイルの先頭に追加します。

/etc/nginx/sites-available/<^>example.com <^>

server {
        listen 80;
        listen [::]:80;

        root /var/www/html/laravel-app/current/public;
        index index.php index.html index.htm index.nginx-debian.html;

        server_name example.com www.example.com;
}

上部にある2つのlistenディレクティブは、リッスンするポートをNginxに指示し、rootディレクティブは、Laravelがインストールされるドキュメントルートを定義します。 ルートディレクトリのパスにあるcurrent/publicは、アプリケーションの最新リリースを指すシンボリックリンクです。 indexディレクティブを追加することで、ディレクトリの場所を要求するときに対応するHTMLを探す前に、最初にindex.phpファイルを提供するようにNginxに指示しています。 server_nameディレクティブの後には、ドメインとそのエイリアスが続く必要があります。

Nginxがリクエストを処理する方法も変更する必要があります。 これは、try_filesディレクティブを介して行われます。 最初にリクエストをファイルとして提供しようとします。正しい名前のファイルが見つからない場合は、リクエストに一致するディレクトリのデフォルトのインデックスファイルを提供しようとする必要があります。 これに失敗した場合は、リクエストをクエリパラメータとしてindex.phpファイルに渡す必要があります。

/etc/nginx/sites-available/<^>example.com <^>

server {
        listen 80;
        listen [::]:80;

        root /var/www/html/laravel-app/current/public;
        index index.php index.html index.htm index.nginx-debian.html;

        server_name example.com www.example.com;

        location / {
                try_files $uri $uri/ /index.php?$query_string;
        }

次に、PHPファイルの実際の実行を処理するブロックを作成する必要があります。 これは、.phpで終わるすべてのファイルに適用されます。 ファイル自体を試し、それをパラメーターとしてindex.phpファイルに渡そうとします。

fastcgiディレクティブを設定して、シンボリックリンクの代わりにアプリケーションの実際のパス(シンボリックリンクをたどった後に解決される)を使用するようにNginxに指示します。 これらの行を構成に追加しない場合、シンボリックリンクポイントがキャッシュされるパス。つまり、展開後に古いバージョンのアプリケーションが読み込まれます。 これらのディレクティブがないと、各デプロイメントの後に手動でキャッシュをクリアする必要があり、アプリケーションへのリクエストが失敗する可能性があります。 さらに、fastcgi_passディレクティブは、Nginxがphp7-fpmが通信に使用しているソケットを使用し、index.phpファイルがこれらの操作のインデックスとして使用されることを確認します。

/etc/nginx/sites-available/<^>example.com <^>

server {
        listen 80;
        listen [::]:80;

        root /var/www/html/laravel-app/current/public;
        index index.php index.html index.htm index.nginx-debian.html;

        server_name example.com www.example.com;

        location / {
                try_files $uri $uri/ /index.php?$query_string;
        }


        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;

        }

最後に、Nginxが非表示の.htaccessファイルへのアクセスを許可しないようにします。 これを行うには、location ~ /\.htというロケーションブロックをもう1つ追加し、そのブロック内にdeny all;を指定するディレクティブを追加します。

この最後のロケーションブロックを追加すると、構成ファイルは次のようになります。

/etc/nginx/sites-available/<^>example.com <^>

server {
        listen 80;
        listen [::]:80;

        root /var/www/html/laravel-app/current/public;
        index index.php index.html index.htm index.nginx-debian.html;

        server_name example.com www.example.com;

        location / {
                try_files $uri $uri/ /index.php?$query_string;
        }


        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;

        }

        location ~ /\.ht {
                deny all;
        }

}

ファイルを保存して閉じ(CTRL-XYENTER)、sites-enabledディレクトリへのシンボリックリンクを作成して新しいサーバーブロックを有効にします:

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

構成ファイルの構文エラーをテストします。

sudo nginx -t

エラーが表示された場合は、続行する前に戻ってファイルを再確認してください。

Nginxを再起動して、必要な変更をプッシュします。

sudo systemctl restart nginx

これで、Nginxサーバーが構成されました。 次に、アプリケーションのMySQLデータベースを構成します。

ステップ5—MySQLの設定

インストール後、MySQLはデフォルトでrootユーザーを作成します。 ただし、このユーザーには無制限の特権があるため、アプリケーションのデータベースにrootユーザーを使用することはセキュリティ上の問題です。 代わりに、専用ユーザーを使用してアプリケーションのデータベースを作成します。

rootとしてMySQLコンソールにログインします。

mysql -u root -p

これにより、rootパスワードの入力を求められます。

次に、アプリケーションの新しいデータベースを作成します。

CREATE DATABASE laravel_database DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

次に、新しいデータベースユーザーを作成します。 このチュートリアルでは、このユーザーをlaravel_userというパスワードで呼び出しますが、パスワードは任意の強力なパスワードに置き換える必要があります。

CREATE USER 'laravel_user'@'localhost' IDENTIFIED BY 'password';

データベースに対する特権をユーザーに付与します。

GRANT ALL ON laravel_database.* TO 'laravel_user'@'localhost';

次に、特権をリロードします。

FLUSH PRIVILEGES;

そして最後に、MySQLコンソールを終了します。

EXIT;

これで、アプリケーションのデータベースとユーザーが構成され、最初のデプロイメントを実行する準備がほぼ整いました。

ステップ6—アプリケーションのデプロイ

これまで、Deployerが機能するために必要なすべてのツールとプログラムを構成しました。 最初のデプロイを実行する前に行う必要があるのは、LaravelアプリとDeployer自体の構成を完了し、アプリを初期化してリモートGitリポジトリにプッシュすることだけです。

ローカルマシンでターミナルを開き、次のコマンドを使用して作業ディレクトリをアプリケーションのフォルダに変更します。

cd /path/to/laravel-app

このディレクトリから、次のコマンドを実行して、laravel-appフォルダー内にdeploy.phpというファイルを作成します。このファイルには、展開用の構成情報とタスクが含まれています。

dep init -t Laravel

次に、お好みのテキストエディタまたはIDEでdeploy.phpファイルを開きます。 3行目には、Laravelアプリケーションをデプロイするために必要なタスクと構成を含むPHPスクリプトが含まれています。

deploy.php

<?php
namespace Deployer;

require 'recipe/laravel.php';

. . .

この下には、構成に合わせて編集する必要のあるいくつかのフィールドがあります。

  • // Project Nameの下に、Laravelプロジェクトの名前を追加します。
  • // Project Repositoryの下に、Gitリポジトリへのリンクを追加します。
  • // Hostsセクションで、サーバーのIPアドレスまたはドメイン名をhost()ディレクティブに追加し、Deployerユーザーの名前(この例では deployer )をuser()ディレクティブ。 また、手順3で作成したSSHキーをidentifyFile()ディレクティブに追加する必要があります。 最後に、アプリケーションを含むフォルダーのファイルパスを追加する必要があります。

これらのフィールドの編集が完了すると、次のようになります。

deploy.php

...
// Project name
set('application', 'laravel-app');

// Project repository
set('repository', '[email protected]:username/repository.git');

. . .

// Hosts

host('your_server_ip')
    ->user('deployer')
    ->identityFile('~/.ssh/deployerkey')
    ->set('deploy_path', '/var/www/html/laravel-app');

次に、ファイルの最後の行before('deploy:symlink', 'artisan:migrate');をコメントアウトします。 この行は、データベースの移行を自動的に実行するようにDeployerに指示し、コメントアウトすることで無効にします。 コメントアウトしない場合、この行ではサーバー上に適切なデータベースクレデンシャルが必要であるため、デプロイメントは失敗します。これは、最初のデプロイメント中に生成されるファイルを使用してのみ追加できます。

deploy.php

...
// Migrate database before symlink new release.

//before('deploy:symlink', 'artisan:migrate');

プロジェクトをデプロイする前に、まずプロジェクトをリモートGitリポジトリにプッシュする必要があります。

ローカルマシンで、作業ディレクトリをアプリケーションのフォルダに変更します。

cd /path/to/laravel-app

laravel-appディレクトリで次のコマンドを実行して、プロジェクトフォルダのGitリポジトリを初期化します。

git init

次に、すべてのプロジェクトファイルをリポジトリに追加します。

git add .

変更をコミットします。

git commit -m 'Initial commit for first deployment.'

次のコマンドを使用して、Gitサーバーをローカルリポジトリに追加します。 強調表示されたテキストを、必ず独自のリモートリポジトリのURLに置き換えてください。

git remote add origin [email protected]:username/repository.git

変更をリモートGitリポジトリにプッシュします。

git push origin master

最後に、depコマンドを使用して最初のデプロイメントを実行します。

dep deploy

すべてがうまくいけば、最後にSuccessfully deployed!が付いた次のような出力が表示されます。

Deployer's output✈︎ Deploying master on your_server_ip
✔ Executing task deploy:prepare
✔ Executing task deploy:lock
✔ Executing task deploy:release
➤ Executing task deploy:update_code
✔ Ok
✔ Executing task deploy:shared
✔ Executing task deploy:vendors
✔ Executing task deploy:writable
✔ Executing task artisan:storage:link
✔ Executing task artisan:view:clear
✔ Executing task artisan:cache:clear
✔ Executing task artisan:config:cache
✔ Executing task artisan:optimize
✔ Executing task deploy:symlink
✔ Executing task deploy:unlock
✔ Executing task cleanup
Successfully deployed!

次の構造は、サーバーの/var/www/html/laravel-appディレクトリ内に作成されます。

├── .dep
├── current -> releases/1
├── releases
│   └── 1
└── shared
    ├── .env
    └── storage

サーバーで次のコマンドを実行して、これを確認します。これにより、フォルダー内のファイルとディレクトリが一覧表示されます。

ls /var/www/html/laravel-app
Outputcurrent  .dep  releases  shared

これらのファイルとディレクトリのそれぞれに含まれるものは次のとおりです。

  • releasesディレクトリには、Laravelアプリケーションのデプロイリリースが含まれています。
  • currentは、前回のリリースへのシンボリックリンクです。
  • .depディレクトリには、Deployerの特別なメタデータが含まれています。
  • sharedディレクトリには、.env構成ファイルと、各リリースにシンボリックリンクされるstorageディレクトリが含まれています。

ただし、.envファイルが空であるため、アプリケーションはまだ機能しません。 このファイルは、暗号化に使用されるランダムな文字列であるアプリケーションキーなどの重要な構成を保持するために使用されます。 設定されていない場合、ユーザーセッションやその他の暗号化されたデータは安全ではありません。 アプリのローカルマシン.envファイルがありますが、パスワードなどの機密データをGitリポジトリに保存することはできないため、Laravelの.gitignoreファイルはGitリポジトリから除外します。また、アプリケーションにはサーバー上で異なる設定が必要です。 .envファイルにはデータベース接続設定も含まれているため、最初の展開ではデータベースの移行を無効にしました。

サーバー上でアプリケーションを構成しましょう。

deployerユーザーとしてサーバーにログインします。

ssh deployer@your_server_ip  -i ~/.ssh/deployerkey

サーバーで次のコマンドを実行し、ローカルの.envファイルをコピーしてエディターに貼り付けます。

nano /var/www/html/laravel-app/shared/.env

保存する前に、いくつかの変更を加える必要があります。 APP_ENVproductionに、APP_DEBUGfalseに、APP_LOG_LEVELerrorに設定し、データベース、データベースユーザー、および独自のパスワード。 example.comも独自のドメインに置き換える必要があります。

/var/www/html/laravel-app/shared/.env

APP_NAME=Laravel
APP_ENV=production
APP_KEY=base64:cA1hATAgR4BjdHJqI8aOj8jEjaaOM8gMNHXIP8d5IQg=
APP_DEBUG=false
APP_LOG_LEVEL=error
APP_URL=http://example.com

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_database
DB_USERNAME=laravel_user
DB_PASSWORD=password

BROADCAST_DRIVER=log
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

ファイルを保存して、エディターを閉じます。

次に、ローカルマシンのdeploy.phpファイルの最後の行のコメントを解除します。

deploy.php

...
// Migrate database before symlink new release.

before('deploy:symlink', 'artisan:migrate');

警告:これにより、データベースの移行がすべての展開で自動的に実行されます。 これにより、データベースを手動で移行する必要がなくなりますが、展開する前にデータベースをバックアップすることを忘れないでください。


この構成が機能していることを確認するには、アプリケーションをもう一度デプロイします。 ローカルマシンで次のコマンドを実行します。

dep deploy

これで、アプリケーションは正しく機能します。 サーバーのドメイン名( http://example.com )にアクセスすると、次のランディングページが表示されます。

すべての展開の前に、サーバー上の.envファイルを編集する必要はありません。 通常の展開は最初の展開ほど複雑ではなく、いくつかのコマンドで実行されます。

ステップ7—一般的な展開の実行

最後のステップとして、このセクションでは、日常的に使用できる簡単な展開プロセスについて説明します。

再度デプロイする前に、アプリケーションを変更することから始めます。 たとえば、routes/web.phpファイルに新しいルートを追加できます。

/routes/web.php

<?php

. . .

Route::get('/', function () {
    return view('welcome');
});

Route::get('/greeting', function(){
    return 'Welcome!';
});

これらの変更をコミットします。

git commit -am 'Your commit message.'

変更をリモートGitリポジトリにプッシュします。

git push origin master

そして最後に、アプリケーションをデプロイします。

dep deploy

これで、アプリケーションがサーバーに正常にデプロイされました。

結論

ダウンタイムなしでLaravelアプリケーションを簡単にデプロイできるようにローカルコンピューターとサーバーを構成しました。 この記事では、Deployerの基本のみを取り上げており、多くの便利な機能があります。 一度により多くのサーバーにデプロイして、タスクを作成できます。 たとえば、移行前にデータベースをバックアップするタスクを指定できます。 Deployerの機能について詳しく知りたい場合は、Deployerのドキュメントで詳細を確認できます。