GitLab、https://bitbucket.org/[Bitbucket]、またはhttps://github.com/[GitHub]などのサービスを使用できます。[GitHubは月額7ドルからプライベートリポジトリを提供します]。VPSでプライベートGitサーバーをセットアップする方法]。サーバーを指すドメイン名。DigitalOceanでホスト名を設定する方法チュートリアルは、これを構成するのに役立ちます。ComposerとGitもローカルマシンにインストールされています。正確なインストール方法は、ローカルオペレーティングシステムによって異なります。Gitのインストール手順はhttps://git-scm.com/[Gitプロジェクトのダウンロードページ]で入手できます。Composerはhttps://getcomposer.org/[ComposerプロジェクトのWebサイト]から直接ダウンロードできます。ステップ1-ローカル開発環境のセットアップローカルマシンからアプリケーションを作成およびデプロイするため、ローカル開発環境を構成することから始めます。Deployerは、ローカルコンピューターから展開プロセス全体を制御するため、インストールから始めます。+`を使用してDeployerインストーラーをダウンロードします。page]にある最新のインストーラーのSHA-1ハッシュと一致することを確認します。強調表示された値を最新のハッシュに置き換えます。verifiedDeployerをシステム全体で使用可能にします。+`ディレクトリを作成する必要がある場合があることに注意してください。/usr/local/bin/dep実行可能にします。/usr/local/bin/dep次に、*ローカルマシン*でLaravelプロジェクトを作成します。"5.5.*"ローカルマシンに必要なソフトウェアをすべてインストールしました。それが整ったら、アプリケーションのGitリポジトリの作成に進みます。手順2-リモートGitリポジトリへの接続Deployerは、ユーザーがどこからでもコードを展開できるように設計されました。この機能を許可するには、ユーザーがコードをインターネット上のリポジトリにプッシュし、そこからDeployerが本番サーバーにコードをコピーする必要があります。オープンソースのバージョン管理システムであるGitを使用して、Laravelアプリケーションのソースコードを管理します。SSHプロトコルを使用してGitサーバーに接続できます。これを安全に行うには、SSHキーを生成する必要があります。これはパスワードベースの認証よりも安全であり、各展開の前にパスワードを入力するのを避けることができます。*ローカルマシン*で次のコマンドを実行して、SSHキーを生成します。`はキーファイルのファイル名を指定し、独自のファイル名に置き換えることができることに注意してください。+`という名前)を生成します。~/.ssh/ローカルマシンにもっと多くのSSHキーがある可能性があるため、Gitサーバーに接続するときに使用するSSH秘密キーを知るようにSSHクライアントを構成します。~/.ssh/configファイルを開き、Gitサーバーへのショートカットを追加します。+`ディレクティブ(作成したSSHキーのファイルパスを指す)が含まれている必要があります。~/.ssh/ファイルを保存して閉じ、アクセス許可を制限します。~/.ssh/configこれで、SSHクライアントはGitサーバーへの接続に使用する秘密鍵を認識します。次のコマンドを使用して、公開鍵ファイルのコンテンツを表示します。~/.ssh/.pub出力をコピーし、公開キーをGitサーバーに追加します。Gitホスティングサービスを使用している場合は、アカウントにSSHキーを追加する方法に関するドキュメントを参照してください。GitHubにSSHキーを追加GitLabにSSHキーを追加BitbucketにSSHキーを追加これで、ローカルマシンを使用してGitサーバーに接続できるようになります。次のコマンドで接続をテストします。-Tこのコマンドでエラーが発生した場合は、Gitホスティングサービスのドキュメントを参照してSSHキーを正しく追加したことを確認し、接続を再試行してください。アプリケーションをリモートGitリポジトリにプッシュしてデプロイする前に、最初に運用サーバーを構成しましょう。ステップ3-Deployerユーザーの構成DeployerはSSHプロトコルを使用して、サーバー上でコマンドを安全に実行します。このため、実稼働サーバーを構成するための最初のステップは、DeployerがSSH経由でサーバーにログインしてコマンドを実行するために使用できるユーザーを作成することです。*」という新しいユーザーを作成します。Webサーバーによって書き込み可能でなければなりません。*グループに追加します。+`である必要があります。*ユーザーはファイルの読み取りと書き込みが可能になり、グループと他のユーザーはそれらのファイルを読み取ることができます。*グループに変更します。`ディレクトリ内のファイルとフォルダーを変更できる必要があります。*)を継承する必要があります。これを実現するには、次のコマンドを使用してこのディレクトリにグループIDを設定します。/var/www/htmlDeployerはSSHを使用してGitリポジトリを運用サーバーに複製するため、LEMPサーバーとGitサーバー間の接続が安全であることを確認する必要があります。*ユーザーのSSHキーを生成します。*ユーザーに切り替えます。*ユーザーとしてSSHキーペアを生成します。今回は、SSHキーのデフォルトのファイル名を受け入れることができます。~/.ssh/id_rsa.pub前の手順で行ったように、公開キーをコピーしてGitサーバーに追加します。*ユーザーのSSHキーを生成し、サーバーに公開キーを追加する必要があります。*ローカルマシン*で次のコマンドを実行します。~/.ssh/公開キーを含む次のコマンドの出力をコピーします。*ユーザーとしての*サーバー*で次を実行します。+」を押して保存して終了します。ファイルの許可を制限します。~/.ssh/authorized_keys次に、sudoユーザーに戻ります。*ユーザーでサーバーにログインできます。*ユーザーとしてローカルマシンからサーバーにログインします。*としてログインした後、サーバーとGitサーバー間の接続もテストします。-T最後に、サーバーを終了します。exitここから、WebサーバーでのNginxとMySQLの構成に進むことができます。ステップ4-Nginxの構成これで、アプリケーションを提供するWebサーバーを構成する準備が整いました。これには、Laravelファイルを保持するために使用するドキュメントルートとディレクトリ構造の構成が含まれます。+`ディレクトリからファイルを提供するようにNginxをセットアップします。[サーバーブロック構成を作成する必要がありますファイル]新しいサイト。sudoユーザーとしてサーバーにログインし、新しい構成ファイルを作成します。`ディレクティブはLaravelがインストールされるドキュメントルートを定義します。`は、アプリケーションの最新リリースを指すシンボリックリンクです。`ファイルを最初に提供するようにNginxに指示しています。+`ディレクティブの後には、ドメインとそのエイリアスが必要です。Nginxがリクエストを処理する方法を変更する必要があります。`ディレクティブを介して行われます。最初に要求をファイルとして提供しようとし、正しい名前のファイルが見つからない場合は、要求に一致するディレクトリのデフォルトのインデックスファイルを提供しようとします。+`ファイルに渡す必要があります。}次に、PHPファイルの実際の実行を処理するブロックを作成する必要があります。これは、.phpで終わるすべてのファイルに適用されます。+`ファイルに渡そうとします。`ディレクティブを設定して、シンボリックリンクの代わりに、アプリケーションの実際のパス(シンボリックリンクをたどった後に解決される)を使用するようにNginxに指示します。これらの行を構成に追加しない場合、シンボリックリンクポイントがキャッシュされるパスは、展開後にアプリケーションの古いバージョンが読み込まれることを意味します。これらのディレクティブがないと、各デプロイメントとアプリケーションへのリクエストが失敗する可能性がある場合に、手動でキャッシュをクリアする必要があります。+`ファイルがこれらの操作のインデックスとして使用されることを確認します。`ファイルへのアクセスを許可しないようにします。+」を指定するディレクティブを追加します。この最後のロケーションブロックを追加すると、構成ファイルは次のようになります。+`ディレクトリへのシンボリックリンクを作成して新しいサーバーブロックを有効にします。/etc/nginx/sites-enabled/構成ファイルの構文エラーをテストします。-tエラーが表示された場合は、続行する前に戻ってファイルを再確認してください。Nginxを再起動して、必要な変更をプッシュします。nginxNginxサーバーが構成されました。次に、アプリケーションのMySQLデータベースを構成します。ユーザーを作成します。このユーザーには無制限の権限があります。*ユーザーを使用するのはセキュリティ上悪い習慣です。代わりに、専用ユーザーでアプリケーションのデータベースを作成します。*としてログインします。*パスワードの入力が求められます。次に、アプリケーションの新しいデータベースを作成します。utf8mb4_unicode_ci;次に、新しいデータベースユーザーを作成します。このチュートリアルでは、このユーザーをパスワード「」で「」と呼びますが、パスワードを選択した強力なパスワードに置き換える必要があります。'';データベースに対する権限をユーザーに付与します。''@'localhost';次に、特権をリロードします。PRIVILEGES;最後に、MySQLコンソールを終了します。EXIT;これで、アプリケーションのデータベースとユーザーが構成され、最初の展開を実行する準備がほぼ整いました。ステップ6-アプリケーションのデプロイこれまで、Deployerが機能するために必要なすべてのツールとプログラムを構成しました。最初の展開を実行する前に行うことは、LaravelアプリとDeployer自体の構成を完了し、アプリを初期化してリモートGitリポジトリにプッシュすることだけです。*ローカルマシン*でターミナルを開き、次のコマンドで作業ディレクトリをアプリケーションのフォルダーに変更します。+`というファイルを作成します。このファイルには、構成情報とデプロイメントのタスクが含まれます。+`ファイルを開きます。3行目には、Laravelアプリケーションをデプロイするために必要なタスクと構成を含むPHPスクリプトが含まれています。.この下には、構成に合わせて編集する必要があるいくつかのフィールドがあります。+`で、Laravelプロジェクトの名前を追加します。+`で、Gitリポジトリへのリンクを追加します。identifyFile()+`ディレクティブに追加する必要があります。最後に、アプリケーションを含むフォルダーのファイルパスを追加する必要があります。これらのフィールドの編集が完了すると、次のようになります。+`をコメント化します。この行は、Deployerにデータベース移行を自動的に実行するように指示し、コメントアウトすることで無効にします。コメントアウトしないと、この行にはサーバー上に適切なデータベース資格情報が必要であり、最初の展開時に生成されるファイルを使用してのみ追加できるため、展開は失敗します。'artisan:migrate');プロジェクトをデプロイする前に、まずリモートGitリポジトリにプッシュする必要があります。*ローカルマシン*で、作業ディレクトリをアプリケーションのフォルダーに変更します。cd`++`ディレクトリで次のコマンドを実行して、プロジェクトフォルダーのGitリポジトリを初期化します。init次に、すべてのプロジェクトファイルをリポジトリに追加します。.変更をコミットします。''次のコマンドを使用して、Gitサーバーをローカルリポジトリに追加します。強調表示されたテキストは、必ず独自のリモートリポジトリのURLに置き換えてください。origin変更をリモートGitリポジトリにプッシュします。+`ディレクトリ内に次の構造が作成されます。storageサーバー上で次のコマンドを実行してこれを確認します。このコマンドは、フォルダー内のファイルとディレクトリを一覧表示します。sharedこれらの各ファイルとディレクトリの内容は次のとおりです。+`ディレクトリにはLaravelアプリケーションのデプロイリリースが含まれています。+`は最後のリリースへのシンボリックリンクです。+`ディレクトリには、Deployerの特別なメタデータが含まれています。+`ディレクトリが含まれています。`ファイルが空のため、アプリケーションはまだ動作しません。このファイルは、アプリケーションキー(暗号化に使用されるランダムな文字列)などの重要な構成を保持するために使用されます。設定されていない場合、ユーザーセッションやその他の暗号化されたデータは安全ではありません。`ファイルはGitリポジトリにパスワードを除外します。これは、Gitリポジトリにパスワードなどの機密データを保存することは良い考えではなく、アプリケーションはサーバー上で異なる設定を必要とします。+`ファイルにはデータベース接続設定も含まれているため、最初のデプロイメントでデータベースの移行を無効にしました。サーバーでアプリケーションを構成しましょう。*ユーザーとしてサーバーにログインします。+`ファイルをコピーしてエディターに貼り付けます。/var/www/html//shared/.env保存する前に、いくつかの変更を行う必要があります。」に設定し、データベース、データベースユーザー、およびパスワードを自分のものに置き換えることを忘れないでください。`+`を独自のドメインに置き換える必要があります。/var/www/html/laravel-app/shared/.envAPP_NAME=LaravelAPP_ENV=APP_KEY=base64:cA1hATAgR4BjdHJqI8aOj8jEjaaOM8gMNHXIP8d5IQg=APP_DEBUG=APP_LOG_LEVEL=APP_URL=http://DB_CONNECTION=mysqlDB_HOST=127.0.0.1DB_PORT=3306DB_DATABASE=DB_USERNAME=DB_PASSWORD=BROADCAST_DRIVER=logCACHE_DRIVER=fileSESSION_DRIVER=fileQUEUE_DRIVER=syncREDIS_HOST=127.0.0.1REDIS_PASSWORD=nullREDIS_PORT=6379ファイルを保存し、エディターを閉じます。'artisan:migrate');この構成が機能していることを確認するには、アプリケーションをもう一度デプロイします。deployこれで、アプリケーションは正常に動作します。サーバーのドメイン名()にアクセスすると、次のランディングページが表示されます。+`ファイルを編集する必要はありません。通常の展開は最初の展開ほど複雑ではなく、わずかなコマンドで実行されます。最後のステップとして、このセクションでは、日常的に使用できる簡単な展開プロセスについて説明します。再度デプロイする前に、アプリケーションを変更することから始めます。view('welcome');});これらの変更をコミットします。message.'変更をリモートGitリポジトリにプッシュします。masterそして最後に、アプリケーションをデプロイします。deployアプリケーションがサーバーに正常にデプロイされました。結論Laravelアプリケーションをダウンタイムなしで簡単に展開できるように、ローカルコンピューターとサーバーを構成しました。この記事では、Deployerの基本のみを取り上げており、多くの便利な機能を備えています。一度に複数のサーバーにデプロイしてタスクを作成できます。移行前にデータベースをバックアップするタスクを指定できます。documentation]で詳細をご覧ください。