在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环境,提高系统的安全性。