Tôi có cấu hình sau cho ứng dụng Angular (JS), trong đó API laravel (PHP) cho cùng một ứng dụng nằm trong thư mục 'api':
người phục vụ {
nghe 80;
server_name example.com www.example.com;
gốc /var/www/html/mydomain.com; #đường dẫn đến thư mục tĩnh
chỉ mục index.html index.htm index.php;
bộ ký tự utf-8;
địa điểm / {
try_files $uri $uri/ /index.php?$args;
}
vị trí /api {
bí danh /var/www/html/example.com/api/public;
try_files $uri $uri/ @laravelapi;
vị trí ~ \.php$ {
bao gồm fastcgi_params;
fastcgi_pass 127.0.0.1:9072; #set port cho php-fpm để nghe
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
}
}
địa điểm @laravelapi {
viết lại /api/(.*)?$ /api/index.php?$is_args$args cuối cùng;
}
vị trí = /favicon.ico { truy cập_đăng xuất; log_not_found tắt; }
vị trí = /robots.txt { truy cập_đăng xuất; log_not_found tắt; }
error_page 404 /index.php;
vị trí ~ /\.(?! nổi tiếng).* {
Phủ nhận tất cả;
}
}
web (JS) hoạt động rất tốt, nhưng tất cả các cuộc gọi APi như: http://www.example.com/api/public/pokemons
không thành công với thông báo "Không tìm thấy tệp". Kiểm tra file error_log của nginx:
2022/03/18 12:08:47 [lỗi] 8028#8028: *26642 FastCGI được gửi trong thiết bị lỗi chuẩn: "Không xác định được tập lệnh chính" trong khi đọc tiêu đề phản hồi từ thượng nguồn, máy khách: 198.41.242.154, máy chủ: example.com, /127.0 .0.1:9072", máy chủ lưu trữ: "www.example.com"
Không chắc tại sao lại xảy ra sự cố, tôi có các trang web khác đang chạy trên cùng cấu hình PHP FPM và chúng hoạt động tốt.
Bất cứ ý tưởng những gì tôi đang mất tích?