【问题标题】:CakePHP 2.x on CentOS 6CentOS 6 上的 CakePHP 2.x
【发布时间】:2014-08-28 22:09:15
【问题描述】:

我在 CentOS 上安装 CakePHP 2.4.3 时遇到问题(在 2.5.2 上也试过,同样的问题)。可以从 cakephp 访问(读/写)数据库。

过去几个小时尝试修复它,但这是我卡住的地方:

1) 此错误不断出现。 “您的服务器上未正确配置 URL 重写” - 我有检查,该文件可从网站“www.mysite.com/cake/app/webroot/css/cake.generic.css”访问 - 我已更新 httpd.conf 以具有“LoadModule rewrite_module modules/mod_rewrite.so” - 文件“.htaccess”位于 3 个文件夹中:

/.htaccess

<IfModule mod_rewrite.c>
   RewriteEngine on
   RewriteRule    ^$ app/webroot/    [L]
   RewriteRule    (.*) app/webroot/$1 [L]
</IfModule>

/app/.htaccess

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule    ^$    webroot/    [L]
    RewriteRule    (.*) webroot/$1    [L]
</IfModule>

/app/webroot/.htaccess

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

httpd.conf

<Directory />
    Options FollowSymLinks
    AllowOverride All
</Directory>
<Directory /var/www>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order Allow,Deny
    Allow from all
</Directory>

2) 我的控制器不能直接调用。它需要有“index.php”。

例子:

Works on : "www.mysite.com/cake/index.php/grabs/myFunction"
Unable to work on : "www.mysite.com/cake/grabs/myFunction"

请指教。

【问题讨论】:

  • 为了让mod_rewrite 工作 Apache 的AllowOverride 指令必须设置为All 用于cake 的目录,是吗?
  • 是的,'allowOverride' 就在那里。我在上面的问题中添加了 httpd.conf 部分。谢谢。
  • 这听起来很傻,但是您是否重新启动了 Web 服务器?

标签: cakephp centos


【解决方案1】:

对于像我这样的人来说,这是一个重要的通知,他们在与这个问题完全一样的问题上挣扎。 这种行为的一个可能原因是当有两个或多个 CakePHP 应用程序驻留在一个服务器上时。无论如何,尝试更改此行:

// Prefix each application on the same server with a different string, to avoid Memcache and APC conflicts.
$prefix = 'myapp_';

从你的 /app/Config/core.php 到不同的东西,比如说:

$prefix = 'coolRpgGame_';

它真的救了我的命,而且立竿见影。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-14
    • 2019-07-21
    • 2014-04-04
    • 2013-05-29
    • 1970-01-01
    • 2013-04-16
    • 2014-03-16
    相关资源
    最近更新 更多