温馨提示×

centos php配置权限怎么设

小樊
48
2026-10-08 17:31:47
栏目: 编程语言

在 CentOS 上配置 PHP 相关权限,通常主要涉及 文件/目录权限、PHP-FPM 运行用户、SELinux 和 Web 服务器(Nginx/Apache) 的协调。下面按常见场景说明。


一、确定 PHP 运行用户

1. PHP-FPM(最常见)

查看 PHP-FPM 配置:

vi /etc/php-fpm.d/www.conf

重点看:

user = apache
group = apache
; 或
user = nginx
group = nginx

✅ PHP 写文件时,使用的是这个用户


二、Web 目录权限设置(推荐方式)

假设网站目录是:

/var/www/html

1. 设置目录属主

chown -R nginx:nginx /var/www/html
# 或
chown -R apache:apache /var/www/html

2. 设置权限

chmod -R 755 /var/www/html

3. 可写目录单独设置

例如上传目录:

chmod -R 775 /var/www/html/uploads
chown -R nginx:nginx /var/www/html/uploads

三、PHP 需要写文件时的正确做法

❌ 不要直接 777 ✅ 推荐:

chown -R php用户:web用户 /path
chmod 775 /path

例如 PHP-FPM 是 apache,Web 是 nginx:

chown -R apache:nginx /var/www/html
chmod 775 /var/www/html

四、SELinux(CentOS 特有,非常重要)

1. 查看状态

getenforce

如果是 Enforcing,PHP 写文件可能失败。

2. 设置 Web 目录上下文

semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/html(/.*)?"
restorecon -Rv /var/www/html

3. 允许写(如上传)

setsebool -P httpd_unified 1

五、常见错误与解决

PHP 报错:

Permission denied

检查顺序:

  1. 文件属主是否是 PHP 用户
  2. 目录是否有 x 权限
  3. SELinux 是否阻止
  4. 是否用了 open_basedir

六、示例(Nginx + PHP-FPM)

useradd -r -s /sbin/nologin phpuser
chown -R phpuser:nginx /var/www/html
chmod 755 /var/www/html
chmod 775 /var/www/html/storage

www.conf:

user = phpuser
group = phpuser

如果你能告诉我:

  • CentOS 版本
  • Nginx 还是 Apache
  • PHP 版本
  • 具体报错信息

我可以直接给你一套可复制的命令。

0 踩