0

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

Xampp 在 /opt/lampp 中,symfony2 在我的主目录 ~/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 仅用于调试。但是如何开箱即用地测试产品呢?我这样做是因为我按照书写了一个 acme hello,但没有在 prod 中工作。我把它放到app_dev.php,没用。

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

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

4

3 回答 3

3

Symfony2 标准版带有一个完整的演示,它位于一个名为 AcmeDemoBundle 的包中。

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

应用内核.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

于 2013-05-18T06:33:59.943 回答
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

于 2013-05-18T15:57:50.040 回答
0

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

您可以检查您的 apache 配置。

于 2016-05-06T07:46:31.973 回答