温馨提示×

ubuntu thinkphp权限怎么设

小樊
46
2026-09-25 20:22:04
栏目: 编程语言

在 Ubuntu + ThinkPHP 环境下,权限设置主要围绕 目录可写性、Web 用户归属、安全策略 来做。下面按常见场景说明。


一、确认 Web 运行用户

Ubuntu 常见 Web 服务:

  • Apache:www-data
  • Nginx + PHP-FPM:通常是 www-data

查看当前 PHP 运行用户:

ps aux | grep php-fpm

或

ps aux | grep apache

二、ThinkPHP 必须可写目录

ThinkPHP(以 6.x / 8.x 为例)需要写权限的目录:

runtime/
public/uploads/   (如果你有上传)
storage/          (某些版本)

推荐权限设置

sudo chown -R www-data:www-data /var/www/your_project
sudo chmod -R 755 /var/www/your_project
sudo chmod -R 775 runtime
sudo chmod -R 775 public/uploads

775 比 777 安全,避免被其他用户篡改


三、最常见正确做法(推荐)

cd /var/www/your_project

# 修改所有者为 web 用户
sudo chown -R www-data:www-data .

# 目录权限
find . -type d -exec chmod 755 {} \;

# 文件权限
find . -type f -exec chmod 644 {} \;

# 可写目录单独处理
chmod -R 775 runtime
chmod -R 775 public/uploads

四、如果用了 Git / 命令行部署

你自己是 ubuntu 用户,Web 是 www-data,可以加到同一组:

sudo usermod -aG www-data ubuntu
sudo chown -R www-data:www-data /var/www/your_project
sudo chmod -R 775 runtime

重新登录后生效。


五、Apache 额外注意

如果用了 .htaccess:

sudo a2enmod rewrite
sudo service apache2 restart

并确认:

AllowOverride All

六、Nginx 注意

Nginx 本身不执行 PHP,需确认:

location ~ \.php$ {
    include fastcgi_params;
    fastcgi_pass unix:/run/php/php8.1-fpm.sock;
}

并且 php-fpm 用户是 www-data


七、不要做的事 ❌

  • ❌ chmod -R 777(极不安全)
  • ❌ 把 config、.env 设为可写
  • ❌ 把项目放在 /home/ubuntu 下直接用

八、快速排查权限问题

sudo tail -f /var/log/apache2/error.log
# 或
sudo tail -f /var/log/nginx/error.log
sudo tail -f /var/www/your_project/runtime/log/*

如果你告诉我:

  • ThinkPHP 版本(5.1 / 6 / 8)
  • Web 服务(Apache / Nginx)
  • 报错信息

我可以直接给你精确命令。

0 踩