在Ubuntu上设置PHP的安全性是非常重要的,以下是一些关键的安全设置步骤和最佳实践:
确保系统和所有软件包都是最新的,以防止已知的安全漏洞。
sudo apt update
sudo apt upgrade
安装一些必要的依赖包,如 software-properties-common
。
sudo apt install software-properties-common
使用官方PPA安装PHP及其常用扩展,如 php-mysql
、php-xml
、php-curl
等。
sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install php php-cli php-fpm php-mysql php-xml php-curl
编辑PHP配置文件 php.ini
,进行以下设置:
expose_php
指令。allow_url_fopen
和 allow_url_include
指令。eval()
、exec()
等。expose_php = Off
allow_url_fopen = Off
allow_url_include = Off
display_errors = Off
log_errors = On
error_log = /var/log/php_scripts_error.log
max_execution_time = 30
max_input_time = 30
memory_limit = 30M
确保已启用PHP模块并正确配置:
sudo a2enmod php7.x
sudo systemctl restart apache2
在Nginx配置文件中设置PHP-FPM处理PHP文件:
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.x-fpm.sock;
}
eval()
、preg_replace()
等。open_basedir
指令限制PHP只能访问指定目录下的文件。sudo chown www-data:www-data /path/to/your/php/applications
sudo chmod -R 755 /path/to/your/php/application
sudo apt update
sudo apt upgrade php*
sudo apt install certbot python3-certbot-apache
sudo certbot --apache
mod_security
和 Fail2Ban
等安全模块来增强安全性。sudo apt install libapache2-mod-security2
sudo a2enmod security2
sudo apt install fail2ban
sudo cp /etc/fail2ban/jail.local /etc/fail2ban/jail.local.local
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
通过上述措施,可以显著提高Ubuntu系统上PHP运行环境的安全性,帮助管理员有效地防范常见的网络攻击和安全威胁。