2017-04-15 192 views
0

有人請賜教我在symfony中導致這個問題的原因以及如何解決它。哎呀!發生錯誤服務器返回「404未找到」。 Symfony

糟糕!發生錯誤服務器返回「404未找到」。

我只是symfony和cpanel的新手。

我剛剛從我的電腦(本地主機)上傳我的工作SF應用程序到我的服務器或CPANEL。 CPanel沒有SSH access,所以我使用FTP來上傳所有目錄。這樣的文件的目錄。

家/ swipecom

  • 緩存
  • 接觸(其中SF目錄居住)
  • 的public_html(/ WEB唯一SF目錄)
  • VAR
  • SSL
  • tmp
  • public_ftp
  • 日誌

我創建.htaccesspublic_html像這樣public_html/.htaccess

<IfModule mod_rewrite.c> 
    RewriteEngine On 

    RewriteBase /web 

    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule ^(.*)$ app.php [QSA,L] 
</IfModule> 

最後,我在這樣的配置app.php

<?php 

use Symfony\Component\HttpFoundation\Request; 

/** @var \Composer\Autoload\ClassLoader $loader */ 

// $loader = require __DIR__.'/../app/autoload.php'; 
// include_once __DIR__.'/../var/bootstrap.php.cache'; 

$loader = require '/home2/swipecom/contactless/app/autoload.php'; 
include_once '/home2/swipecom/contactless/var/bootstrap.php.cache'; 

$kernel = new AppKernel('prod', false); 
$kernel->loadClassCache(); 
//$kernel = new AppCache($kernel); 

// When using the HttpCache, you need to call the method in your front controller instead of relying on the configuration parameter 
//Request::enableHttpMethodParameterOverride(); 
$request = Request::createFromGlobals(); 
$response = $kernel->handle($request); 
$response->send(); 
$kernel->terminate($request, $response); 

當我嘗試訪問該應用程序,像這樣www.domain.com這是我收到的響應。

糟糕!發生錯誤

服務器返回了「404 Not Found」。

東西壞了。當發生此 錯誤時,請讓我們知道您在做什麼。我們會盡快解決它。對不起,任何 造成的不便。

UPDATE

的routing.yml

route_frontend: 
    resource: "@SwipeBundle/Resources/config/routing_frontend.yml" 

route_backend: 
    resource: "@SwipeBundle/Resources/config/routing_backend.yml" 

route_security: 
    resource: "@SwipeBundle/Resources/config/routing_security.yml" 

routing_dev.yml

_wdt: 
    resource: "@WebProfilerBundle/Resources/config/routing/wdt.xml" 
    prefix: /_wdt 

_profiler: 
    resource: "@WebProfilerBundle/Resources/config/routing/profiler.xml" 
    prefix: /_profiler 

_errors: 
    resource: "@TwigBundle/Resources/config/routing/errors.xml" 
    prefix: /_error 

_main: 
    resource: routing.yml 

AppKernel。PHP

class AppKernel extends Kernel 
{ 
    public function registerBundles() 
    { 
     $bundles = [ 
      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 Doctrine\Bundle\DoctrineBundle\DoctrineBundle(), 
      new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(), 
      // new SunCat\MobileDetectBundle\MobileDetectBundle(), 
      new SwipeBundle\SwipeBundle(), 
     ]; 

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

     return $bundles; 
    } 

    public function getRootDir() 
    { 
     return __DIR__; 
    } 

    public function getCacheDir() 
    { 
     return dirname(__DIR__).'/var/cache/'.$this->getEnvironment(); 
    } 

    public function getLogDir() 
    { 
     return dirname(__DIR__).'/var/logs'; 
    } 

    public function registerContainerConfiguration(LoaderInterface $loader) 
    { 
     $loader->load($this->getRootDir().'/config/config_'.$this->getEnvironment().'.yml'); 
    } 
} 

.htaccessweb目錄

DirectoryIndex app.php 

<IfModule mod_negotiation.c> 
    Options -MultiViews 
</IfModule> 

<IfModule mod_rewrite.c> 
    RewriteEngine On 

    RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$ 
    RewriteRule ^(.*) - [E=BASE:%1] 

    RewriteCond %{HTTP:Authorization} . 
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] 

    RewriteCond %{ENV:REDIRECT_STATUS} ^$ 
    RewriteRule ^app\.php(/(.*)|$) %{ENV:BASE}/$2 [R=301,L] 

    RewriteCond %{REQUEST_FILENAME} -f 
    RewriteRule .? - [L] 

    RewriteRule .? %{ENV:BASE}/app.php [L] 
</IfModule> 

<IfModule !mod_rewrite.c> 
    <IfModule mod_alias.c> 
     RedirectMatch 302 ^/$ /app.php/ 
    </IfModule> 
</IfModule> 
+0

它看起來的工作,你註冊到您的應用程序的任何路線? –

+0

感謝您的評論,我在上面添加了我的路由。 – phpmeter

+0

上傳之前,您是否生成了生產緩存?如果是這樣,請更改新的AppKernel('prod',false);到新的AppKernel('prod',true);以獲得更好的錯誤信息。並檢查您的主機是否有關於symfony的任何指示。經常有目錄權限問題。 – Cerad

回答

相關問題