Problemă: Când php-fpm este activat, anteturile cors setate în .htaccess nu sunt afișate ca răspuns. Când php-fpm este dezactivat, anteturile cors sunt afișate în răspuns.
Configurare curentă:
Server:
- Ubuntu 20.04 pe cloud Aliyun (regiunea Shanghai)
- Apache 2.4, modulul antete activat
- php 7.4 cu php7.4-fpm activat.
În .htaccess am setat:
Antetul setat întotdeauna Access-Control-Allow-Origin „*”
Antetul setat întotdeauna Access-Control-Allow-Headers „origine, x-requested-with, content-type”
Antetul setat întotdeauna Acces-Control-Permite-Metode „PUT, GET, POST, DELETE, OPTIONS”
În vhost config am setat:
<VirtualHost *:443>
ServerName api.test.com
DocumentRoot /path/to/www
ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/path/to/www/$1
ErrorLog /path/to/log
CustomLog /path/to/log
<Directory /path/to/www/ >
Options Indexes FollowSymlinks Includes execCGI
AllowOverride All
Require all granted
</Directory>
SSLCErtificateFile /path/to/pem
SSLCertificateKeyFile /path/to/key
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
Dacă comentez rândul # ProxyPassMatch ....
și reporniți apache și php-fpm, anteturile pentru cors setate în .htaccess de mai sus sunt afișate așa cum era de așteptat.
Totuși, dacă php-fpm este setat în vhost, după repornirea apache și php-fpm, anteturile listate în .htaccess nu sunt furnizate ca răspuns.
Răspunsul în ambele cazuri (cu și fără php-fpm) este încă valabil, codul 200, cu un text ecou pe care l-am setat ca ieșire.
Nu au fost înregistrate erori.
Nu am întâlnit niciodată această problemă pe instanțe AWS, nici atunci când dezvoltam în mediul meu local.
Poate cineva să-mi spună cum afectează php-fpm anteturile de răspuns, fac ceva greșit în vhost / htaccess sau lipsesc setările .ini?