在开始配置前,确保系统软件包列表是最新的,避免因版本冲突导致安装失败:
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服务器配置(如虚拟主机设置)。