温馨提示×

ubuntu php怎样设置权限

小樊
42
2026-10-07 07:11:59
栏目: 编程语言

在 Ubuntu 上设置 PHP 相关权限,通常分为文件/目录权限、PHP 运行用户权限、Web 服务器权限三部分。下面按常见场景说明。


一、确认 PHP 运行用户

Ubuntu 常见两种情况:

1. Apache + PHP(mod_php)

运行用户通常是:

www-data

2. Nginx + PHP-FPM

PHP-FPM 运行用户也是:

www-data

查看用户:

ps aux | grep php-fpm
ps aux | grep apache

二、设置网站目录权限(最常见)

假设网站目录是:

/var/www/html

1. 修改目录所有者

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

2. 设置目录权限

sudo find /var/www/html -type d -exec chmod 755 {} \;

3. 设置文件权限

sudo find /var/www/html -type f -exec chmod 644 {} \;

三、可写目录权限(上传、缓存等)

例如:

/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

如果仍报错,可临时测试:

sudo chmod -R 777 /var/www/html/storage

(生产环境不推荐 777)


四、用户自己管理文件(推荐做法)

如果你用普通用户 ubuntu 维护代码:

sudo chown -R ubuntu:www-data /var/www/html
sudo chmod -R 750 /var/www/html
sudo chmod -R 770 /var/www/html/storage

这样:

  • 你可以编辑
  • PHP(www-data)可运行/写入

五、PHP 写文件失败常见原因

  1. 目录不是 www-data 可写
  2. SELinux(Ubuntu 默认关闭,一般不是问题)
  3. PHP 配置限制:
open_basedir
disable_functions

检查:

php -i | grep open_basedir

六、示例(Laravel 项目)

sudo chown -R www-data:www-data /var/www/laravel
sudo chmod -R 755 /var/www/laravel
sudo chmod -R 775 /var/www/laravel/storage
sudo chmod -R 775 /var/www/laravel/bootstrap/cache

如果你能告诉我:

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

我可以给你更精确的一条命令配置。

0 踩