2014-01-31 62 views
1

我有一個symfony2項目運行在我公司的服務器(Debian用於生產,Ubuntu用於開發)。我們希望在同一個服務器上託管另一個symfony2網站,並且我們希望將兩個項目分開,因爲它們彼此不相關並使用不同的CSS樣式。ClassNotFoundException在同一主機上的多個symfony2項目

我已經定義了兩個虛擬主機,其子域指向每個項目的文件夾,但我無法讓這兩個站點一起運行。它只運行我在瀏覽器中加載的第一個,第二個顯示此錯誤: ClassNotFoundException:嘗試從/var/www/promociones/app/AppKernel.php中的命名空間「RecAicrag \ PromocionesBundle」加載類「RecAicragPromocionesBundle」第19行。你是否需要從另一個命名空間「使用」它?

無論我首先加載哪一個,第二個顯示該錯誤。我認爲有一個共享的配置,但我找不到如何解決它..而且我也找不到如何在同一個主機中託管兩個項目的任何示例。

如果我可以有兩種不同的配置和CSS樣式,我可以考慮將兩個站點都放在同一個項目中,但我寧願將它們放在不同的地方。

我的Apache的conf:

<VirtualHost *:80> 
     ServerAdmin [email protected] 
     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 [email protected] 
     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 [email protected] 
    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> 

的第一個項目: 應用程序/配置/ routing.yml中

xxx_intranet: 
    resource: "@XxxIntranetBundle/Resources/config/routing.yml" 
    prefix: /

的src /.../資源/配置/ routing.yml中

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 

Second(new): app/config/routing.yml

rec_xxx_promociones: 
    resource: "@RecXxxPromocionesBundle/Resources/config/routing.yml" 
    prefix: /

的src /.../資源/配置/ routing.yml中

rec_xxx_promociones_homepage: 
    pattern: /hello/{name} 
    defaults: { _controller: RecXxxPromocionesBundle:Default:index } 

我已經嘗試設置在routing.yml中並沒有什麼 「主機」 參數發生了,還是一樣。

+0

在'routing.yml'中顯示路由 –

+0

我在第一個項目中添加了一些路由。有很多,都有相同的格式。第二個項目還沒有任何路線,只有默認的一個 – cmmata

回答

2

您的服務器上是否啓用了APC功能?

如果這樣做,這可能是問題所在。 Symfony在APC中存儲一個類緩存,默認情況下它具有相同的密鑰名稱。

這意味着無論您在重新啓動Apache後訪問的第一個應用程序是填充類緩存的那個應用程序。第二個應用程序將嘗試使用相同的類緩存,並且會相當可怕地破解。

您應該只能將類緩存名稱更改爲特定於應用程序 - 我相信它在app/autoload.php中 - 並且應該可以解決您的問題。如果沒有,然後回發:)

+0

我使用的是Xcache而不是APC,但是你讓我看着正確的方向。我替換了Xcache,現在我在兩個app.php文件中都使用帶有不同前綴的APC。現在我可以瀏覽這兩個網站!謝謝! – cmmata

相關問題