CakePHP缺少控制器-但它存在
我最近下载了cakephp-1.3.4。我在我的网络服务器上设置了它。我遵循了高级安装设置。我的文件夹结构如下CakePHP缺少控制器-但它存在,php,apache,cakephp,shared-hosting,cakephp-1.3,Php,Apache,Cakephp,Shared Hosting,Cakephp 1.3,我最近下载了cakephp-1.3.4。我在我的网络服务器上设置了它。我遵循了高级安装设置。我的文件夹结构如下 /common/ cakephp/ app/ etc... /htdoc/ /htdoc文件夹是webrootcakephp位于common文件夹中 我已经在index.php中配置了指向此文件夹结构的路径。我已经启动并运行了应用程序。我创建了一个布局,应用程序已经选择了它(连同所有的css和图像-所有这些都有效) 我在cakephp/app/controll
/common/
cakephp/
app/
etc...
/htdoc/
/htdoc
文件夹是webrootcakephp
位于common
文件夹中
我已经在index.php中配置了指向此文件夹结构的路径。我已经启动并运行了应用程序。我创建了一个布局,应用程序已经选择了它(连同所有的css和图像-所有这些都有效)
我在cakephp/app/controllers/
中创建了一个posts\u controller.php
。现在,当我尝试访问以下页面时:。我收到一条消息,说找不到控制器,我应该创建一个app/controllers/posts\u controller.php
(它已经存在!)
还有一件奇怪的事情是使用默认的pages\u controller工作。我创建了一个about.ctp,并将其放到app/views/pages/about.ctp
中。访问按预期显示
解决方案:
Sam帮我解决了这个问题(参见下面的长评论帖子)。问题是我为根文件夹设置了相对路径。这把事情搞砸了。解决方案是直接设置一个绝对路径,或者使用相对路径调用
realpath
,以将其解析为正确的绝对路径。确保控制器类的命名正确(应该是PostsController)并从AppController继承(这不是严格必需的,但是良好的实践).@Sam:我复制粘贴了它在丢失的控制器页面上显示的代码。因此,名称是PostsController,它确实继承自AppControllerWhat you using for hosting?您的文件权限是否正常?@Sam:这是一个共享托管服务器。我没有修改文件权限,除了cakePHP在初始设置中要求我修改的权限(如将tmp
文件夹设置为可写等)之外,您还可以尝试在webroot/index.php(在$Dispatcher=new Dispatcher()之前)的底部放置一段代码,如下所示:pr(App::path(“controllers”)代码>好的,你的路径看起来有点混乱,确保你的根被设置为绝对路径,而不是相对路径。使用webroot/index.php中的realpath()或其他内容。