温馨提示×

Debian PHP安全如何设置

小樊
52
2026-07-17 10:15:10
栏目: 编程语言

在 Debian 上做好 PHP 安全设置,通常从 系统层面 + PHP 配置 + Web 服务器 + 应用层 四个方面入手。下面给你一套实战向的安全配置指南(适用于 Debian 10/11/12,PHP 7.4 / 8.x)。


一、系统与软件层面

1. 仅安装必要的 PHP 模块

apt update
apt install php php-fpm

不要一次性全装,按需安装:

apt install php-mysql php-curl php-xml php-mbstring php-zip

查看已安装模块:

php -m

2. 使用 PHP-FPM(推荐)

mod_php 更安全、性能更好。

systemctl status php8.2-fpm

确认运行用户:

ps aux | grep php-fpm

默认:

  • 用户:www-data
  • 池配置:/etc/php/8.2/fpm/pool.d/www.conf

二、PHP 核心安全配置(重点)

配置文件位置:

/etc/php/8.2/fpm/php.ini

1. 关闭错误显示(生产环境)

display_errors = Off
log_errors = On
error_log = /var/log/php_errors.log

2. 限制可访问目录(open_basedir)

open_basedir = /var/www/html:/tmp

防止 PHP 访问系统敏感目录


3. 禁用危险函数

disable_functions = exec,passthru,shell_exec,system,proc_open,popen,curl_exec,dl,show_source

根据业务可适度放宽


4. 关闭文件上传(如不需要)

file_uploads = Off

如需上传:

file_uploads = On
upload_max_filesize = 2M
post_max_size = 2M

5. 关闭远程代码执行

allow_url_fopen = Off
allow_url_include = Off

6. 限制 PHP 信息泄露

expose_php = Off

7. Session 安全

session.cookie_httponly = 1
session.cookie_secure = 1
session.use_strict_mode = 1
session.use_only_cookies = 1

三、PHP-FPM 安全配置

编辑池配置:

/etc/php/8.2/fpm/pool.d/www.conf

1. 以独立用户运行(推荐)

user = www-data
group = www-data

高级方案(多站点):

user = site1
group = site1
listen.owner = www-data
listen.group = www-data

2. 限制 FPM 监听

listen = /run/php/php8.2-fpm.sock
listen.mode = 0660

⚠️ 不要直接暴露 FPM 到公网端口


四、Web 服务器安全(Nginx / Apache)

Nginx 示例(安全)

location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php8.2-fpm.sock;

    # 禁止执行上传目录中的 PHP
    location ~* /uploads/.*\.php$ {
        deny all;
    }
}

Apache

<Directory /var/www/html>
    Options -ExecCGI -Indexes
    AllowOverride None
</Directory>

五、文件与权限安全

1. 网站目录权限

chown -R www-data:www-data /var/www/html
chmod -R 755 /var/www/html

禁止 PHP 写核心文件

chmod 444 config.php

2. 上传目录禁止执行

chmod 755 uploads

Nginx/Apache 层再次限制执行。


六、日志与监控

1. PHP 错误日志

touch /var/log/php_errors.log
chown www-data:www-data /var/log/php_errors.log

2. 查看异常

tail -f /var/log/php_errors.log

七、应用层安全(非常重要)

  • ✅ 使用 PDO + 预处理 防 SQL 注入
  • ✅ 输出使用 htmlspecialchars()
  • ✅ 使用 CSRF Token
  • ✅ 使用强密码 + bcrypt
  • ✅ 定期更新框架和依赖

八、定期维护

apt update && apt upgrade

PHP 版本生命周期:

  • 使用 Debian stable 官方源
  • sury.org 源(谨慎)

九、安全自检清单 ✅

项目 状态
PHP 错误不显示
危险函数禁用
open_basedir 限制
FPM 运行非 root
上传目录不可执行
HTTPS + Secure Cookie

如果你愿意,我可以:

  • ✅ 按 Nginx / Apache 给你定制配置
  • ✅ 针对 WordPress / Laravel / ThinkPHP 做专项加固
  • ✅ 给你一份 Debian + PHP 安全基线脚本

只要告诉我你的 Web 架构 即可。

0