温馨提示×

debianphp权限如何设置

小樊
43
2026-10-02 04:09:38
栏目: 编程语言

在 Debian 下设置 PHP 权限,通常要分清 Web 服务器用户、PHP 运行方式、文件目录权限 这三块。下面按常见场景说明。


一、确认 PHP 运行方式(很重要)

1. Apache + mod_php

PHP 以 www-data 用户运行。

ps aux | grep apache
# 或
ps aux | grep www-data

2. Apache/Nginx + PHP-FPM

PHP 以 www-data(默认)或你配置的 pool 用户运行。

ps aux | grep php-fpm

✅ Debian 默认 Web 用户是:

www-data

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

假设网站目录:

/var/www/html

1. 设置所有者

推荐方式(安全):

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

或(开发环境):

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

2. 设置目录和文件权限

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

# 文件
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

⚠️ 不建议使用 777,除非临时调试。


四、PHP 写文件报错常见原因

1. Permission denied

说明 PHP 用户无写权限。

解决:

sudo chown -R www-data:www-data 目录
sudo chmod -R 775 目录

2. open_basedir 限制

php.ini 中:

open_basedir = /var/www/html

五、SELinux / AppArmor(Debian 一般是 AppArmor)

Debian 默认 不启用 SELinux,但可能有 AppArmor。

检查:

sudo aa-status

如不影响,一般无需处理。


六、Laravel / ThinkPHP / WordPress 示例

WordPress

sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 755 /var/www/html
sudo chmod 664 /var/www/html/wp-config.php

Laravel

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

七、调试技巧

# 查看当前 PHP 用户
php -r 'echo exec("whoami");'

# 查看文件权限
ls -l /var/www/html

如果你能告诉我:

  • 用的是 Apache 还是 Nginx
  • PHP 版本
  • 是 Laravel / WordPress / 原生 PHP

我可以给你一套精准权限方案。

0 踩