Am următoarea configurație pentru aplicația Angular (JS), unde API-ul laravel (PHP) pentru aceeași aplicație se află în folderul „api”:
Server {
asculta 80;
nume_server example.com www.example.com;
rădăcină /var/www/html/mydomain.com; #cale către directorul static
index index.html index.htm index.php;
set de caractere utf-8;
Locație / {
try_files $uri $uri/ /index.php?$args;
}
locație /api {
alias /var/www/html/example.com/api/public;
try_files $uri $uri/ @laravelapi;
locație ~ \.php$ {
include fastcgi_params;
fastcgi_pass 127.0.0.1:9072; #set port pentru php-fpm pentru a asculta
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
}
}
locație @laravelapi {
rescrie /api/(.*)?$ /api/index.php?$is_args$args ultimul;
}
locație = /favicon.ico { access_log off; log_not_found off; }
locație = /robots.txt { access_log off; log_not_found off; }
eroare_page 404 /index.php;
locație ~ /\.(?!cunoscut).* {
nega totul;
}
}
web-ul (JS) funcționează excelent, dar toate apelurile APi, cum ar fi: http://www.example.com/api/public/pokemons
eșuează cu mesajul „Fișier nu a fost găsit”. Verificarea fișierului error_log al nginx:
2022/03/18 12:08:47 [eroare] 8028#8028: *26642 FastCGI a trimis în stderr: „Scriptul principal necunoscut” în timp ce citiți antetul răspunsului din amonte, client: 198.41.242.154, server: example.com, /127.0 .0.1:9072”, gazdă: „www.example.com”
Nu sunt sigur de ce există o problemă, am alte site-uri care rulează pe aceeași configurație PHP FPM și funcționează bine.
Ai idee ce îmi lipsește?