温馨提示×

PHP安全设置Ubuntu上怎么做

小樊
54
2025-09-04 18:20:23
栏目: 编程语言

在Ubuntu上配置PHP安全设置可从以下方面入手:

  1. 更新系统与软件包

    sudo apt update && sudo apt upgrade -y  
    
  2. 配置php.ini关键参数

    • 错误报告:关闭详细错误显示,记录日志
      display_errors = Off  
      log_errors = On  
      error_log = /var/log/php_errors.log  
      
    • 文件上传限制
      upload_max_filesize = 2M  
      post_max_size = 8M  
      file_uploads = On  
      
    • 禁用危险函数
      disable_functions = system,exec,passthru,shell_exec,proc_open  
      
    • 限制目录访问
      open_basedir = /var/www/html:/tmp  
      
    • 会话安全
      session.cookie_secure = On  
      session.cookie_httponly = On  
      session.cookie_samesite = Strict  
      
  3. 优化Web服务器配置

    • Apache:启用mod_security防火墙模块
      sudo apt install libapache2-mod-security2  
      sudo a2enmod security2  
      
    • Nginx:限制PHP脚本访问路径
      location ~ \.php$ {  
          include snippets/fastcgi-php.conf;  
          fastcgi_pass unix:/run/php/php{version}-fpm.sock;  
      }  
      
  4. 强化PHP-FPM安全(若使用)

    • 以非root用户运行,配置Unix socket监听
      user = www-data  
      group = www-data  
      listen = /run/php/php{version}-fpm.sock  
      listen.owner = www-data  
      listen.group = www-data  
      
    • 限制进程数量与请求超时
      pm.max_children = 50  
      request_terminate_timeout = 30s  
      
  5. 系统级安全加固

    • 防火墙:使用UFW限制HTTP/HTTPS访问
      sudo ufw allow 'Nginx Full'  
      sudo ufw enable  
      
    • 文件权限:确保Web根目录与PHP文件权限正确
      sudo chown -R www-data:www-data /var/www/html  
      sudo chmod -R 755 /var/www/html  
      sudo find /var/www/html -type f -name "*.php" -exec chmod 644 {} \;  
      
  6. 其他安全措施

    • 启用HTTPS(需配置SSL证书)
    • 定期更新PHP及依赖库,修复漏洞
    • 监控日志文件(如/var/log/php_errors.log

具体配置需根据实际环境调整,修改后重启服务生效:

sudo systemctl restart apache2  # Apache  
sudo systemctl restart nginx    # Nginx  
sudo systemctl restart php{version}-fpm  # PHP-FPM  

0