Все страницы показывают 404 Nginx не найден, но домашняя страница работает нормально

Я запускаю веб-сайт PHP, на котором все подстраницы показывают 404 Not Found Nginx, но домашняя страница и панель администратора работают нормально. Я запускаю веб-сайт Php, который работает на сервере Nginx -

Вот мой файл Nginx по умолчанию

server {
listen 80 default_server;
listen [::]:80 default_server;

# SSL configuration
#
# listen 443 ssl default_server;
# listen [::]:443 ssl default_server;
#
# Note: You should disable gzip for SSL traffic.
# See: https://bugs.debian.org/773332
#
# Read up on ssl_ciphers to ensure a secure configuration.
# See: https://bugs.debian.org/765782
#
# Self signed certs generated by the ssl-cert package
# Don't use them in a production server!
#
# include snippets/snakeoil.conf;

root /var/www/html;

# Add index.php to the list if you are using PHP
index index.php index.html index.htm index.nginx-debian.html;

server_name (My IP Pasted here);

location / {
    # First attempt to serve request as file, then
    # as directory, then fall back to displaying a 404.
    try_files $uri $uri/ =404;
}

# pass PHP scripts to FastCGI server
#
location ~ \.php$ {
    include snippets/fastcgi-php.conf;

    # With php-fpm (or other unix sockets):
    fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
    # With php-cgi (or other tcp sockets):
    #fastcgi_pass 127.0.0.1:9000;
}

# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
location ~ /\.ht {
    deny all;
}}   

И файл Nginx.conf как


user www-data;  
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

events {
    worker_connections 100000;
    # multi_accept on;
}

http {

    ##
    # Basic Settings
    ##

    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    types_hash_max_size 2048;
    # server_tokens off;

    # server_names_hash_bucket_size 64;
    # server_name_in_redirect off;

    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    ##
    # SSL Settings
    ##

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE
    ssl_prefer_server_ciphers on;

    ##
    # Logging Settings
    ##

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    ##
    # Gzip Settings
    ##

    gzip on;

    # gzip_vary on;
    # gzip_proxied any;
    # gzip_comp_level 6;
    # gzip_buffers 16 8k;
    # gzip_http_version 1.1;
    # gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

    ##
    # Virtual Host Configs
    ##

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
}

Это мои файлы. Вот только домашняя страница работает нормально, но другие подстраницы не работают, здесь возникает ошибка 404 not found nginx. Даже рабочий файл админки. Пожалуйста, помогите мне...


person Vijay Singh    schedule 02.05.2019    source источник
comment
Попробуйте изменить строку try_files $uri $uri/ =404; на try_files $uri $uri/ /index.php$is_args$args;. Кстати, если ваша сторона новая, есть причина установить `worker_connections 100000;` на 100000, 1000 будет гораздо больше для начала.   -  person hcheung    schedule 02.05.2019
comment
Не работает, все еще сталкиваюсь с той же ошибкой   -  person Vijay Singh    schedule 03.05.2019
comment
ты перезапускал nginx? вы используете вордпресс? или что-то еще для вашего сайта?   -  person hcheung    schedule 03.05.2019
comment
Да, я перезапустил nginx, но он все равно показывает ошибку 404 Not Found nginx/1.15.9 (Ubuntu). Нет, я не использую WordPress, я использую хостинг Digitalocean и просто создаю дроплет, затем сначала устанавливаю nginx, затем устанавливаю PHP-FPM 7.2, затем создаю базу данных, а затем PhpMyAdmin. После этого я установил веб-сайт PHP, используя filezilla в моем каталоге -> /var/www/html Даже я попробовал и протестировал тот же скрипт на XAMP в моем локальном компьютере, и он отлично работает и работает нормально.   -  person Vijay Singh    schedule 03.05.2019
comment
Пожалуйста, проверьте Редактировать   -  person Vijay Singh    schedule 03.05.2019
comment
Вот мой файл журнала ошибок Nginx по умолчанию — 02.05.2019 01:57:29 [появление] 14537#14537: неожиданный конец файла, ожидание } в /etc/nginx/sites-enabled/default:92 2019/ 02.05 01:59:13 [уведомление] 14565#14565: запущен процесс обработки сигнала 02.05.2019 02:02:06 [уведомление] 15984#15984: процесс обработки сигнала запущен ] 26291#26291: сигнальный процесс запущен 2019/05/02 02:24:54 [уведомление] 26307#26307: сигнальный процесс запущен 2019/05/02 02:32:12 [уведомление] 26333#26333: сигнальный процесс запущен 2019/ 03.05 02:11:48 [уведомление] 2385#2385: сигнальный процесс запущен --   -  person Vijay Singh    schedule 03.05.2019


Ответы (1)


Вот недвое решение проблемы

Измените строку в блоке местоположения затронутого сайта на:

try_files $uri $uri/ /index.php?q=$uri&$args;

и перезагрузить nginx

sudo systemctl reload nginx

Все должно быть хорошо :)

Ссылка на исходный вопрос

person Bobby Axe    schedule 08.09.2019