【问题标题】:CakePHP without mod_rewrite problems没有 mod_rewrite 问题的 CakePHP
【发布时间】:2012-02-10 20:19:21
【问题描述】:

我已经使用 CakePHP 开发了一个网站,现在我正在尝试将它托管在实时服务器上。我无法从托管服务中获得太多帮助,但我认为他们不允许 mod_rewrite(每当我尝试打开它时都会收到 500 服务器错误)。

所以,我研究了在没有 mod_rewrite 的情况下使用 CakePHP。现在我至少可以看到该网站,但我遇到了很多错误,特别是:

  • 没有找到css和js文件。
  • 数据库好像有问题,虽然可能和上面的问题有关,但我不能确定。

可以在new.enviro.lu查看实时网站。
工作网站见enviro.webforall.be

谁能指出我解决这些问题的正确方向?

我使用的是 CakePHP 1.3.4。

【问题讨论】:

  • 500 错误表明 .htaccess 文件无效,而不是 mod_rewrite 被禁用(除非您没有将指令包装在 ifmodule 条件中)。数据库错误与 mod_rewrite 无关。
  • 在测试时,只需将 RewriteEngine 设置为 on 就会出现 500 错误。如果设置为关闭,则没有错误...

标签: mysql cakephp mod-rewrite


【解决方案1】:

CSS 和 JavaScript 页面未显示的问题是您将 Apache 的 DocumentRoot 指向了错误的目录。 DocumentRoot should be /app/webroot,但您已将其设置为 Cake 的根目录。如果您访问http://new.enviro.lu/app/webroot/,您可以看到这些路径有效。

页面上的数据库错误是:

错误:找不到模型 ContentPage 的数据库表 content_pages。

这表明content_pages 表尚未如错误消息所述创建,或者数据库配置指向错误的数据库。

【讨论】:

  • 感谢您的帮助。我在哪里可以设置 DocumentRoot?另外,看看底部的 SQL 查询......它们看起来被截断了,这正常吗?
  • 你说的数据库配置是对的,是错的。更正它解决了 SQL 查询问题。我找不到将 DocumentRoot 设置放在哪里,所以我将子域指向 /app/webroot 目录。非常感谢您的帮助。
【解决方案2】:

尝试联系您的托管服务提供商并要求他们为您的帐户启用 mod_rewrite on,或询问他们如何做到这一点。没有它,CakePhp 将无法工作。

【讨论】:

  • 来自文档:“mod_rewrite 是首选,但绝不是必需的”
  • 嗯,这对我来说是新的...... +1 为你,我为虚假信息道歉。我可以删除这个吗?
猜你喜欢
  • 1970-01-01
  • 2012-10-23
  • 2010-11-18
  • 1970-01-01
  • 2010-09-16
相关资源
最近更新 更多