温馨提示×

centos php怎样调安全参数

小樊
48
2026-09-02 18:35:17
栏目: 编程语言

在 CentOS 上调 PHP 安全参数,通常是通过修改 php.ini 配置文件来完成的。下面按“找配置 → 改参数 → 生效 → 验证”的流程说明,并列出常见安全参数。


一、找到 php.ini 位置

1. 查看当前使用的 php.ini

php --ini

php -i | grep "Loaded Configuration File"

常见路径:

  • CentOS 7 + PHP 7.x(Remi/Yum):
    • /etc/php.ini
    • /etc/php.d/*.ini
  • PHP-FPM:
    • /etc/php-fpm.conf
    • /etc/php-fpm.d/www.conf

二、常用 PHP 安全参数(php.ini)

编辑文件:

vi /etc/php.ini

1. 关闭错误信息暴露

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

2. 禁止危险函数

disable_functions = exec,passthru,shell_exec,system,proc_open,popen,phpinfo

视业务需求调整,不要误禁业务函数

3. 关闭远程文件包含

allow_url_fopen = Off
allow_url_include = Off

4. 限制文件上传

file_uploads = On
upload_max_filesize = 2M
post_max_size = 8M

5. 限制脚本执行时间

max_execution_time = 30
max_input_time = 60
memory_limit = 128M

6. 关闭 expose_php

expose_php = Off

7. 会话安全(重要)

session.cookie_httponly = 1
session.cookie_secure = 1   ; 仅 HTTPS
session.use_strict_mode = 1

三、PHP-FPM 安全(如使用了 php-fpm)

编辑:

vi /etc/php-fpm.d/www.conf

1. 以普通用户运行

user = www
group = www

2. 限制访问

listen = /run/php-fpm/www.sock
listen.owner = www
listen.group = www
listen.mode = 0660

四、使配置生效

PHP CLI

无需重启,直接生效

PHP-FPM

systemctl restart php-fpm

Apache + mod_php

systemctl restart httpd

Nginx + php-fpm

systemctl restart nginx php-fpm

五、验证是否生效

php -i | grep "disable_functions"
php -i | grep "expose_php"

六、额外安全建议(CentOS 层面)

  • SELinux(enforcing 模式)
  • 文件权限:
    chown -R www:www /var/www/html
    chmod -R 755 /var/www/html
    
  • 定期更新:
    yum update php*
    

如果你能告诉我:

  • CentOS 版本(7 / 8 / Stream)
  • PHP 运行方式(Apache / Nginx + FPM / CLI)

我可以给你更精确的一键配置示例

0