У меня есть следующая конфигурация для приложения Angular (JS), где API laravel (PHP) для того же приложения находится внутри папки «api»:
сервер {
слушать 80;
имя_сервера example.com www.example.com;
корень /var/www/html/mydomain.com; #путь к статической директории
индекс index.html index.htm index.php;
кодировка utf-8;
место расположения / {
try_files $uri $uri/ /index.php?$args;
}
расположение /API {
псевдоним /var/www/html/example.com/api/public;
try_files $uri $uri/ @laravelapi;
расположение ~ \.php$ {
включить fastcgi_params;
fastcgi_pass 127.0.0.1:9072; # установить порт для прослушивания php-fpm
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
}
}
местоположение @laravelapi {
переписать /api/(.*)?$ /api/index.php?$is_args$args последним;
}
location = /favicon.ico { access_log off; log_not_found выключен; }
location = /robots.txt { access_log off; log_not_found выключен; }
страница_ошибки 404 /index.php;
расположение ~ /\.(?!известно).* {
отрицать все;
}
}
Интернет (JS) работает отлично, но все вызовы APi, такие как: http://www.example.com/api/public/pokemons
сбой с сообщением «Файл не найден». Проверка файла error_log nginx:
18.03.2022, 12:08:47 [ошибка] 8028#8028: *26642 FastCGI отправлено в stderr: «Первичный сценарий неизвестен» при чтении заголовка ответа из восходящего потока, клиент: 198.41.242.154, сервер: example.com, /127.0 .0.1:9072", хост: "www.example.com"
Не уверен, в чем проблема, у меня есть другие веб-сайты, работающие на той же конфигурации PHP FPM, и они работают нормально.
Есть идеи, что мне не хватает?