Por que PHP-FPM perde o proxy que funciona no teu terminal
Segue a configuración do proxy ata os traballadores de PHP-FPM e distingue o seu contorno dos contextos de fluxo de PHP.
O mesmo ficheiro PHP pode usar un proxy nun terminal e saír directamente cando o serve PHP-FPM. Empeza comparando os procesos que o executan. O teu terminal inicia PHP co contorno da súa shell; o servidor web envía unha solicitude a traballadores que FPM xa creou.
Mira o contorno do traballador
A configuración do pool de FPM fornece clear_env e entradas env[NAME] explícitas. Coa limpeza do contorno activada, exportar unha variable na túa shell de inicio de sesión non a coloca nun traballador. As entradas do pool poden pasar variables seleccionadas:
env[http_proxy] = http://203.0.113.10:8080
env[https_proxy] = http://203.0.113.10:8080
Aplica os cambios de configuración mediante o procedemento habitual de recarga de FPM do teu despregamento. Pon os valores no pool que realmente serve a aplicación. Outro pool, conta de servizo ou contedor pode explicar por que unha edición aparentemente correcta non ten efecto.
Ao depurar unha solicitude activa, comproba só se existen os axustes esperados. Unha páxina de diagnóstico pública que imprima valores completos do contorno pode expor credenciais do proxy xunto con segredos non relacionados.
Despois revisa o transporte de PHP
libcurl ten unha xestión documentada do contorno de proxy; un identificador cURL de PHP explícito tamén ten as súas propias opcións. O envoltorio de fluxo HTTP de PHP ten unha configuración de contexto aparte. Fornecer variables a un traballador non fai que todas as API de rede de PHP as consuman.
Iso dá unha comprobación útil en dúas partes: confirma que recibiu o traballador e despois confirma como le o cliente HTTP elixido os axustes de proxy. Se CLI e FPM reciben os mesmos valores pero aínda así se comportan de xeito distinto, compara a continuación as opcións do cliente e as regras de omisión. Editar repetidamente o perfil da shell non pode resolver unha diferenza dentro do cliente HTTP do traballador.