Cakephp控制器在托管服务器中不起作用

时间:2018-11-22 02:10:56

标签: php cakephp cpanel cakephp-3.x

我的cakephp项目在localhost上可以很好地运行,但是当我将其上传到托管服务器时无法正常工作。

这是我的托管服务器的cPanel文件管理器上的设置:

/home/username/public_html/test
    // webroot contents goes here
    css/
    img/
    js/
    index.php

/home/username/mycakeapp/
    // necessary app directories go here
    /config
    /logs
    /plugins
    /src
    /tmp
    /vendor

我确保在第52行的mycakeapp / config / paths.php中更改WWW_ROOT:

define(‘WWW_ROOT’, ‘/home/username/public_html/test’ . DS);

我还在以下3行中更改了public_html / test中的index.php,以便它正确地需要必需的文件:

require '/home/username/mycakeapp/config/requirements.php';
require '/home/username/mycakeapp/vendor/autoload.php';
$server = new Server(new Application('/home/username/mycakeapp/config'));

执行完此操作后,当我打开website.com/test时,该站点会正确打开home.ctp文件。但是,转到其他网站(如website.com/test/users)时,它会显示如下错误消息:

The requested URL /test/users was not found on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

我的home.ctp文件只有纯HTML代码,因此我认为它可以正常工作。但是,转到具有CakePHP代码的其他站点,它似乎根本不起作用。请帮助!

2 个答案:

答案 0 :(得分:0)

您应该尝试像这样更改App.base中的./config/app.php参数:

'App' => [

    // ...
    'base' => '/test',
    // ...

]

请参阅文档here

答案 1 :(得分:0)

上传您的.htaccess文件。

不起作用的部分是将对“漂亮” URL的请求(例如/ users)重写为对PHP脚本的请求(例如/index.php?q=/users)的部分。 .htaccess文件可以做到这一点。