在Linux上安裝PHP 8并進行安全加固是一個涉及多個步驟的過程。以下是一些關鍵步驟和建議:
首先,確保你的系統是最新的:
sudo apt update && sudo apt upgrade -y
你可以通過以下命令安裝PHP 8及其一些常用的擴展:
sudo apt install php8.0 php8.0-cli php8.0-fpm php8.0-mysql php8.0-json php8.0-opcache php8.0-mbstring php8.0-xml php8.0-gd php8.0-curl
編輯PHP的配置文件(通常是/etc/php/8.0/fpm/php.ini
或/etc/php/8.0/apache2/php.ini
),進行以下配置:
增加錯誤日志記錄,以便更好地監控錯誤:
error_log = /var/log/php8.0-fpm.log
禁用不必要的擴展:
; 禁用不必要的擴展
extension=php_bz2.so
extension=php_calendar.so
extension=php_ctype.so
extension=php_curl.so
extension=php_fileinfo.so
extension=php_ftp.so
extension=php_gettext.so
extension=php_iconv.so
extension=php_json.so
extension=php_ldap.so
extension=php_mysqli.so
extension=php_odbc.so
extension=php_pdo_mysql.so
extension=php_pgsql.so
extension=php_phar.so
extension=php_posix.so
extension=php_readline.so
extension=php_shmop.so
extension=php_simplexml.so
extension=php_soap.so
extension=php_sockets.so
extension=php_sysvmsg.so
extension=php_sysvsem.so
extension=php_sysvshm.so
extension=php_tokenizer.so
extension=php_xml.so
extension=php_xmlreader.so
extension=php_xmlwriter.so
禁用文件上傳:
file_uploads = Off
限制文件大小:
upload_max_filesize = 10M
post_max_size = 10M
禁用目錄列表:
disable_functions = ; 禁用目錄列表
; ...
dir
; ...
設置默認配置文件:
include_path = /usr/share/php/8.0
如果你使用Apache,編輯/etc/apache2/apache2.conf
或/etc/apache2/sites-available/000-default.conf
,添加以下內容:
<FilesMatch \.php$>
# 使用FastCGI處理PHP文件
SetHandler "proxy:unix:/var/run/php/php8.0-fpm.sock|fcgi://localhost"
</FilesMatch>
如果你使用Nginx,編輯/etc/nginx/sites-available/default
,添加以下內容:
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.0-fpm.sock;
}
如果啟用了SELinux,確保它處于 enforcing 模式:
sudo setenforce 1
安裝并配置AppArmor:
sudo apt install apparmor apparmor-utils -y
sudo aa-status
sudo aa-complain /etc/apparmor.d/usr.sbin.php8.0-fpm
定期更新系統和軟件包,以確保安全漏洞得到修復:
sudo apt update && sudo apt upgrade -y
配置防火墻以限制對服務器的訪問:
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https
sudo ufw enable
通過以上步驟,你可以有效地加固Linux上的PHP 8環境,提高系統的安全性。