Caddy 是一款現(xiàn)代化的 Web 服務(wù)器,它相比傳統(tǒng)的 Nginx 和 Apache 更加易用且功能更加強大。其中一個 Caddy 的特色就是自帶了解析 PHP 的插件,使得搭建 PHP 環(huán)境變得異常簡單,無需再像傳統(tǒng) Web 服務(wù)器一樣繁瑣地配置。接下來我們將詳細介紹如何使用 Caddy 解析 PHP。
首先,我們需要在 Caddyfile 中加入以下配置:
example.com { root /path/to/root php_fastcgi unix//var/run/php/php7.3-fpm.sock }
其中 example.com 是你的域名,root 是你的網(wǎng)站根目錄路徑,php_fastcgi 是解析 PHP 的配置。Caddy 內(nèi)置的 php_fastcgi 插件將會通過 Unix 套接字(unix socket)與 PHP-FPM 進程通訊解析 PHP 文件。
為了體現(xiàn)效果,我們在網(wǎng)站根目錄下新建一個 index.php 文件并添加以下代碼:
<?php phpinfo(); ?>
然后,我們啟動 Caddy。在你的瀏覽器中訪問 yourdomain.com 可以看到 PHP 解析后的詳細信息頁面,這證明了我們的 PHP 解析已經(jīng)生效了。
當然,你可能已經(jīng)注意到了,Caddy 使用的是 Unix 套接字來解析 PHP 文件,而不是傳統(tǒng)的 TCP Socket。這樣做的好處有二:一是 Unix 套接字比 TCP Socket 更加快速,因為它省去了網(wǎng)絡(luò)協(xié)議棧的損耗;二是 Unix 套接字相對于 TCP Socket 更加安全,因為它只能在本機通過文件系統(tǒng)訪問,不會被惡意程序利用造成風險。
除了使用 Unix 套接字,你可能還可以使用 TCP Socket 將其與其他 Web 服務(wù)器無縫集成。例如,在我們正在使用 Nginx 并且已經(jīng)啟用了 FastCGI 的情況下,我們可以將 Caddy 在 localhos:9000 監(jiān)聽。
php_location /path/to/php.sock { fastcgi_pass localhost:9000; }
在 Nginx 的配置中引入上述配置即可將 PHP 解析交給 Caddy。
總的來說,使用 Caddy 解析 PHP 是一種非常方便的方式。無需再為繁瑣的配置問題頭疼,而可以專注于業(yè)務(wù)邏輯的實現(xiàn)。與傳統(tǒng)的解析方式相比,使用 Unix 套接字不僅更加高效、安全,而且也能夠讓你更加愉快地開發(fā)與部署。