在Ubuntu上配置PHP安全設置可以通過以下步驟進行:
首先,確保你的系統和所有軟件包都是最新的。使用以下命令更新系統:
sudo apt update
sudo apt upgrade
sudo apt install apache2 libapache2-mod-php
編輯Apache的配置文件 /etc/apache2/mods-enabled/php7.4.conf
(根據你的PHP版本調整),確保以下配置被添加或確認:
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
然后重啟Apache服務:
sudo systemctl restart apache2
php.ini
文件找到并編輯PHP的配置文件 php.ini
。這個文件通常位于 /etc/php/7.4/apache2/
目錄下(根據你的PHP版本調整路徑)。
disable_functions = exec, passthru, shell_exec, system, proc_open, popen, curl_exec, curl_multi_exec, parse_ini_file, show_source
upload_max_filesize = 2M
post_max_size = 8M
safe_mode = On
display_errors = Off
log_errors = On
error_reporting = E_ALL
expose_php = Off
php.ini
文件確保Apache使用你編輯的 php.ini
文件。這通常在Apache的配置文件中已經默認設置,但你可以通過以下命令確認:
apache2ctl -M | grep php7_module
在 php.ini
文件中禁用不必要的PHP模塊,以減少潛在的安全風險。例如:
extension=php_mysql.dll
mod_security
mod_security
是一個強大的Web應用防火墻模塊,可以幫助防止各種攻擊。你可以從 ModSecurity官網 下載并安裝它。
使用 ufw
(Uncomplicated Firewall)來限制對Web服務器的訪問:
sudo ufw allow 'Apache Full'
sudo ufw enable
定期檢查Apache和PHP的錯誤日志,以便及時發現并解決潛在的安全問題:
sudo tail -f /var/log/apache2/error.log
sudo tail -f /var/log/php7.4-fpm.log
為了加密客戶端和服務器之間的數據傳輸,使用SSL/TLS證書。你可以通過Let’s Encrypt免費獲取證書:
sudo apt install certbot python3-certbot-apache
sudo certbot --apache
保持系統和軟件的最新狀態,定期應用安全補?。?/p>
sudo apt update
sudo apt upgrade
遵循以上步驟,你可以顯著提高Ubuntu上PHP運行環境的安全性。請根據你的具體需求和環境調整配置。