Symfony 2.4的ProxyPassMatch规则

时间:2014-02-12 06:07:29

标签: apache symfony php

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

1 个答案:

答案 0 :(得分:0)

我遇到了与ProxyPassMatch相同的问题,但是使用和SetHandler一切正常。

762   access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
762   open("/lib/x86_64-linux-gnu/libdl.so.2", O_RDONLY) = 3
762   read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\340\r\0\0\0\0\0\0"..., 832) = 832
762   fstat(3, {st_mode=S_IFREG|0644, st_size=14768, ...}) = 0
762   mmap(NULL, 2109696, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fa0d731f000
762   mprotect(0x7fa0d7321000, 2097152, PROT_NONE) = 0
762   mmap(0x7fa0d7521000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7fa0d7521000
762   close(3)