GNU/Linux >> Linux の 問題 >  >> Panels >> Panels

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

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アプリケーションを自動的にデプロイする方法について、左側のボタンを使用してソーシャルネットワーク上の友達と共有するか、下に返信を残してください。ありがとう。


Panels
  1. Ubuntu14.04にNginxでElggをインストールする方法

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

  3. Ubuntu18.04にNginxでJoomlaをインストールする方法

  1. Apacheを使用してUbuntu20.04にLet’sEncryptをインストールする方法

  2. Ubuntu20.04でApache2を使用してHTTPSプロトコルを有効にする方法

  3. Ubuntu20.04でCollaboraOnlineをNextcloudと統合する方法

  1. Ubuntuにpm2とNginxを使用してNode.jsアプリケーションをデプロイする方法

  2. Ubuntu 16.04でIptablesをFirewalldに置き換える方法は?

  3. Ubuntu20.04でLet'sEncryptを使用してNginxを保護する方法