在開始配置前,確保系統軟件包列表是最新的,避免因版本沖突導致安裝失?。?/p>
sudo apt update && sudo apt upgrade -y
根據需求選擇PHP版本(如最新穩定版或特定版本),并安裝核心組件與常用擴展:
sudo apt install php php-cli php-fpm php-json php-common php-mysql php-zip php-gd php-mbstring php-curl php-xml php-bcmath
apt-cache policy php7.4
確認版本可用性,再執行:sudo apt install php7.4 php7.4-cli php7.4-fpm php7.4-mysql php7.4-gd php7.4-mbstring
編輯PHP配置文件(分命令行模式與FPM模式),調整關鍵參數以適應服務器環境:
/etc/php/{version}/cli/php.ini
):error_reporting
、display_errors
(生產環境建議關閉)。/etc/php/{version}/fpm/php.ini
):memory_limit = 256M # 增加腳本內存限制
upload_max_filesize = 10M # 允許上傳文件最大大小
post_max_size = 10M # POST數據最大大小
cgi.fix_pathinfo=0 # 禁用pathinfo解析(提升安全性)
修改后保存,通過php -v
確認PHP版本,確保配置生效。若采用Nginx作為Web服務器,需通過PHP-FPM處理PHP請求,編輯FPM池配置文件(/etc/php/{version}/fpm/pool.d/www.conf
):
listen
指令,設置為Unix套接字(推薦)或TCP端口:listen = /run/php/php{version}-fpm.sock # Unix套接字(更安全)
# listen = 127.0.0.1:9000 # TCP端口(適用于遠程連接)
listen.owner
與listen.group
設置為Web服務器用戶(通常為www-data
):listen.owner = www-data
listen.group = www-data
修改后重啟PHP-FPM服務:
sudo systemctl restart php{version}-fpm
根據使用的Web服務器(Apache/Nginx),調整配置以支持PHP解析:
Nginx配置(編輯/etc/nginx/sites-available/default
):
添加以下location
塊處理PHP請求,關聯PHP-FPM:
server {
listen 80;
server_name your_domain_or_ip;
root /var/www/html;
index index.php index.html;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf; # 引入FastCGI配置
fastcgi_pass unix:/run/php/php{version}-fpm.sock; # 與PHP-FPM的listen指令一致
}
location ~ /\.ht {
deny all; # 禁止訪問.htaccess文件
}
}
測試Nginx配置語法并重啟:
sudo nginx -t && sudo systemctl restart nginx
Apache配置(編輯/etc/apache2/sites-available/000-default.conf
):
啟用PHP模塊并配置PHP處理:
sudo a2enmod proxy_fcgi setenvif # 啟用必要模塊
sudo systemctl restart apache2
編輯虛擬主機配置,添加以下內容:
<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php/php{version}-fpm.sock|fcgi://localhost"
</FilesMatch>
重啟Apache服務:
sudo systemctl restart apache2
在Web服務器根目錄(/var/www/html
)創建info.php
文件,驗證PHP是否正常運行:
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
在瀏覽器中訪問http://your_server_ip/info.php
,若看到PHP詳細信息頁面(包含版本、模塊列表等),則說明配置成功。
info.php
以避免泄露服務器信息:sudo rm /var/www/html/info.php
以上步驟覆蓋了Debian下PHP配置的核心流程,可根據實際需求調整擴展安裝(如php-opcache
提升性能)或Web服務器配置(如虛擬主機設置)。