我安装了最新的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行[] []
答案 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
答案 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配置。