KUSANAGI環境でLaravel5.5プロジェクトをとりあえず動作させる方法とGitデプロイする方法。

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.confDocumentRootDirectory のパスを/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をプロジェクトディレクトリにダウンロードして使用する。

Leave a Reply

Your email address will not be published.