【问题标题】:symfony2 does not work fresh installsymfony2 无法全新安装
【发布时间】:2014-07-09 12:27:52
【问题描述】:

我使用 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

【问题讨论】:

  • 您是否尝试过运行app_dev.php
  • 它没有被加载。 127.0.0.1/myproject/web/app_dev.php
  • 我确定是一个错字,但是你输入了 port number: 127.0.0.1:8000 吗?
  • 您是否在 127.0.0.1 上尝试过使用 localhost 代替我也确定您应该先访问 config.PHP...

标签: php apache symfony xampp


【解决方案1】:

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();
    }
    

【讨论】:

    猜你喜欢
    • 2012-08-11
    • 2015-04-07
    • 1970-01-01
    • 2021-01-06
    • 2013-01-04
    • 2020-05-19
    • 2014-01-07
    • 2019-07-14
    • 2016-11-16
    相关资源
    最近更新 更多