CakePHP のコードをgit push で自動反映

こんにちは、ファルコンM です。

ローカルで作成したCakePHP のサイトをgit でリモートのサーバーにpush したとき、自動でサイトに反映させる方法について。

開発環境

ローカル側

  • windows10 64bit
  • Apache2.4.26
  • PHP 7.1.7
  • MySQL 5.6.37
  • Composer 1.5.2

サーバー側

  • さくらVPS 1Gプラン
  • Ubuntu 16.04
  • Apache2.4.18
  • PHP 7.0.22
  • MySQL 5.7.19

サーバー側に、/var/www/html/git/test.git にgit リポジトリを作成する。

サーバー側の /var/www/html/testcakephp にCakePHP のサイトを作成する。

サーバー側に、CakePHP のサイトを作成する

以下の記事を参照。

こんにちは、ファルコンMです。 今回は、さくらVPS Ubuntu で、cakePHP3 を使えるようにし、ブラウザアクセスで...

このとき、サーバー側のCakePHP のサイトの場所を /var/www/html/testcakephp となるようにする。( 別にここにしなくてもいいが、ここから先は、ここに作成したものとして話を進める。)

ローカル側に、CakePHP のサイトを作成する

ローカルで、サーバー側の/var/www/html/git/test.git のgitリポジトリを クローンしておく。

クローンしたgit リポジトリの test.git/testcakephp にCakePHP のサイトを作成する。

作成方法は以下のサイトを参照。

こんにちは、ファルコンM です。 今回やりたいこと ローカルでCakePHP を使ったPHPプロジェクトを作成する。...

サーバー側のリポジトリの設定

git リポジトリにpush した後、自動反映させるための設定。develop ブランチにプッシュしたときに反映させる。

$ cd /var/www/html/git/test.git/hooks
$ sudo vi post-receive

post-receive に以下のコードを書き込む。ローカルとサーバーで共有できるところだけコピーしている。

cd /tmp
git clone -b develop /var/www/html/git/test.git

cp -r -f /tmp/test/01html/html/testcakephp/bin/ /var/www/html/testcakephp/

cp -r -f /tmp/test/01html/html/testcakephp/config/schema /var/www/html//testcakephp/config/
cp /tmp/test/01html/html/testcakephp/config/.env.default /var/www/html/testcakephp/config/
cp /tmp/test/01html/html/testcakephp/config/app.default.php /var/www/html/testcakephp/config/
cp /tmp/test/01html/html/testcakephp/config/bootstrap.php /var/www/html/testcakephp/config/
cp /tmp/test/01html/html/testcakephp/config/bootstrap_cli.php /var/www/html/testcakephp/config/
cp /tmp/test/01html/html/testcakephp/config/paths.php /var/www/html/testcakephp/config/
cp /tmp/test/01html/html/testcakephp/config/requirements.php /var/www/html/testcakephp/config/
cp /tmp/test/01html/html/testcakephp/config/routes.php /var/www/html/testcakephp/config/

cp -r -f /tmp/test/01html/html/testcakephp/plugins /var/www/html/testcakephp/
cp -r -f /tmp/test/01html/html/testcakephp/src /var/www/html/testcakephp/
cp -r -f /tmp/test/01html/html/testcakephp/tests /var/www/html/testcakephp/
cp -r -f /tmp/test/01html/html/testcakephp/webroot /var/www/html/testcakephp/
cp /tmp/test/01html/html/testcakephp/.editorconfig /var/www/html/testcakephp/
cp /tmp/test/01html/html/testcakephp/.travis.yml /var/www/html/testcakephp/
cp /tmp/test/01html/html/testcakephp/composer.json /var/www/html/testcakephp/
cp /tmp/test/01html/html/testcakephp/composer.lock /var/www/html/testcakephp/
cp /tmp/test/01html/html/testcakephp/index.php /var/www/html/testcakephp/
cp /tmp/test/01html/html/testcakephp/phpunit.xml.dist /var/www/html/testcakephp/
cp /tmp/test/01html/html/testcakephp/README.md /var/www/html/testcakephp/

この状態で、git push すれば、サイトに自動反映される。

パーミッションに注意

/var/www/html/test ディレクトリ以下は、ディレクトリのグループ、所有者をwww-data としておく。そうしないと、パーミッションの権限がないため、コピーできない。

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする