Apache Symfony 2.4的ProxyPassMatch规则
我正在使用mod_proxy_fcgi和PHP-FPM运行Apache,并试图让它在Symfony下工作。这是我第一个使用Symfony的项目,目前我只是对它有了一些感觉 我的vhost定义当前看起来像:Apache Symfony 2.4的ProxyPassMatch规则,apache,symfony,php,Apache,Symfony,Php,我正在使用mod_proxy_fcgi和PHP-FPM运行Apache,并试图让它在Symfony下工作。这是我第一个使用Symfony的项目,目前我只是对它有了一些感觉 我的vhost定义当前看起来像: <VirtualHost *:80> ServerName symfony.dev Documentroot "/vagrant/symfony/web" DirectoryIndex app.php ProxyTimeout 600 ProxyPassMat
<VirtualHost *:80>
ServerName symfony.dev
Documentroot "/vagrant/symfony/web"
DirectoryIndex app.php
ProxyTimeout 600
ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:5090/vagrant/symfony/web/$1
<Directory "/vagrant/symfony/web">
AllowOverride All
Allow from All
</Directory>
</VirtualHost>
服务器名symfony.dev
Documentroot“/vagrant/symfony/web”
DirectoryIndex app.php
代理超时600
ProxyPassMatch^/(.\.php(/.*)$fcgi://127.0.0.1:5090/vagrant/symfony/web/$1
允许超越所有
通融
当我转到http://symfony.dev/app_dev.php/
,页面加载,但所有链接/路径都包含完整的文件系统页面。例如,“运行演示”的链接是http://symblog.dev/vagrant/symfony/web/app_dev.php/demo/
是否有一个不同的ProxyPassMatch规则可以工作,或者有一个Symfony配置可以补偿
我尝试了
^/(.*\.php)(/.*)$
来加载app_dev.php/
,但是app_dev.php/demo/
似乎加载了app_dev.php
,而没有加载演示,内联资源的路径断了。我在ProxyPassMatch上也遇到了同样的问题,但是在和SetHandler上一切都很好
<VirtualHost *:80>
ServerName project.dev
ServerAlias www.project.dev
<FilesMatch \.php$>
SetHandler proxy:fcgi://127.0.0.1:9000
</FilesMatch>
#ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/var/www/project/web/$1
## Vhost docroot
DocumentRoot "/var/www/project/web"
## Directories, there should at least be a declaration for /var/www/awesome
<Directory "/var/www/project/web">
AllowOverride All
Order allow,deny
Allow from All
</Directory>
## Load additional static includes
## Logging
ErrorLog "/var/www/project/app/logs/apache2/error.log"
ServerSignature Off
CustomLog "/var/www/project/app/logs/apache2/access.log" combined
## SetEnv/SetEnvIf for environment variables
SetEnv APP_ENV dev
## Custom fragment
</VirtualHost>
ServerName项目.dev
ServerAlias www.project.dev
SetHandler代理:fcgi://127.0.0.1:9000
#ProxyPassMatch^/(.\.php(/.*)$fcgi://127.0.0.1:9000/var/www/project/web/$1
##Vhost docroot
DocumentRoot“/var/www/project/web”
##目录中,至少应该有一个/var/www/awesome的声明
允许超越所有
命令允许,拒绝
通融
##负载附加静态包括
##伐木
ErrorLog“/var/www/project/app/logs/apache2/error.log”
服务器签名关闭
CustomLog“/var/www/project/app/logs/apache2/access.log”组合
##环境变量的SetEnv/setenif
SetEnv应用程序和环境开发
##自定义片段
你能解决这个问题吗?我也有同样的问题PHP FPM的问题,通常的$u服务器变量集没有按照标准正确设置。解决方法是在构造HttpFoundation/Request之前自己设置这些变量。现在,我不完全确定需要设置哪些变量(SCRIPT\u FILENAME和/或PATH\u INFO),或者在Symfony项目中(在AppKernel.php中?)修改它们的最佳位置。