Ubuntu16.04でDeployerを使用してLaravelアプリケーションを自動的にデプロイする方法
序章
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サーバー。 GitLab 、 Bitbucket 、GitHubなどのサービスを使用できます。 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-X
、Y
、ENTER
の順に押して保存して終了します。
ファイルの権限を制限します。
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-X
、Y
、ENTER
)、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_ENV
をproduction
に、APP_DEBUG
をfalse
に、APP_LOG_LEVEL
をerror
に設定し、データベース、データベースユーザー、および独自のパスワード。 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のドキュメントで詳細を確認できます。