温馨提示×

ubuntu thinkphp为何访问不了

小樊
46
2026-09-22 20:53:57
栏目: 编程语言

在 Ubuntu 上 ThinkPHP 访问不了,通常不是代码问题,而是环境或配置问题。下面按最常见原因 + 排查顺序给你说明,基本能解决 90% 的情况。


一、最常见问题(先看这个)

1️⃣ Apache / Nginx 没启动

# Apache
systemctl status apache2

# Nginx
systemctl status nginx

如果没启动:

sudo systemctl start apache2
# 或
sudo systemctl start nginx

2️⃣ 站点根目录不对(很多人错在这)

ThinkPHP 必须指向 public 目录

✅ 正确:

/var/www/html/project/public

❌ 错误:

/var/www/html/project

二、Apache 情况(最常见)

3️⃣ 没开启 rewrite(伪静态)

ThinkPHP 路由依赖 mod_rewrite

sudo a2enmod rewrite
sudo systemctl restart apache2

4️⃣ AllowOverride 没开

编辑 Apache 配置:

sudo nano /etc/apache2/sites-enabled/000-default.conf

确保有:

<Directory /var/www/html/project/public>
    AllowOverride All
</Directory>

然后:

sudo systemctl restart apache2

三、Nginx 情况

5️⃣ 没配置 ThinkPHP 伪静态

Nginx 必须加:

location / {
    try_files $uri $uri/ /index.php$is_args$args;
}

改完:

sudo nginx -t
sudo systemctl restart nginx

四、权限问题(非常重要)

6️⃣ 目录权限不对

sudo chown -R www-data:www-data /var/www/html/project
sudo chmod -R 755 /var/www/html/project

五、ThinkPHP 自身问题

7️⃣ 环境不满足

php -v

要求:

  • PHP ≥ 7.2(TP5)
  • PHP ≥ 7.4(TP6)

8️⃣ 报错但页面空白

开启调试:

// .env
APP_DEBUG = true

或:

define('APP_DEBUG', true);

六、快速自检清单 ✅

检查项 命令
Web 服务 systemctl status nginx/apache2
PHP php -v
根目录 是否 public
伪静态 rewrite / try_files
权限 www-data
调试 APP_DEBUG=true

七、你可以直接告诉我

为了精准帮你,请回复:

  1. ThinkPHP 版本
  2. Apache 还是 Nginx
  3. 访问报错内容(截图或文字)
  4. 访问地址是什么

我可以直接帮你写配置文件。

0 踩