2015-04-07 103 views
1

我已經經歷了許多與此相關的問題,但無法找到解決我的問題的方法。如何使用apache2在本地主機上部署symfony2應用程序

我已將demo symfony應用程序複製到/var/www/html/myproject文件夾中。我只能訪問localhost/myproject/web/app_dev.php,但不能訪問localhost/myproject/web/app.php。基本上我想從開發環境切換到生產環境。

當我訪問app.php時,我只是得到一個空白頁。我該如何解決這個問題?

以下是我的routing.yml文件

app: 
    resource: "@AppBundle/Controller/" 
    type:  annotation 

編輯

錯誤日誌(應用程序/日誌/ prod.log)

[2015-04-06 22:54:53] request.ERROR: Uncaught PHP Exception Symfony\Component\HttpKernel\Exception\NotFoundHttpException: "No route found for "GET /"" at /home/fazlan/ppp/myproject/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/EventListener/RouterListener.php line 144 {"exception":"[object] (Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException(code: 0): No route found for \"GET /\" at /home/fazlan/ppp/myproject/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/EventListener/RouterListener.php:144, Symfony\\Component\\Routing\\Exception\\ResourceNotFoundException(code: 0): at /home/fazlan/ppp/myproject/app/cache/prod/appProdUrlMatcher.php:35)"} [] 

回答

0

通過閱讀不同的教程和手冊,我終於能夠通過以下更改解決此問題。

的routing.yml

app: 
    resource: "@AppBundle/Controller/" 
    type:  annotation 


_acme_demo: 
    resource: "@AcmeDemoBundle/Resources/config/routing.yml" 

AppKernel.php(這裏未示出的整個文件)

public function registerBundles() 
    { 
     $bundles = array(
      new Symfony\Bundle\FrameworkBundle\FrameworkBundle(), 
      new Symfony\Bundle\SecurityBundle\SecurityBundle(), 
      new Symfony\Bundle\TwigBundle\TwigBundle(), 
      new Symfony\Bundle\MonologBundle\MonologBundle(), 
      new Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle(), 
      new Symfony\Bundle\AsseticBundle\AsseticBundle(), 
      new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(), 
      new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(), 
      new AppBundle\AppBundle(), 
      new Acme\DemoBundle\AcmeDemoBundle(), 

     ); 

     if (in_array($this->getEnvironment(), array('dev', 'test'))) { 
      $bundles[] = new Symfony\Bundle\DebugBundle\DebugBundle(); 
      //$bundles[] = new Acme\DemoBundle\AcmeDemoBundle(); 
      $bundles[] = new Symfony\Bundle\WebProfilerBundle\WebProfilerBundle(); 
      $bundles[] = new Sensio\Bundle\DistributionBundle\SensioDistributionBundle(); 
      $bundles[] = new Sensio\Bundle\GeneratorBundle\SensioGeneratorBundle(); 
     } 

     return $bundles; 
    } 
在上述文件AcmeDemoBundle

被登記。您必須註釋掉//$bundles[] = new Acme\DemoBundle\AcmeDemoBundle();以防止該軟件包在開發和測試環境中註冊兩次。

編輯這兩個文件後,進入項目文件夾並做

php app/console --env=prod cache:clear 

,然後在瀏覽器localhost/myproject/web/app.php將加載同捆在app_dev.php

1

您需要創建您的包和路由配置爲了它。在這個產品環境之後將是工作。有可能極品不是在刺激中工作。你可以在app/config/routing.yml中看到你的包的路由列表,或者你設置的任何東西,你可以在app_dev.php中配置Acme Demo Bundle。作爲你的配置的擴展。

更多信息here

+0

我已經編輯與錯誤的問題日誌 – DesirePRG

+0

你有捆綁嗎?看起來你沒有路線。嘗試使用acmedemobundle路線。 – maches

+0

是默認的,Acme包。問題是應用程序與開發環境(app_dev.php)協同工作,但不適用於app.php – DesirePRG

相關問題