Tạo file `~/.vimrc` với nội dung sau:
~~~
filetype plugin indent on
" show existing tab with 4 spaces width
set tabstop=4
" when indenting with '>', use 4 spaces width
set shiftwidth=4
" On pressing tab, insert 4 spaces
set expandtab
~~~
Deployer homepage: https://deployer.org/
### Memo tóm tắt:
**A. Local server (server chứa tool deployer)**
1. Khởi động ssh-agent và add thêm private key (cần khi muốn sử dụng private git trong quá trình deploy)
~~~
$ eval "$(ssh-agent)"
$ ssh-add /path/to/private_key
# Có thể add nhiều private keys
~~~
2. Trong setting của server trong deploy script, sử dụng option forward_agent (forwardAgent())
Chú ý: Hiện tại phiên bản 4.x trở xuống, muốn sử dụng forward_agent thì cần set `agent_type` là `phpseclib`
**B. Remote Server (server chứa source code để chạy app)**
1. Bật chức năng cho phép fowarding agent ở remote server bằng cách bỏ comment `#AllowAgentForwarding yes` trong file `/etc/ssh/sshd_config`
~~~
AllowAgentForwarding yes
#AllowTcpForwarding yes
#GatewayPorts no
#X11Forwarding no
~~~
2. Restart lại sshd
~~~
$ sudo service sshd restart
~~~
**Còn lại nghiên cứu homepage**
Dưới đây là memo các bước để thiết lập môi trường phát triển PHP trên Centos6.8.
Danh sách middleware sẽ cài đặt:
1. Nginx
2. PostgreSQL
3. PHP5.6 (+php-fpm)
Quá trình cài đặt dưới đây được thực hiện trên môi trường giả lập bằng vagrant, sử dụng box `bento/centos6.8`.
Mặc định phiên bản Python trên Centos6 chỉ là 2.6.x. Đây là phiên bản được release vào năm 2008, quá cũ để làm những thứ hay ho vào thời điểm hiện tại. Centos (cùng hệ với Redhat) có truyền thống giữ nguyên phiên bản của các phần mềm đi kèm với một bản Centos nào đó trong một thời gian cực kỳ dài (nghe nói 10 năm). Do đó muốn sử dụng phiên bản mới hơn của một phần mềm nào đó chỉ có cách tự build từ source code hoặc thông qua các repository.
Việc tự build phần mềm từ source code đảm bảo sẽ luôn sử dụng được phiên bản mới nhất nhưng với trình độ cùi bắp của mình thì chỉ build được những thứ standard. Còn muốn build những tool đi kèm hay build môi trường dành cho develop (**-devel chẳng hạn) thì vất vả vô cùng (và thường thì sau một hồi quậy tanh bành thì mình bỏ luôn box và restore lại từ đầu).
Việc cài đặt thông qua repository thì đơn giản hơn rất nhiều. Có một repository SCL (Software Collections) được chính Redhad hỗ trợ. Do đó thông thường khi muốn sử dụng phiên bản mới của một phần mềm nào đó, thì SCL là lựa chọn có thể chấp nhận được.