最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Ubuntu中PHP安全怎样配置
时间:2026-06-15 08:29:29 编辑:袖梨 来源:一聚教程网
Ubuntu中PHP安全配置指南

1. 更新系统与PHP版本
保持系统和PHP为最新版本是安全基础,可修复已知漏洞。运行以下命令更新系统及PHP相关包:
sudo apt update && sudo apt upgrade -y2. 配置PHP核心安全参数(php.ini)
2.1 错误报告设置
禁用详细错误显示(防止敏感信息泄露),开启日志记录:
display_errors = Offlog_errors = Onerror_log = /var/log/php_errors.log2.2 禁用危险函数
禁用可能被滥用的函数(如执行系统命令、文件操作等):
disable_functions = eval,exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec2.3 限制文件上传
约束上传文件大小,防止恶意文件上传攻击:
file_uploads = Onupload_max_filesize = 2M# 单个文件最大2MBpost_max_size = 8M# POST数据最大8MB2.4 目录访问控制
用open_basedir限制PHP脚本可访问的目录(避免跨目录攻击):
open_basedir = /var/www/html:/tmp# 仅允许访问网站根目录和临时目录2.5 会话安全配置
增强会话安全性,防止会话劫持:
session.cookie_httponly = On# 禁止JavaScript访问会话cookiesession.cookie_secure = On# 仅通过HTTPS传输会话cookiesession.cookie_samesite = Strict# 限制跨站请求携带cookiesession.gc_maxlifetime = 1440 # 会话有效期1440秒(24分钟)2.6 隐藏PHP版本信息
避免泄露PHP版本,减少针对性攻击:
expose_php = Off2.7 启用OPcache
提升性能的同时,减少源码暴露风险:
[opcache]zend_extension=opcache.soopcache.enable=1opcache.memory_consumption=128opcache.interned_strings_buffer=8opcache.max_accelerated_files=4000opcache.revalidate_freq=603. Web服务器安全配置
3.1 Apache配置
- 禁用服务器版本信息泄露:在
/etc/apache2/conf-enabled/security.conf中添加:ServerTokens ProdServerSignature Off - 启用
mod_security(Web应用防火墙):sudo apt install libapache2-mod-security2sudo a2enmod security2sudo systemctl restart apache2
3.2 Nginx配置
- 使用PHP-FPM处理PHP请求(
/etc/nginx/sites-available/default):location ~ .php$ {include snippets/fastcgi-php.conf;fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;# 根据PHP版本调整fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;}
4. 文件与目录权限管理
确保网站目录权限正确,避免未授权访问:
sudo chown -R www-data:www-data /var/www/html# 网站目录属主为www-datasudo chmod -R 755 /var/www/html# 目录权限755,文件权限6445. 安装安全模块
5.1 Fail2Ban
防止暴力破解(如SSH、Web登录):
sudo apt install fail2bansudo systemctl enable --now fail2ban5.2 ModSecurity
为Apache添加WAF防护(需提前安装libapache2-mod-security2):
sudo cp /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.confsudo sed -i 's/SecRuleEngine DetectionOnly/SecRuleEngine On/' /etc/modsecurity/modsecurity.confsudo systemctl restart apache26. 使用HTTPS加密
通过Let’s Encrypt获取免费SSL证书,强制HTTPS传输:
sudo apt install certbot python3-certbot-apache# Apache# 或 sudo apt install certbot python3-certbot-nginx# Nginxsudo certbot --apache -d yourdomain.com# 替换为你的域名sudo certbot renew --dry-run# 测试自动续期7. 定期维护与监控
- 定期更新:每周运行
sudo apt update && sudo apt upgrade -y,确保PHP及相关组件最新。 - 日志监控:使用
tail -f /var/log/php_errors.log实时查看PHP错误日志,或通过fail2ban监控暴力破解尝试。 - 代码审计:使用
PHPSA(PHP Security Advisories Checker)扫描代码,查找潜在安全漏洞:composer global require php-security/phpsaphpsa check /path/to/your/code
通过以上步骤,可全面加固Ubuntu环境下PHP的安全性,有效防范常见攻击(如SQL注入、XSS、文件上传漏洞等)。需根据实际业务场景调整配置(如上传文件大小、会话有效期等)。