发布于2026-06-30 阅读(0)
扫一扫,手机访问
在Linux生态圈里,Debian一直是个可靠的选择。说到在上面跑PHP,虽然步骤不算复杂,但有些细节一旦疏忽,后续排查起来还挺折腾。下面把这些配置要点掰开揉碎说一下。
在正式动手配置PHP之前,第一步往往是先把系统基础打牢。更新包列表、升级已安装的软件包,这是避免版本冲突的老规矩了。

sudo apt update && sudo apt upgrade -y
这一步看似简单,却是后面所有操作顺利进行的基石,别跳过。
PHP的版本选择得看项目需求,目前8.2是比较常用的稳定版。除了核心程序,一系列扩展也要一并装上,数据库、JSON、XML、加密、图像处理这些功能最好一次到位。
sudo apt install php8.2 php8.2-cli php8.2-fpm php8.2-mysql php8.2-curl php8.2-gd php8.2-mbstring php8.2-xml php8.2-zip php8.2-bcmath -y
拆开来看:php8.2是主程序,php8.2-cli负责命令行模式,php8.2-fpm是FastCGI进程管理器,搭配Nginx使用效果最好。至于扩展,php8.2-mysql管数据库,php8.2-gd处理图像,php8.2-mbstring应对多字节字符串,php8.2-xml负责XML解析——这些都是实际项目里大概率会用到的。
PHP的配置文件分两套:命令行模式用/etc/php/8.2/cli/php.ini,Web服务器模式则根据你用的服务,是/etc/php/8.2/fpm/php.ini还是/etc/php/8.2/apache2/php.ini。场景不同,调整方向也不同。几个关键配置项值得重点关注。
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
display_errors = Off
log_errors = On
error_log = /var/log/php_errors.log
memory_limit = 256M
max_execution_time = 30
upload_max_filesize = 10M
post_max_size = 12M
date.timezone = "Asia/Shanghai"
opcache.enable = 1
opcache.memory_consumption = 128
opcache.max_accelerated_files = 10000
所有配置改完之后,记得重启PHP服务,否则修改不会生效。
如果用Nginx做Web服务器,PHP-FPM就是中间人。它的配置文件在/etc/php/8.2/fpm/pool.d/www.conf,几个参数需要根据服务器硬件和业务量来调整。
listen = /run/php/php8.2-fpm.sock
; listen = 127.0.0.1:9000
www-data。listen.owner = www-data
listen.group = www-data
user = www-data
group = www-data
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 10
改完这些,别忘了重启PHP-FPM:
sudo systemctl restart php8.2-fpm
这是让PHP真正跑起来的关键一步。不管用Nginx还是Apache,都有对应的配置方式。
在Nginx的站点配置文件(比如/etc/nginx/sites-a vailable/default)里,需要把PHP处理逻辑加进去。核心就是让Nginx把.php结尾的请求交给PHP-FPM处理。
server {
listen 80;
server_name example.com;
root /var/www/html;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~ /.ht {
deny all;
}
}
配置完重启Nginx:
sudo systemctl restart nginx
如果偏向使用Apache,操作更直接。先启用PHP模块:
sudo a2enmod php8.2
sudo systemctl restart apache2
然后编辑虚拟主机配置,加入处理指令:
SetHandler "proxy:unix:/run/php/php8.2-fpm.sock|fcgi://localhost"
最后重启Apache:
sudo systemctl restart apache2
服务器上线前,安全措施必须到位。这几点往往是新手容易忽略的。
exec、system这类函数,普通应用几乎用不到,但一旦被恶意利用,后果很严重。disable_functions = exec, system, passthru, shell_exec, popen
open_basedir把PHP的活动范围圈定在站点目录内,防止越权访问。open_basedir = /var/www/html/
sudo ufw allow 'Nginx Full'
sudo ufw enable
配置完了,总得验证一下才放心。在站点根目录下创建一个info.php文件,内容就一行:
用浏览器访问http://你的服务器IP/info.php,如果能看到PHP的信息页面,说明一切正常。不过需要提醒的是,测试完成后务必删除这个文件——phpinfo()暴露的信息太详细,对生产环境来说无异于“裸奔”。
上一篇:dumpcap如何进行故障排查
下一篇:Debian中PHP安全如何设置
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8