CentOS下yum升级curl版本:CityFan/EPEL源添加与问题解决详解
本文深入解析CentOS系统中通过添加CityFan或EPEL yum源升级curl版本的具体步骤。详细涵盖repo文件创建、缓存清理、强制升级等操作,并提供依赖与网络问题的解决方案,确保curl版本顺利更新,提升系统功能与安全性。
支持通配符SSL证书、多域名证书、IP证书。适配ACME接口, 支持Zerossl、Let's Encrypt和Google等渠道。登录已有账号
2026-08-05 13:15:38 Nginx PHP-FPM 用户权限 CentOS
多站点跑在一台机器上,如果所有PHP进程都共用一个用户,某个站点出现漏洞被写shell,可能顺手就把其他站点的源码改了。隔离一下还是必要的。
这篇文章记录下在CentOS上用Nginx和PHP-FPM给每个站点配置独立的用户和组,让它们各跑各的。
要改动的地方其实就三处:系统用户和组、PHP-FPM的池配置、网站目录权限。
Nginx那边基本不用动它的运行用户,只要在虚拟主机里指定对应池子的socket就行。
涉及的配置文件,主配置在/etc/nginx/nginx.conf,里面user指令一般就默认nginx。PHP-FPM的全局配置是/etc/php-fpm.conf,不过我们主要动/etc/php-fpm.d/下面的站点池文件,每个站点一个.conf。
假设有两个站点,sitea和siteb,先创建各自的系统用户和组,不允许登录,不建家目录:
groupadd www-sitea
useradd -g www-sitea -s /sbin/nologin -M www-sitea
groupadd www-siteb
useradd -g www-siteb -s /sbin/nologin -M www-siteb
然后是PHP-FPM池配置,比如sitea的池文件/etc/php-fpm.d/sitea.conf:
[sitea]
user = www-sitea
group = www-sitea
listen = /var/run/php-fpm/sitea.sock
listen.owner = www-sitea
listen.group = www-sitea
listen.mode = 0660
siteb类似。这里listen.owner和listen.group指定socket文件的所有者,配合mode 0660,让同组的用户才能读写。Nginx一般是以nginx用户跑的,如果它不在www-sitea组里,按理说访问不到socket,但很多环境会把nginx用户加到各个站点的组里,或者使用0666。这里先按0660配,线上如果遇到Nginx连不上socket,后面常见问题会说到。
Nginx虚拟主机配置,在/etc/nginx/conf.d/sitea.conf里面,大致这样:
server {
listen 80;
server_name sitea.example.com;
root /var/www/sitea;
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/var/run/php-fpm/sitea.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
对应的站点目录权限得跟上:
chown -R www-sitea:www-sitea /var/www/sitea
chmod -R 750 /var/www/sitea
750意味着属主和属组有读写执行,其他用户无权限,PHP-FPM进程以www-sitea用户跑起来才能读写目录。
配置都写好之后,重启php-fpm和nginx:
systemctl restart php-fpm
systemctl restart nginx
验证这一套配得对不对,可以在站点根目录放个info.php,里面写:
<?php
phpinfo();
?>
通过浏览器访问,看环境信息里Server API是否为FPM/FastCGI,以及显示的用户名是不是www-sitea,对上了就没问题。再用ps aux | grep php-fpm能看到master进程和按池起的worker进程,用户列正是www-sitea或www-siteb;nginx worker还是以nginx用户跑,不受影响。
常见问题里,出现502 Bad Gateway最常见的两个原因,一个是PHP-FPM进程没权限读网站目录,另一个是socket文件权限不对。如果目录属主或权限没设对,PHP进程无法执行脚本,直接502,可以先去php-fpm的错误日志里看一眼。
如果Nginx日志里报连接socket被拒绝或权限拒绝,检查下socket文件本身权限,ls -l /var/run/php-fpm/sitea.sock,看属主和模式是不是660,属主组是否与listen.owner/listen.group一致。就算配对了,SELinux在Enforcing模式下也可能会拦,可以临时setenforce 0看看是不是它搞的鬼。确认是SELinux的话,可以调整上下文或者到/etc/selinux/config里永久改disabled。关掉不总是好习惯,但确实省事,线下环境我一般先关了再说。
这样一来,两个站点的PHP进程就各自隔离了,某个站点出问题不会轻易影响到其他站点代码。跑久了会发现,权限隔离这种小事,线上稳得很。
本文深入解析CentOS系统中通过添加CityFan或EPEL yum源升级curl版本的具体步骤。详细涵盖repo文件创建、缓存清理、强制升级等操作,并提供依赖与网络问题的解决方案,确保curl版本顺利更新,提升系统功能与安全性。
本文旨在为资深开发者提供Nginx反向代理的全面技术指南。从其工作原理、配置选项,到与宝塔面板的无缝集成,我们都将进行深入探讨。特别关注负载均衡、缓存机制、SSL卸载及故障排除策略,并提供生产级配置示例。助你全面掌握Nginx反向代理的精髓,优化系统架构。
本文详细探讨Nginx高并发处理能力瓶颈,重点剖析`worker_connections`参数的配置技巧。结合系统文件描述符限制与工作进程数调整,手把手教你如何突破Nginx并发上限,实现Web服务器稳定高效运行,确保用户访问体验流畅。
Nginx部署SSL证书需完成证书准备、配置修改、服务验证三阶段。核心步骤包括证书链合并、安全协议配置、HTTP强制跳转及服务重载。关键技术点涉及SSL模块验证、加密套件选择和防火墙配置。通过系统化的证书管理、严格的协议限制和自动化跳转机制,可实现网站从HTTP到HTTPS的安全升级。建议定期更新证书并优化加密参数,以应对不断演变的安全威胁。
Linux服务器SSL证书部署的全流程,包括证书准备、端口配置、Web服务器(Nginx/Apache)配置及验证方法。核心要点涵盖证书文件权限管理、443端口开放策略、TLS协议版本优化配置,以及常见部署问题的系统化排查方案。通过标准化配置模板和可视化排查表格,帮助运维人员快速完成HTTPS安全改造,有效提升网站安全防护能力。