Cấu hình tự động deploy PHP
Trước nay có làm rất nhiều projects về PHP nhưng làm một mình và khá là lười setup linh tinh, nên mình thường chơi kiểu nông dân push code lên git và update code trên server bằng cách pull về.
Nay lười quá vì phải update code trên nhiều con server và làm nhiều projects hơn. Do đó, việc update code mất nhiều thời gian do đó muốn viết 1 bài về tự động hoá việc này. Một phần note lại kiến thức đã tìm hiểu. Vì trước giờ không có thói quen viết blog hoặc note chi tiết các bước mình đã làm nên cảm thấy phí thời gian mình tìm hiểu. Trong khi, một thời gian sau làm lại thì lại phải tìm lại những thứ đã làm trước đó vì quên ;). Cũng như để lại gì đó trong profile của mình. Sorry hơi dài dòng…
0. Tạo user trên Remote Server
1 | sudo adduser deployer |
Sau đó login vào user deployer và tạo ssh key
1 | su - deployer |
Sau khi chạy lệnh trên xong copy key đó add vô github hoặc bitbucket.
Tiếp tục là tạo ssh key kết nối giữa local và Remote server thông qua user deployer1
2ssh-keygen -t rsa -b 4096 -f ~/.ssh/deployerkey
cat ~/.ssh/deployerkey.pub
Copy ssh key trên add vào Remote server với user deployer1
nano ~/.ssh/authorized_keys
Paste vào và Ctr + X, nhấn Y và ENTER lưu lại
1 | chmod 600 ~/.ssh/authorized_keys |
Done
Giờ kết nối vô Remote server với user deployer bằng cách1
ssh deployer@your_server_ip -i ~/.ssh/deployerkey
Lệnh này kiểm tra xem kết nới với git chưa1
ssh -T git@mygitserver.com
1. Cài PHP Deployer (Read More)
1 | curl -LO https://deployer.org/deployer.phar |
2. Khởi tạo Deployer trong project
1 | dep init |
Sau khi tạo thì nó sẹ tạo ra file deploy.php trong project. Chúng ta sẽ cấu hình trong đó.
Thực ra từ bước này trở xuống cũng không cần quan tâm vì deployer.org có template cấu hình cho từng framework chỉ custom vài thứ là chạy ngon lành.
3. Cấu hình server cho deploy.php
Ta có thể cấu hình nhiều môi trường deploy: production, staging hay dev…
1 | set('branch', 'master'); |
4. Cấu hình tasks để chạy khi deploy
1 | task('create-new-release', function () { |
5. Lệnh deploy
Chạy từng task trên tất cả các hosts
1
dep deploy
Chạy từng task trên một một host
1
dep deploy production
6. Sample deploy.php
https://gist.github.com/trungpv1601/eedde3ca6f04f2129945bbf1fec42929
7. Cấu hình Alias cho Apache và NGINX
Apache
https://gist.github.com/trungpv1601/b7d70cba5c856bbcec06e180bba5ede0NGINX
https://gist.github.com/trungpv1601/553bc03722bd87b709667cc5efcfa82a