Моя среда выглядит следующим образом:
- версия Linux 4.4.0-105-generic (buildd @ lgw01-amd64-060) (версия gcc 5.4.0 20160609 (gcc)Ubuntu 5.4.0-6ubuntu1 ~ 16.04.5)) # 128-Ubuntu SMP чт 14 дек. 12:42: 11 UTC 2017
- Версия Nginx: nginx / 1.14.1
- PHP 7.2.13 (cli) (построено: 7 декабря 2018 16:36:58) (NTS)
- Laravel 5.6
По историческим причинам мне пришлось использовать a.php в качестве маршрутадля моего проекта.
Когда я пытаюсь получить доступ к a.php после завершения настройки, на странице отображается следующее: Не указан входной файл.
И когда я получаю доступ к маршруту без phpфайл, он будет отображать страницу 404 laravel, это правильно, потому что этот маршрут я не установил
Так что я думаю, проблема в том, что маршрут находится в файле php.Когда маршрут переадресован, у меня возникают проблемы, которых я не знаю.К сожалению, я не могу решить это.
Моя конфигурация nginx выглядит следующим образом:
server {
listen 80; ## listen for ipv4; this line is default and implied
listen [::]:80 default ipv6only=on; ## listen for ipv6
root /var/www/html/public;
index index.html index.htm index.php;
# Make site accessible from http://localhost/
server_name _;
# Disable sendfile as per https://docs.vagrantup.com/v2/synced-folders/virtualbox.html
sendfile off;
# Add stdout logging
error_log /dev/null;
access_log /dev/null;
#static rewrite or try_files
#core route redirect
location / {
try_files $uri $uri/ /index.php?$query_string;
}
error_page 404 /404.html;
location = /404.html {
root /var/www/html/public;
internal;
}
# pass the PHP scripts to FastCGI server listening on socket
location ~ \.php$ {
#include fastcgi_params;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
#fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
fastcgi_param HTTPS $https if_not_empty;
fastcgi_param REDIRECT_STATUS 200;
fastcgi_param HTTP_PROXY "";
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~* \.(jpg|jpeg|gif|png|css|js|ico|webp|tiff|ttf|svg)$ {
expires 2d;
}
}
Я попытался изменить значение cgi.fix_pathinfo в php.ini на 1
Затем возникает ошибка: файл не найден
Кажется, что он не оказывает влияния
Кроме того, моя локальная среда нормальная, но я использую valet локально, он интегрирует nginx и сделал несколькоизменения, я не могу сравнить разницу между его конфигурацией и сетевым окружением.