繁体   English   中英

重建VM后,apache2中的Symfony2 URL 404

[英]Symfony2 URLs 404 in apache2 after rebuild of VM

我们有以下系统:

  • Symfony 2
  • 在Ubuntu LTS 12.04上运行
  • 由apache2 2.2.22提供服务
  • Jenkins每天至少建立一次项目
  • Vagrant和Puppet用于每次从头开始创建运行时环境

问题:突然间Symfony URL不再提供了。

虽然curl localhost:8081/app_dev.php工作就像一个魅力(当然它会产生从Symfony的错误信息,但它 Symfony的那个回答),所有真正的symfony网址停止工作:

vagrant@precise64:~$ curl localhost:8081/app_dev.php/_test/data/class/clean
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL /app_dev.php/_test/data/class/clean was not found on this server.</p>
<hr>
<address>Apache/2.2.22 (Ubuntu) Server at localhost Port 8081</address>
</body></html>

通常,Apache应该将该URL提供给app_dev.php并完成它; app.php网址的行为方式完全相同。

Apache config,vhosts和.htaccess没有在工作和失败的运行之间进行更改。 Symfony路由也没有改变。

什么可能出错?

出于某种原因,在puppet配置期间安装了libapache2-mod-php5filter而不是libapache2-mod-php 我们没有在我们的清单中明确声明应该安装libapache2-mod-php5 ,而是安装为php5依赖项。

基本上libapache2-mod-php5filterlibapache2-mod-php5是相同的模块,只是它支持过滤器:

 Unless you specifically need filter-module support, you most likely
 should instead install libapache2-mod-php5.

这两个包是互斥的(至少在debian / ubuntu中)

我不确定如何安装该软件包而不是libapache2-mod-php5 ,但是安装libapache2-mod-php5解决了这个问题(因为它自动卸载了libapache2-mod-php5filter )。

我们将该软件包安装到我们的puppet文件中,问题就消失了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM