我的apache配置和我的几个symfony项目有问题 .
Debian版本:7.8 apache版本:2.2.22,mpm_prefork
我的vhost配置:
<VirtualHost *:80>
DocumentRoot /var/www/test/web
ServerName test.xxx.com
<Directory /var/www/test/web>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>
在我的测试项目中,.htaccess看起来像这样:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app.php [QSA,L]
</IfModule>
重写模块被激活(我已经通过.htaccess中的注释重写指令测试了id并调用了我的url) .
当我打电话给prxx网址如test.xxx.com和test.xxx.com/something时,它可以工作 . 但是当我调用app_dev.php url时,前控制器永远不会被执行 . 示例:我调用test.xxx.com/something,apache错误日志说“文件不存在”,我的symfony项目中的dev.log中没有任何日志 .
我不明白为什么在我的开发环境中没有执行前控制器 .
我的app_dev.php文件:
use Symfony\Component\HttpFoundation\Request;
$loader = require_once __DIR__.'/../app/bootstrap.php.cache';
require_once __DIR__.'/../app/AppKernel.php';
$kernel = new AppKernel('dev', true);
$kernel->loadClassCache();
$request = Request::createFromGlobals();
$response = $kernel->handle($request);
$response->send();
$kernel->terminate($request, $response);
1 回答
请检查symfony 2.8 app_dev.php文件:
https://github.com/symfony/symfony-standard/blob/v2.8.6/web/app_dev.php
$loader = require_once __DIR__.'/../app/bootstrap.php.cache';
成为$loader = require __DIR__.'/../app/autoload.php';
和
require_once __DIR__.'/../app/AppKernel.php';
消失了另外,更改htaccess中的RewriteRule以重定向到app_dev.php而不是app.php