如何从子目录运行CakePHP应用程序

时间:2010-05-24 15:32:41

标签: php configuration cakephp cakephp-1.3

使用CakePHP 1.3,我有以下布局:

/srv/www/_cakephp13/
    /app/
    /cake/
    /plugins/
    /vendors/
    etc...

/srv/www/htdocs/  
    /cake_app/
    /other-dir/

...其中htdocs是公共目录,我已将我的应用webroot移至cake_app以上......似乎几乎工作。 (自定义webroot的index.php之后)。

当我访问http://devserver/cake_app/时,我能够看到默认的“主页”页面控制器/视图(我已自定义,因此 似乎正在运行)。

但是当我访问http://devserver/cake_app/controller/view时,我收到 404 错误。

是否可以在站点根目录的子目录中运行Cake App?我怎样才能使这个工作?

理想情况 ,我不想编辑Apache conf ...如果我可以使用Cake配置或htaccess文件修复此问题,我会更高兴。

2 个答案:

答案 0 :(得分:2)

您应该验证.htaccess是否正在运行,并且重写模块已打开并正在运行。

答案 1 :(得分:1)

您需要在Apache上启用mod_rewrite。要检查它是否打开,请创建一个只执行此操作的页面:

echo phpinfo():

Grep on the text“loaded modules”。确保在那里列出mod_rewrite。如果不是,您可以将其添加到apache的配置中,或者您可能需要安装它(取决于您的原始安装方法以及是否包含该模块)。

如果你无法运行mod_rewrite,你仍然可以在没有它的情况下使用cake(URL将看起来像index.php / controller / action / etc)。查看http://book.cakephp.org/view/333/A-Note-on-mod_rewrite了解详情。具体地,

  

如果你不想要或不能得到   mod_rewrite(或其他一些兼容的   模块)在您的服务器上运行,   你需要使用内置的Cake   漂亮的网址。在/app/config/core.php中,   取消注释看起来像这样的行:

     

配置::写入( 'App.baseUrl',   ENV( 'SCRIPT_NAME'));