同一主机中多个symfony2项目上的ClassNotFoundException
我有一个symfony2项目在我公司的服务器上运行(Debian用于生产,Ubuntu用于开发)。我们希望在同一台服务器上托管另一个symfony2网站,我们希望将两个项目分开,因为它们彼此不相关,并且使用不同的CSS样式 我已经定义了两个虚拟主机,它们的子域指向每个项目的文件夹,但我不能让这两个站点同时运行。它只运行我在浏览器中加载的第一个,第二个显示此错误: ClassNotFoundException:试图从/var/www/promociones/app/AppKernel.php第19行中的命名空间“RecAicrag\PromocionesBundle”加载类“RecAicragPromocionesBundle”。是否需要从另一个命名空间“使用”它 不管我先加载哪一个,第二个显示错误。我认为某个地方有一个共享配置,但我找不到如何解决它。。我也找不到如何在同一主机中托管两个项目的任何示例同一主机中多个symfony2项目上的ClassNotFoundException,symfony,virtualhost,Symfony,Virtualhost,我有一个symfony2项目在我公司的服务器上运行(Debian用于生产,Ubuntu用于开发)。我们希望在同一台服务器上托管另一个symfony2网站,我们希望将两个项目分开,因为它们彼此不相关,并且使用不同的CSS样式 我已经定义了两个虚拟主机,它们的子域指向每个项目的文件夹,但我不能让这两个站点同时运行。它只运行我在浏览器中加载的第一个,第二个显示此错误: ClassNotFoundException:试图从/var/www/promociones/app/AppKernel.php第19
如果我可以有两种不同的配置和CSS样式,我可以考虑将两个站点保持在同一个项目中,但我希望把它们放在不同的地方。
我的apache配置:<VirtualHost *:80>
ServerAdmin carlos@xxx.com
ServerName localhost
DocumentRoot /var/www/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
<VirtualHost *:80>
ServerAdmin carlos@xxx.com
ServerName intranet.localhost
DocumentRoot /var/www/intranet/web/
<Directory /var/www/intranet/web/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName promociones.localhost
ServerAdmin carlos@xxx.com
DocumentRoot /var/www/promociones/web/
<Directory /var/www/promociones/web/>
RewriteEngine On
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
src/../Resources/config/routing.yml
xxx_intranet:
resource: "@XxxIntranetBundle/Resources/config/routing.yml"
prefix: /
intranet_consultas:
pattern: /consultas
defaults: { _controller: XxxIntranetBundle:Generico\Consultas:index }
intranet_consulta_articulo:
pattern: /consultas/articulo/{codigo}
defaults: { _controller: XxxIntranetBundle:Generico\Consultas:articulo }
......
xxx_intranet_Annotations:
resource: "@XxxIntranetBundle/Controller/"
prefix: /
type: annotation
rec_xxx_promociones:
resource: "@RecXxxPromocionesBundle/Resources/config/routing.yml"
prefix: /
rec_xxx_promociones_homepage:
pattern: /hello/{name}
defaults: { _controller: RecXxxPromocionesBundle:Default:index }
第二(新):
app/config/routing.yml
xxx_intranet:
resource: "@XxxIntranetBundle/Resources/config/routing.yml"
prefix: /
intranet_consultas:
pattern: /consultas
defaults: { _controller: XxxIntranetBundle:Generico\Consultas:index }
intranet_consulta_articulo:
pattern: /consultas/articulo/{codigo}
defaults: { _controller: XxxIntranetBundle:Generico\Consultas:articulo }
......
xxx_intranet_Annotations:
resource: "@XxxIntranetBundle/Controller/"
prefix: /
type: annotation
rec_xxx_promociones:
resource: "@RecXxxPromocionesBundle/Resources/config/routing.yml"
prefix: /
rec_xxx_promociones_homepage:
pattern: /hello/{name}
defaults: { _controller: RecXxxPromocionesBundle:Default:index }
src/../Resources/config/routing.yml
xxx_intranet:
resource: "@XxxIntranetBundle/Resources/config/routing.yml"
prefix: /
intranet_consultas:
pattern: /consultas
defaults: { _controller: XxxIntranetBundle:Generico\Consultas:index }
intranet_consulta_articulo:
pattern: /consultas/articulo/{codigo}
defaults: { _controller: XxxIntranetBundle:Generico\Consultas:articulo }
......
xxx_intranet_Annotations:
resource: "@XxxIntranetBundle/Controller/"
prefix: /
type: annotation
rec_xxx_promociones:
resource: "@RecXxxPromocionesBundle/Resources/config/routing.yml"
prefix: /
rec_xxx_promociones_homepage:
pattern: /hello/{name}
defaults: { _controller: RecXxxPromocionesBundle:Default:index }
我尝试在routing.yml中设置“host”参数,但没有发生任何变化,仍然是一样的。您的服务器上是否启用了APC 如果你这样做,这可能就是问题所在。Symfony在APC中存储一个类缓存,默认情况下,该类缓存具有相同的密钥名 这意味着您在重启Apache后访问的第一个应用程序是填充类缓存的应用程序。然后,第二个应用程序将尝试使用相同的类缓存,并且将非常糟糕地中断
您应该能够将类缓存名称更改为特定于应用程序的名称—我相信它位于app/autoload.php中—这应该可以解决您的问题。如果没有,那么回发:)在
routing.yml中显示路由
我在第一个项目中添加了一些路由。有很多,都有相同的格式。第二个项目还没有任何路线,只有默认路线我使用的是Xcache而不是APC,但你让我朝着正确的方向看。我替换了Xcache,现在在两个app.php文件中使用了前缀不同的APC。现在我可以浏览这两个网站了!非常感谢。