apache 支持 php 的常見方式是通過模塊或 fpm,但也可以使用 CGI 模式。一、確認(rèn) apache 已安裝并正常運(yùn)行,并啟用 cgi 模塊;二、準(zhǔn)備 php cgi 可執(zhí)行文件,如未安裝則需安裝 php-cgi 包;三、配置 apache 啟用 php cgi,在站點(diǎn)配置中添加目錄權(quán)限、處理程序及 php-cgi 路徑,并重啟 apache;四、測試 php 是否正常工作,創(chuàng)建 info.php 文件訪問測試頁面,確認(rèn) cgi 模式生效。整個(gè)過程需注意路徑、權(quán)限和模塊加載情況。
Apache 要支持 PHP,最常見的方式不是用 CGI,而是通過模塊(如 mod_php)或 FPM 來處理。但如果你確實(shí)需要用 CGI 模式運(yùn)行 PHP,比如出于調(diào)試、學(xué)習(xí)或者特定環(huán)境需求,那也是可以實(shí)現(xiàn)的。下面分步驟說說怎么配置。
一、確認(rèn) Apache 已安裝并正常運(yùn)行
在開始之前,先確保你的 Apache 是正常工作的。你可以執(zhí)行:
sudo apachectl status
如果看到類似 Apache Server Status 的頁面,說明 Apache 正在運(yùn)行。
立即學(xué)習(xí)“PHP免費(fèi)學(xué)習(xí)筆記(深入)”;
如果沒有啟動(dòng),可以用:
sudo apachectl start
另外,記得檢查一下 Apache 是否啟用了 CGI 模塊。一般這個(gè)模塊是 mod_cgi 或者 mod_cgid。可以通過以下命令查看是否加載了:
sudo apachectl -M | grep cgi
如果沒看到輸出,可能需要手動(dòng)啟用它,在配置文件中取消注釋或添加:
LoadModule cgi_module modules/mod_cgi.so
具體路徑根據(jù)你系統(tǒng)實(shí)際來定。
二、準(zhǔn)備 PHP CGI 可執(zhí)行文件
要使用 CGI 模式運(yùn)行 PHP,你需要一個(gè)可執(zhí)行的 PHP-CGI 程序。如果你已經(jīng)安裝了 PHP,可以用這個(gè)命令看看有沒有:
which php-cgi
如果沒有的話,可以根據(jù)系統(tǒng)安裝對應(yīng)的包。例如在 Ubuntu 上:
sudo apt install php-cgi
裝好后,再次確認(rèn)路徑是否存在。
三、配置 Apache 啟用 PHP CGI
接下來就是在 Apache 配置里加上對 PHP 的 CGI 支持。這里以虛擬主機(jī)為例,也可以直接加到全局配置中。
編輯你的站點(diǎn)配置文件,比如:
sudo nano /etc/apache2/sites-available/000-default.conf
在里面加入如下內(nèi)容:
<Directory "/var/www/html"> Options +ExecCGI AddHandler cgi-script .php DirectoryIndex index.php index.html </Directory>
這表示允許在這個(gè)目錄下執(zhí)行 .php 文件作為 CGI 腳本。
然后設(shè)置 PHP-CGI 的路徑。可以在同一個(gè)
ScriptAlias /php/ /usr/bin/ Action application/x-httpd-php /php/php-cgi AddType application/x-httpd-php .php
注意 /usr/bin/ 這個(gè)路徑要根據(jù)你實(shí)際的 php-cgi 所在位置調(diào)整。
最后別忘了重啟 Apache:
sudo systemctl restart apache2
四、測試 PHP 是否正常工作
在網(wǎng)站根目錄下新建一個(gè) info.php 文件:
<?php phpinfo(); ?>
訪問 https://www.php.cn/link/a07e2052b13d602da6022e533f3bed3d PHP 的信息頁,說明 CGI 模式已經(jīng)生效了。
不過要注意的是,PHP-CGI 模式性能不如 PHP-FPM,而且每次請求都會(huì)啟動(dòng)一個(gè)新進(jìn)程,效率相對低一些,適合開發(fā)或小流量場景。
基本上就這些。整個(gè)過程不算復(fù)雜,但有些細(xì)節(jié)容易忽略,比如權(quán)限、路徑是否正確、模塊是否啟用等。只要一步步來,問題不大。