2014-02-12 2 views
2

Я запускаю Apache, используя mod_proxy_fcgi и PHP-FPM, и пытаюсь заставить его работать на Symfony. Это мой первый проект с использованием Symfony и я просто получить чувство для него в данный момент ..Правило ProxyPassMatch для Symfony 2.4

Моего определение ВХоста в настоящее время выглядит следующим образом:

<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, а не демо, с разбитыми путями встраивать ресурсы.

+0

Вы смогли это решить? У меня такая же проблема –

+0

Ошибка с PHP FPM, где обычный набор переменных $ _SERVER неправильно установлен в соответствии со стандартом. Работа вокруг заключается в том, чтобы установить эти переменные самостоятельно, прежде чем HttpFoundation/Request будет построен. Прямо сейчас я не совсем уверен, какие переменные необходимо установить (SCRIPT_FILENAME и/или PATH_INFO) или лучшее место для их модификации в проекте Symfony (в AppKernel.php?). – user2045006

ответ

0

У меня были те же проблемы с 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> 
Смежные вопросы