Trong những bài trước chúng ta đã tiến hành cài đặt và trỏ domain, cấu hình domain vào caddy để được một web cơ bản, trong bài này chúng ta tiến hành cấu hình php chạy với caddy để chạy ứng dụng php
I: Cấu Hình
Đầu tiên chúng ta cần cài php, ở đây mình cài php 7.4 fpm
sudo apt-get update
sudo apt -y install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt -y install php7.4-fpm
Sau khi cài song chúng ta tiến hành cấu hình php kết nối với caddy. Mặc định cấu hình php sẽ có dạng như sau trong caddfile
php_fastcgi [<matcher>] <php-fpm_gateways...> {
root <path>
split <substrings...>
env [<key> <value>]
index <filename>|off
try_files <files...>
resolve_root_symlink
dial_timeout <duration>
read_timeout <duration>
write_timeout <duration>
capture_stderr
}Với một loạt các cấu hình dài như vậy nhưng chúng ta chỉ cần quan tâm tới một số cấu hình quan trọng thôi còn lại có thể bỏ qua
root: thư mục chạy code của chúng
php-fpm_gateways: chính là địa chỉ kết nối của php-fpm, nếu kết nối tới máy chủ khác thì quan tâm nếu dùng local thì bỏ qua
split: chính là đuôi file mặc định ngôn ngữ php thì phần đuôi file sẽ là .php, nếu bạn đổi đuôi file thì phải cấu hình ở đây nếu không thì bỏ qua
index: là file index của thư mục mặc định là index.php nếu bạn không muốn là php thì có thể thay đổi ở đây
try_files: có tác dụng để rewrite thư mục, đường dẫn file
Từ cấu hình cơ bản trên chúng ta có thể có 1 file cấu hình chạy đơn giản ứng dụng php như sau
Sửa cấu hình php-fpm cho phép user caddy có quyền chạy file bằng cách sửa cấu hình /etc/php/7.4/fpm/pool.d/www.conf từ cấu hình mặc định
user = www-data
group = www-dataThành cấu hình
user = caddy
group = caddyTiếp chúng ta cần chuyển cả user listen của PHP FPM từ
listen.owner = www-data
listen.group = www-dataThành
listen.owner = caddy
listen.group = caddySau đó khởi động lại php-fpm
root@caddy:~# systemctl restart php7.4-fpmSau đó các bạn thay cấu hình Caddyfile trong thư mục /etc/caddy thành như sau
caddy.manhtuong.net {
root * /home/caddy/web
php_fastcgi unix//run/php/php7.4-fpm.sock
file_server
log {
output file /home/caddy/caddy.manhtuong.net.log
}
}Nhớ thay caddy.manhtuong.net thành domain của bạn, lưu ý mấy cái thành phần mặc định như try_files hay index bạn không cần phải cấu hình mọi thứ nó tự nhận, chỉ cấu hình bạn cần thay đổi thông tin gì đó
sau đói reload lại caddy
root@caddy:~# systemctl reload caddyKết quả chúng ta sẽ được một web ở đây mình để file php info để test

II: Kết Luận
Với cách triển khai với php này mình thấy nó đơn giản hơn so với nginx rất nhiều và bạn có thể dùng nó để triển khai mọi ứng dụng web php của mình một cách khá đơn giản và nhanh