在Ubuntu上安全设置PHP-FPM涉及多个步骤,包括安装、配置、优化以及安全加固。以下是一个详细的指南:
首先,确保你的系统是最新的:
sudo apt update
sudo apt upgrade
然后,安装PHP和PHP-FPM:
sudo apt install php-fpm php-mysql
编辑PHP-FPM的配置文件,通常位于/etc/php/版本号/fpm/php.ini
或/etc/php-fpm.conf
。以下是一些关键配置选项:
listen
: 设置PHP-FPM监听的地址和端口。建议使用Unix套接字以提高安全性:
listen = unix:/var/run/php/php7.4-fpm.sock
user
和 group
: 设置PHP-FPM运行的用户和组,通常使用www-data
:
user = www-data
group = www-data
pm.max_children
: 设置最大子进程数,根据服务器的内存和预期负载进行调整。
pm.start_servers
: 设置启动时的子进程数。
pm.min_spare_servers
和 pm.max_spare_servers
: 设置空闲子进程池的最小和最大数量。
request_terminate_timeout
: 设置单个请求的超时时间,防止长时间运行的脚本占用资源。
编辑Nginx的配置文件,通常位于/etc/nginx/nginx.conf
或/etc/nginx/sites-available/default
。确保PHP文件的处理配置正确:
server {
listen 80;
server_name yourdomain.com;
root /var/www/html;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
}
替换yourdomain.com
为你的域名。
修改默认端口:默认的SSH端口22容易被攻击,修改SSH端口并禁用密码登录:
sudo nano /etc/ssh/sshd_config
找到Port
并修改为非标准端口,例如2222。然后禁用密码登录:
PasswordAuthentication no
重启SSH服务:
sudo systemctl restart sshd
使用防火墙:使用ufw
限制对PHP-FPM端口的访问:
sudo ufw allow 'Nginx Full'
禁用不必要的PHP模块:在编译PHP时,禁用不需要的扩展以减少攻击面。
定期更新和监控:定期更新PHP和PHP-FPM到最新版本,并监控日志文件以发现潜在的安全问题。
使用PHP-FPM状态页面:如果配置了状态页面,可以通过浏览器访问http://yourdomain.com/status
来监控PHP-FPM的状态。
以上步骤可以帮助你在Ubuntu上安全地设置PHP-FPM。根据具体需求和环境,可能还需要进一步调整和优化。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>