symfony2全新安装测试:app_dev.php有效,但app.php获取重定向。为什么刺不起作用?

时间:2013-05-18 02:38:34

标签: symfony

我安装了最新的symfony2并按照本书安装和设置所有内容。

Xampp位于/ opt / lampp, symfony2在我的家里dir~ / proj / symfony2。

我做了一个符号链接/ opt / lampp / htdocs / symfony2 => 〜/ PROJ / Symfony2中。

在浏览器中,我输入“localhost / symfony2 / web / app_dev.php”。有用!页面出现了。

但如果我使用app.php,浏览器将被重定向到/ opt / lampp / htdocs / index。

如果我将app_dev.php复制到app.php,仍然无法正常工作!为什么会这样?

如果我将app_dev.php复制到app_test.php并使用“localhost / symfony2 / web / app_test.php”。它有效!

我真的不知道为什么在symfony2中制作prod是如此困难。

我读了很多关于app.php获取404错误的帖子。尝试清楚,热身,转储....没有任何帮助。

我知道acmedemo仅用于调试。但是如何测试盒子外的产品?我这样做是因为我按照书写了一个极致你好,但没有在prod工作。我把它放到了app_dev.php,没用。

app / prod.log:原因可能是什么?

  

request.ERROR:未捕获的PHP异常   Symfony \ Component \ HttpKernel \ Exception \ NotFoundHttpException:“不   找到“GET /bundles/framework/images/input_bg.gif”的路线   /.../symfony2/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/EventListener/RouterListener.php   第94行[] []

3 个答案:

答案 0 :(得分:3)

Symfony2标准版附带一个完整的演示版,该版本位于名为AcmeDemoBundle的软件包中。

此捆绑包仅适用于开发环境:

AppKernel.php

if (in_array($this->getEnvironment(), array('dev', 'test'))) {
            $bundles[] = new Acme\DemoBundle\AcmeDemoBundle();

routing_dev.yml:

_welcome:
    pattern:  /
    defaults: { _controller: AcmeDemoBundle:Welcome:index }

你应该:

1)删除AcmeDemoBundle http://symfony.com/doc/2.2/cookbook/bundles/remove.html

2)生成一个新的包 http://symfony.com/doc/master/bundles/SensioGeneratorBundle/commands/generate_bundle.html

http://symfony.com/doc/master/book/routing.html

答案 1 :(得分:0)

设置虚拟主机似乎适用于访问app.php或app_dev.php

<VirtualHost *:80> 
    DocumentRoot "/opt/lampp/htdocs" 
    ServerName localhost 
    ServerAlias www.localhost
    ErrorLog "logs/localhost-error.log" 
    CustomLog "logs/localhost-access.log" combined 
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    ServerName myweb.local
    ServerPath "/home/xxx/proj/myweb/symfony2/web"
    ServerAlias www.myweb.local

    UseCanonicalName Off
    DirectoryIndex app.php
    DocumentRoot "/home/xxx/proj/myweb/symfony2/web"
    <Directory /home/xxx/proj/myweb/symfony2/web/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride all 
        #AllowOverride AuthConfig FileInfo
         #Order allow,deny
        Allow from all
        Require local
        <IfModule mod_rewrite.c>
          RewriteEngine On
          RewriteCond %{REQUEST_FILENAME} !-f
          RewriteRule ^(.*)$ /app.php [QSA,L]
        </IfModule>
    </Directory>
ErrorLog "logs/myweb.local-error_log"
CustomLog "logs/myweb.local-access_log" common

答案 2 :(得分:0)

小心dump()函数,我通过删除几个文件(如存储库文件)中的转储来解决env问题。

您可以检查您的apache配置。