symfony2无法全新安装

时间:2014-07-09 12:27:53

标签: php apache symfony xampp

我使用composer

下载了symfony2
 composer create-project symfony/framework-standard-edition path/ "2.5.*"

当我从命令行启动时

 php bin/console server:run

显示

 Server running on http://localhost:8000

但是当我访问网址时,没有任何内容出现。

在日志文件中,这是写的

[09-Jul-2014 14:04:51 Europe/Berlin] PHP Warning:  Uncaught exception 'Symfony\Component\Routing\Exception\ResourceNotFoundException' in C:\xampp\htdocs\Symfony\app\cache\prod\appProdUrlMatcher.php:32
Stack trace:
#0 C:\xampp\htdocs\Symfony\vendor\symfony\symfony\src\Symfony\Component\Routing\Matcher\UrlMatcher.php(106): appProdUrlMatcher->match('/')
#1 C:\xampp\htdocs\Symfony\vendor\symfony\symfony\src\Symfony\Component\Routing\Router.php(233): Symfony\Component\Routing\Matcher\UrlMatcher->matchRequest(Object(Symfony\Component\HttpFoundation\Request))
#2 C:\xampp\htdocs\Symfony\vendor\symfony\symfony\src\Symfony\Component\HttpKernel\EventListener\RouterListener.php(125): Symfony\Component\Routing\Router->matchRequest(Object(Symfony\Component\HttpFoundation\Request))
#3 [internal function]: Symfony\Component\HttpKernel\EventListener\RouterListener->onKernelRequest(Object(Symfony\Component\HttpKernel\Event\GetResponseEvent), 'kernel.request', Object(Symfony\Component\EventDispatcher\ContainerAwareEventDispatcher))
#4 C:\xampp\htdocs\Symfony\vendor\symfony\symf in C:\xampp\htdocs\Symfony\app\cache\prod\appProdUrlMatcher.php on line 32

1 个答案:

答案 0 :(得分:0)

Symfony\Component\Routing\Exception\ResourceNotFoundException表示未定义的路由名称。看起来你的错误模板{{ path('wrong_route') }}中有一处。

如果没有其他许多可能性:供应商,缓存或配置问题。

供应商尝试:

  • 删除/vendor
  • 中的所有文件夹
  • 在终端中运行:composer update

对于缓存:

  • 手动删除app/cache/devapp/cache/prod文件夹
  • 在终端中运行:php app/console cache:clear
  • 在终端中运行:php app/console assetic:dump

用于配置

  • .htaccess问题

    检查您的web/.htaccess文件,它必须如下:

    DirectoryIndex app.php
    
    <IfModule mod_rewrite.c>
        RewriteEngine On
    
        RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
        RewriteRule ^(.*) - [E=BASE:%1]
    
        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>
    

    如果启用了mod_rewrite Apache模块,请检查您的Apache配置 要激活模块,httpd.conf中的以下行需要处于活动状态:

    LoadModule rewrite_module modules/mod_rewrite.so
    
  • 时区问题

    您似乎正在使用欧洲/柏林时间,因此请确保php.ini中有这一行:date.timezone = "Europe/Berlin"
    如果不写的话。
    如果仍然无效,请在app/AppKernel.php中添加以下行,然后再次清除缓存:

    public function init()
    {
        date_default_timezone_set( 'Europe/Berlin' );
        parent::init();
    }