在Ubuntu上配置PHP安全設置可從以下方面入手:
更新系統與軟件包
sudo apt update && sudo apt upgrade -y
配置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
優化Web服務器配置
mod_security
防火墻模塊sudo apt install libapache2-mod-security2
sudo a2enmod security2
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php{version}-fpm.sock;
}
強化PHP-FPM安全(若使用)
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
系統級安全加固
sudo ufw allow 'Nginx Full'
sudo ufw enable
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 {} \;
其他安全措施
/var/log/php_errors.log
)具體配置需根據實際環境調整,修改后重啟服務生效:
sudo systemctl restart apache2 # Apache
sudo systemctl restart nginx # Nginx
sudo systemctl restart php{version}-fpm # PHP-FPM