在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運行環境的安全性,幫助管理員有效地防范常見的網絡攻擊和安全威脅。