こんにちは、ファルコン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 のサイトを作成する
以下の記事を参照。
このとき、サーバー側のCakePHP のサイトの場所を /var/www/html/testcakephp となるようにする。( 別にここにしなくてもいいが、ここから先は、ここに作成したものとして話を進める。)
ローカル側に、CakePHP のサイトを作成する
ローカルで、サーバー側の/var/www/html/git/test.git のgitリポジトリを クローンしておく。
クローンしたgit リポジトリの test.git/testcakephp にCakePHP のサイトを作成する。
作成方法は以下のサイトを参照。
サーバー側のリポジトリの設定
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 としておく。そうしないと、パーミッションの権限がないため、コピーできない。
コメントを残す