KUSANAGI環境へLaravelプロジェクトをGitデプロイするまでの手順。
KUSANAGIの環境構築
基本は公式ドキュメント通りにセットアップするだけでOK。
—
公式ドキュメント
https://kusanagi.tokyo/document/
—
kusanagi init と kusanagi provisionで対話的なセットアップが可能。
KUSANAGI環境のオプション
プロビジョンタイプ:lamp
Webサーバ:httpd(Apache)
PHP:PHP7
httpd 設定ファイルの編集
Laravel5.5の動作環境はKUSANAGIで整っているけれど、KUSANAGIのデフォルトのドキュメントルートは/home/プロファイル名/Documentroot なので、Laravelに合わせてドキュメントルートを変更してあげる必要がある。
/etc/httpd/conf.d/以下の
プロファイル名_http.conf と プロファイル名_ssl.conf のDocumentRootとDirectory のパスを/home/kusanagi/プロファイル名/public に変更する。
また、各種log ディレクトリのパスも必要に応じて変更しておくと良いかもしれない。(変更した場合、ディレクトリが存在しないとApacheの起動に失敗するのでmkdir -p 等でディレクトリを作成しておくこと。)
その他、必要に応じて適宜設定する。
gitでのデプロイ
普段は適当なスクリプトを書いてrsyncでデプロイしているのだけれど、フレームワークのディレクトリ構造をある程度把握していないと大変だし、Laravel初体験なので、Gitを使ったデプロイにした。
前提
・KUSANAGIプロファイル名はhogeproject、公開ディレクトリは/home/kusanagi/hogeproject/public とする。
・公開したいプロジェクトはgitで管理されている事とする。
・.gitignore を適切に設定している事とする。
リモートリポジトリの作成・設定
リポジトリ用のディレクトリを適当に作成する
今回はとりあえず/home/kusanagi/my_project_repository とする。
サーバ側での作業
#リポジトリ専用ディレクトリの作成 cd mkdir my_project_repository #リモートリポジトリの作成 cd my_project_repository git init --bare hogeproject.git
ローカルでの作業
リモートのhogeproject.git をリモートリポジトリとして登録し、pushする。
サーバ側での作業
cloneする。
cd git clone my_project_repository/hogeproject.git
フックファイルの作成
~/myproject_repository/hogeproject.git/hooks/にpost-receive を作成する。
中身は
cd ~/hogeproject git --git-dir=.git pull
こんな感じで。
実行権限の付与
chmod a+x ~/myproject_repository/hogeproject.git/hooks/post-receive
あとは、ローカルから今回作成したリモートリポジトリにpushしてやれば自動的に~/hogeprojectに配置される。
Composerが必要な場合
Composerが必要な場合は、
curl -sS https://getcomposer.org/installer | php7
などとしてcomposer.pharをプロジェクトディレクトリにダウンロードして使用する。
コメント