Nome do funcionário do Apache ProxyPass por muito tempo

1

Estou passando meus arquivos php para php5-fpm dentro do arquivo Apache .conf, no entanto estou recebendo uma mensagem de erro ao reiniciar o servidor Apache:

ProxyPass worker name (fcgi://127.0.0.1:9000/home/averyverylong/directoryname/tothe/www/working/directory/$1) too long.

Estou passando arquivos php para o php-fpm via:

ProxyPassMatch ^/(.*\.php(/.*)?)$ \
  fcgi://127.0.0.1:9000/home/averyverylong/directoryname/tothe/www/working/directory/$1

Obviamente, se eu encurtar o nome do diretório, ele funciona bem. No entanto, isso não é realmente uma opção.

Em execução: Apache / 2.4.10 (Ubuntu 14.04) PHP5-FPM

Estou perplexa com isso e passei o dia inteiro tentando descobrir uma solução para isso. Minhas habilidades de servidor não são as mais strongs, qualquer feedback seria muito apreciado.

    
por Jayden Bryant 01.06.2015 / 08:46

4 respostas

0

Como solução alternativa, você pode criar um link simbólico com um nome mais curto para o caminho mais longo. Por exemplo:

ln -s /home/averyverylong/directoryname/tothe/www/working/directory \
  /var/www/html/shortcut

Em seguida, use

ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/var/www/html/shortcut
    
por 01.06.2015 / 09:27
2

Uma solução alternativa (e na minha opinião, mais elegante) seria usar o RewriteEngine, como é discutido neste relatório de erros do Apache link

# This directive must come before the following one in order
# block access to arbitrary URIs on the origin server!
# As an alternative one can also use "RewriteRule /UNUSED - [F]"
ProxyPass /UNUSED !

# Configure a connection pool for the origin server
# http://myserver.example.org:9081
ProxyPass /UNUSED fcgi://127.0.0.1:9000

RewriteEngine On

# Proxy "/long" to a long URI on the origin server,
# [P] flag at end of line is important
RewriteRule ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/home/averyverylong/directoryname/tothe/www/working/directory/$1 [P]

Isso permite que você continue usando a mesma estrutura de arquivos sem a sobrecarga de criar manualmente links simbólicos em todos os lugares (o que também não funcionará nas máquinas Windows). Acredito que o limite de nomes de trabalhadores está sendo gerado em uma versão futura do Apache, mas por enquanto essa solução alternativa deve fornecer o resultado desejado.

    
por 10.12.2015 / 11:50
0

De acordo com a documentação do symfony no apache > = 2.4.9 você pode usar

<FilesMatch \.php$>
    # 2.4.10+ can proxy to unix socket
    # SetHandler "proxy:unix:/var/run/php5-fpm.sock|fcgi://localhost/"

    # Else we can just use a tcp socket:
    SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch>

link
link

    
por 05.11.2015 / 22:40
0

Arquivado para o Ubuntu. Por favor, indique que você está afetado e solicite atualização para Trusty. Colocar a correção em uma versão estável exigirá alguma contribuição da comunidade.

link

    
por 28.02.2017 / 04:11