Vấn đề: Khi bật php-fpm, tiêu đề cors được đặt trong .htaccess không được hiển thị trong phản hồi. Khi tắt php-fpm, tiêu đề cors được hiển thị trong phản hồi.
Thiết lập hiện tại:
Người phục vụ:
- Ubuntu 20.04 trên đám mây Aliyun (khu vực Thượng Hải)
- Apache 2.4, kích hoạt mô-đun tiêu đề
- php 7.4 có bật php7.4-fpm.
Trong .htaccess tôi đã đặt:
Tiêu đề luôn đặt Kiểm soát truy cập-Cho phép-Xuất xứ "*"
Tiêu đề luôn đặt Access-Control-Allow-Headers "origin, x-requested-with, content-type"
Tiêu đề luôn đặt Access-Control-Allow-Methods "PUT, GET, POST, DELETE, OPTIONS"
Trong cấu hình vhost tôi đã đặt:
<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>
Nếu tôi nhận xét dòng # ProxyPassMatch ....
và khởi động lại apache và php-fpm, các tiêu đề cho cors được đặt trong .htaccess ở trên được hiển thị như mong đợi.
Tuy nhiên, nếu php-fpm được đặt trong vhost, sau khi khởi động lại apache và php-fpm, các tiêu đề được liệt kê trong .htaccess sẽ không được cung cấp để phản hồi.
Phản hồi trong cả hai trường hợp (có và không có php-fpm) vẫn hợp lệ, mã 200, với một số văn bản tiếng vang mà tôi đã đặt làm đầu ra.
Không có lỗi nào được ghi lại.
Tôi chưa bao giờ gặp sự cố này trên các phiên bản AWS, kể cả khi phát triển trong môi trường cục bộ của mình.
Ai đó có thể chỉ cho tôi cách php-fpm ảnh hưởng đến các tiêu đề phản hồi không, có phải tôi đang làm sai điều gì đó trong cài đặt vhost/htaccess hoặc thiếu .ini không?