概要
- PHPのDeployはファイルコピーなので、Railsのアプリケーションサーバが絡むデプロイに比べて楽で良い。
- CircleCI2.0上で、コンテナの準備を含めても1分で完了する。
- サンプルソースコード。
- Live app


phpapp/README.md at master · matsubo/phpapp
deployer test. Contribute to matsubo/phpapp development by creating an account on GitHub.
Setup
% git clone [email protected]:matsubo/phpapp.git % cd phpapp % composer install
Command example
% time php vendor/bin/dep deploy test
✈︎ Deploying master on blog.teraren.com
✔ Executing task deploy:prepare
✔ Executing task deploy:lock
✔ Executing task deploy:release
➤ Executing task deploy:update_code
Cloning into '/home/matsu/Sites/teraren.com/phpapp/releases/2'...
Counting objects: 36, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (16/16), done.
Writing objects: 100% (36/36), done.
Total 36 (delta 12), reused 36 (delta 12)
Connection to blog.teraren.com closed.
✔ Ok
✔ Executing task deploy:shared
✔ Executing task deploy:writable
✔ Executing task deploy:vendors
✔ Executing task deploy:clear_paths
✔ Executing task deploy:symlink
✔ Executing task deploy:unlock
✔ Executing task cleanup
Successfully deployed!
15.56 real 0.65 user 0.60 sys
Setup history
% composer init % composer require deployer/deployer --dev % php vendor/bin/dep init % vim deploy.php; vim hosts.yml
Nginx側の設定。普通な感じで。
server {
listen 80;
listen [::]:80;
server_name phpapp.teraren.com;
location / {
root /home/matsu/Sites/teraren.com/phpapp/current/webroot;
index index.php index.html index.htm;
access_log /var/log/nginx/phpapp.teraren.com main;
location ~ \.php {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
}
まとめ
- DeployerとCircleCIの組み合わせはとても楽。
- AutoScale用の設定が無いので、AWSのCodeDeployと連携した方が良さそうです。
- CircleCI -> bastion -> Application server という構成のベストな設定は見つからなかった。自分でコマンドを色々書かないといけなさそうな気がする。それを考えるtおCodeDeployに任せた方が楽な気がする。


Comments