温馨提示×

ubuntu php怎样设权限

小樊
36
2026-09-22 15:30:44
栏目: 编程语言

在 Ubuntu 上给 PHP(通常是 PHP-FPM / Apache + PHP)设置权限,核心问题是 “让 Web 服务器能读/写文件,同时系统安全”。下面按常见场景说明。


一、先弄清你用的是哪种 PHP 运行方式

1. Apache + mod_php

  • PHP 以 www-data 用户运行
  • 用户:www-data
  • 组:www-data

2. Nginx / Apache + PHP-FPM

  • PHP-FPM 进程用户(常见)
ps aux | grep php-fpm

一般也是:

  • 用户:www-data
  • 组:www-data

二、网站目录推荐权限(最常用)

假设网站目录是:

/var/www/html

1. 设置所有者(推荐)

sudo chown -R www-data:www-data /var/www/html

2. 设置目录和文件权限

# 目录 755
find /var/www/html -type d -exec chmod 755 {} \;

# 文件 644
find /var/www/html -type f -exec chmod 644 {} \;

✅ 这是 最安全、最标准 的权限设置


三、需要 PHP 写入的目录(如上传、缓存)

例如:

/var/www/html/storage
/var/www/html/uploads
sudo chown -R www-data:www-data /var/www/html/storage
sudo chmod -R 775 /var/www/html/storage

⚠️ 不要用 777,非常不安全


四、你自己的用户也要能改文件(开发常用)

如果你用自己账号(如 ubuntu)改代码:

方法 1:加入 www-data 组(推荐)

sudo usermod -aG www-data ubuntu

注销重登后:

sudo chown -R ubuntu:www-data /var/www/html
sudo chmod -R 775 /var/www/html

五、PHP 文件本身权限

PHP 文件不需要可执行权限:

chmod 644 index.php

六、常见错误排查

1. 上传文件失败

sudo chown -R www-data:www-data uploads
sudo chmod -R 775 uploads

2. Permission denied

看错误日志:

# Nginx
/var/log/nginx/error.log

# Apache
/var/log/apache2/error.log

# PHP-FPM
/var/log/php*-fpm.log

七、一句话总结

Web 目录:755 / 644
可写目录:775 + www-data
永远不要 777

如果你告诉我:

  • 用的 Nginx 还是 Apache
  • PHP 版本
  • 具体报错

我可以给你更精确的命令。

0