Apache: uso da diretiva Alias com o mod FastCGI

4

O servidor está configurado para manipular arquivos php com o fastcgi:

<IfModule mod_fastcgi.c>
    AddHandler application/x-httpd-php .php
    Action application/x-httpd-php /fcgi-bin/php-fpm virtual
    ScriptAlias /fcgi-bin/php-fpm /fcgi-extsrvs-phpfpm
    <Location "/fcgi-bin/php-fpm">
            Order Deny,Allow
            Deny from All
            Allow from env=REDIRECT_STATUS
    </Location>

</IfModule>

Em seguida, um host virtual é definido para usar este fastcgi:

<VirtualHost *:80>
    ServerName mydomain.org

    DocumentRoot /var/www/mydomain.org

    <Location />
        Order Allow,Deny
        Allow from All
        AllowOverride None
    </Location>

    <IfModule mod_fastcgi.c>
        # use the socket as defined for this pool
        FastCgiExternalServer /fcgi-extsrvs-phpfpm -socket /var/run/php5-fpm/mydomain.org.sock
    </IfModule>

    # problem here
    AliasMatch ^/(.*) /var/www/mydomain.org/index.php 

</VirtualHost>

Tudo está funcionando bem, até eu adicionar a linha AliasMatch (mesmo problema com o Alias). O objetivo é manipular todas as solicitações com o script index.php. Isso causa um erro 500 com o seguinte log:

[error] [client 88.xxx.xxx.20] Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.
[debug] core.c(3112): [client 88.xxx.xxx.20] r->uri = /fcgi-bin/php-fpm/fcgi-bin/php-fpm/fcgi-bin/php-fpm/fcgi-bin/php-fpm/fcgi-bin/php-fpm/fcgi-bin/php-fpm/fcgi-bin/php-fpm/fcgi-bin/php-fpm/fcgi-bin/php-fpm/fcgi-bin/php-fpm/
[debug] core.c(3118): [client 88.xxx.xxx.20] redirected from r->uri = /fcgi-bin/php-fpm/fcgi-bin/php-fpm/fcgi-bin/php-fpm/fcgi-bin/php-fpm/fcgi-bin/php-fpm/fcgi-bin/php-fpm/fcgi-bin/php-fpm/fcgi-bin/php-fpm/fcgi-bin/php-fpm/
...
[debug] core.c(3118): [client 88.xxx.xxx.20] redirected from r->uri = /fcgi-bin/php-fpm/
[debug] core.c(3118): [client 88.xxx.xxx.20] redirected from r->uri = /

Meu palpite é que existe um conflito entre o ScriptAlias e o AliasMatch, mas não sei como resolvê-lo.

    
por challet 29.05.2013 / 15:44

1 resposta

0

Ela é uma solução para um problema semelhante link TL; DR use mod_rewrite e desabilite a reescrita do url do script php

Mas sugiro que você mude para o apache2.4 e use o mod_proxy_fcgi link onde você pode

<FilesMatch "\.php$">
    SetHandler  "proxy:unix:/var/run/php5-fpm/mydomain.org.sock|fcgi://host1/"
</FilesMatch>

E com isso todos os redirecionamentos, as reescritas devem funcionar como esperado. BTW mod_fastcgi está desatualizado e feio. Se você preferir ficar com o 2.2 (que agora é EOL'ed) Você pode tentar link (eu uso em um site ocupado com php-fpm sem problemas) sua configuração também é limpa e compatível com redirecionamentos.

    
por 31.05.2016 / 20:33