Php 共享主机上的Symfony2返回404
在本地apache(在Centos上)上开发的web应用程序按预期工作,所有路由工作正常。但是,在共享主机上上载相同的项目时,使用相同的路径并多次清除缓存,服务器返回404 routing.yml:Php 共享主机上的Symfony2返回404,php,apache,symfony,caching,shared-hosting,Php,Apache,Symfony,Caching,Shared Hosting,在本地apache(在Centos上)上开发的web应用程序按预期工作,所有路由工作正常。但是,在共享主机上上载相同的项目时,使用相同的路径并多次清除缓存,服务器返回404 routing.yml: app: resource: "@AppBundle/Controller/" type: annotation maya: resource: "@AppBundle/Controller/MayaController.php" type: a
app:
resource: "@AppBundle/Controller/"
type: annotation
maya:
resource: "@AppBundle/Controller/MayaController.php"
type: annotation
此外,在控制器方法上指定路由为:
/**
* @Route("/maya/")
*/
public function initLoad()
{
return $this->render(
'base.html.twig');
}
已使用php应用程序/控制台缓存:clear--env prod
命令和rm-fr应用程序/Cache/*
清除缓存
访问web文件夹时,即www.mywebsite.com/my-site-folder/web/将列出web文件夹中所有文件的列表,访问www.mywebsite.com/my-site-folder/web/app.php时,将返回基本模板,就像调用了www.mywebsite.com/my-site-folder/web/maya一样
如果它在linux上的本地apache服务器上运行良好,您对可能出现的问题有何建议
提前谢谢 在阅读了您的评论之后,我发现通过/web/app.php访问您的站点是可行的,我怀疑。服务器没有解析htaccess。请确保
- Symfony的.htaccess文件已正确上载到/web/目录中
- 您的主机尚未启用。htaccess支持
- 或者,如果启用了.htaccess支持,则可能的重写规则将被禁用
routing.yml
已经包括您的MayaController.php:
app:
resource: "@AppBundle/Controller/"
type: annotation
您不需要单独引用以下内容:
maya:
resource: "@AppBundle/Controller/MayaController.php"
type: annotation
此外,有时当我清除缓存时,会出现以下错误:致命错误:无法在第71行的/home/mywebsite/app/cache/prod/classes.php中重新声明类SessionHandlerInterface,这可以通过为缓存文件夹运行rm-fr来纠正。可能是PHP版本不匹配吗?我正在使用symfony 2.8尝试使用此
@Route(“/maya/”)
到@Route(“/maya”)
在url中添加app.php时工作,即:www.mywebsite.com/my-site-folder/web/app.php/maya按预期工作。但我仍然觉得奇怪,为什么app.php是必需的,而在我的apache上却没有。本地apache在prod模式下运行。谢谢@这是因为.htaccess未上载到服务器上,.htaccess支持未启用,或者重写规则未启用。我建议您联系您的主机,询问他们是否启用了.htaccess支持,如果启用,是否也启用了重写规则。在此处找到答案:。谢谢你指出了正确的方向@威廉:没问题!出于好奇,.htaccess
在您的symfony发行版中不存在?不存在。我使用了symfony安装程序,创建了一个项目版本2.8,如果您在github上查看2.8
分支,您会看到。htaccess
已经存在。您是否使用FTP将文件上载到共享主机服务器?可能你的FTP客户端没有上传隐藏文件。很可能是的,尽管我是从CentOS dist上传的,我不记得隐藏文件没有显示/省略,但还是有可能的。非常感谢你的帮助,它确实帮助了我!