【问题标题】:ProxyPassMatch rule for Symfony 2.4Symfony 2.4 的 ProxyPassMatch 规则
【发布时间】:2014-03-10 07:26:33
【问题描述】:

我正在使用 mod_proxy_fcgi 和 PHP-FPM 运行 Apache,并试图让它在 Symfony 中运行。这是我使用 Symfony 的第一个项目,目前只是对它有所了解..

我的虚拟主机定义目前看起来像:

<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>

当我转到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 而不是演示,内联资源的路径损坏。

【问题讨论】:

  • 你能解决这个问题吗?我也有同样的问题
  • 问题在于 PHP FPM,其中通常的 $_SERVER 变量集没有根据标准正确设置。解决方法是在构造 HttpFoundation/Request 之前自己设置这些变量。现在我不完全确定需要设置哪些变量(SCRIPT_FILENAME 和/或 PATH_INFO)或在 Symfony 项目中修改它们的最佳位置(在 AppKernel.php 中?)。

标签: apache symfony php


【解决方案1】:

我在使用 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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-15
    • 2016-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多