php 模块控制器在共享主机上的yii2部署中不工作

zaqlnxep  于 2023-02-21  发布在  PHP
关注(0)|答案(1)|浏览(133)

我把我的php/Yii2项目(基于基本模板)部署到了一个共享主机空间。我想通过一个子域访问这个项目,因为主域上运行着一个wordpress。基本项目的常规控制器工作正常。问题是框架找不到模块中的任何控制器。模块itsef注册正确。
Web空间中的文件夹结构如下:

  • /
  • 万维网
  • _wp(主域的目标文件夹)
  • _项目
  • web(子域的目标文件夹)
  • 运行时间
  • 视图
  • ...
  • 模组
  • 测试模组
  • Module.php
  • 视图
  • 模型
  • 控制器

模块配置如下:

'modules' => [
    'testmodule' => [
        'class' => 'app\modules\testmodule\Module',
    ],
],

UrlManager的配置如下:

[
    'showScriptName' => false,
    'enablePrettyUrl' => true,
    'enableStrictParsing' => false,
    'rules' => array(
        '<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
        '<controller:\w+>/<action:\w+>' => '<controller>/<action>',
        '<module:\w+>/<controller:\w+>/<action:\w+>/<id:\d+>' => '<module>/<controller>/<action>',
        '<module:\w+>/<controller:\w+>/<action:\w+>' => '<module>/<controller>/<action>'
    ),
];

_project\web中的.htaccess文件如下所示:

Options +FollowSymLinks
IndexIgnore */*

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ /index.php? [L]

_project文件夹中,我没有.htaccess文件。
在我的本地机器上一切都运行良好。在我的网站空间上,项目本身的控制器运行良好。当我在一个模块中导航时,我会得到一个yii框架的404 Error。我调试了项目,发现模块本身加载正确。问题是框架找不到Controller类,因为函数class_exists(controller)返回false。我不知道我能做些什么来解决这个问题。希望这里有人能帮助我,谢谢!

6yt4nkrj

6yt4nkrj1#

感谢Michal Hynčica的评论!我写了我的控制器小写和yii 2正在寻找他们与CamelCase.这在windows上工作.但在我的共享主机基于此不工作,因为大小写敏感!

相关问题