Ошибка 403 Запрещено в Nginx на Ubuntu 24.04 LTS

Вопрос или проблема

Я новичок в Linux и Nginx. Я использую Nginx 1.24.0 на Ubuntu 24.04 LTS. По умолчанию Nginx создает виртуальный хост в /var/www/html и правильно обслуживает файлы, когда я создаю там виртуальные хосты. Однако я пытаюсь обслуживать виртуальный хост и постоянно получаю ошибку 403 Forbidden.

Вот настройки и детали:

  • Конфигурация виртуального хоста:

    server {
        listen 80;
        listen [::]:80;
    
        root /home/amyr/Desktop/Sites/telbot/public;
        index index.html index.htm index.nginx-debian.html index.php;
    
        server_name telegrambot www.telegrambot;
    
        # location / {
        #     try_files $uri $uri/ =404;
        # }
    }
    
  • Файл hosts:

    127.0.0.1       localhost
    127.0.1.1       Amyr-Linux
    127.0.0.1       telegrambot
    127.0.0.1       www.telegrambot
    127.0.0.1       example.ubuntu.com
    
    # Следующие строки желательны для хостов, поддерживающих IPv6
    ::1     ip6-localhost ip6-loopback
    fe00::0 ip6-localnet
    ff00::0 ip6-mcastprefix
    ff02::1 ip6-allnodes
    ff02::2 ip6-allrouters
    
  • Права доступа к папкам:

    drwxrwxrwx 3 root root 4096 Sep 24 19:08 Sites
    drwxrwxrwx 12 root root 4096 Sep 24 19:13 telbot
    drwxrwxrwx  2 root root   4096 Sep 24 19:28 public
    -rwxrwxrwx 1 amyr amyr 103 Sep 24 19:22 index.html
    
  • Статус Nginx:

    ● nginx.service - Высокопроизводительный веб-сервер и сервер обратного прокси
         Загрузка: загружен (/usr/lib/systemd/system/nginx.service; включен; предустановлено: включен)
         Активно: активно (работает) с Вт 2024-09-24 20:15:58 +0330; 7мин назад
    
nginx: конфигурационный файл /etc/nginx/nginx.conf синтаксически верен
nginx: тест конфигурационного файла /etc/nginx/nginx.conf успешен
# конфигурационный файл /etc/nginx/nginx.conf:
user www-data;
worker_processes auto;
pid /run/nginx.pid;
error_log /var/log/nginx/error.log;
include /etc/nginx/modules-enabled/*.conf;

events {
    worker_connections 768;
    # multi_accept on;
}

http {

    ##
    # Основные настройки
    ##

    sendfile on;
    tcp_nopush on;
    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-настройки
    ##

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Отказ от SSLv3, см. POODLE
    ssl_prefer_server_ciphers on;

    ##
    # Настройки логирования
    ##

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

    ##
    # Настройки Gzip
    ##

    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;

    ##
    # Конфигурации виртуальных хостов
    ##

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


#mail {
#   # См. образец сценария аутентификации на:
#   # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
#
#   # auth_http localhost/auth.php;
#   # pop3_capabilities "TOP" "USER";
#   # imap_capabilities "IMAP4rev1" "UIDPLUS";
#
#   server {
#       listen     localhost:110;
#       protocol   pop3;
#       proxy      on;
#   }
#
#   server {
#       listen     localhost:143;
#       protocol   imap;
#       proxy      on;
#   }
#}

# конфигурационный файл /etc/nginx/mime.types:

types {
    text/html                                        html htm shtml;
    text/css                                         css;
    text/xml                                         xml;
    image/gif                                        gif;
    image/jpeg                                       jpeg jpg;
    application/javascript                           js;
    application/atom+xml                             atom;
    application/rss+xml                              rss;

    text/mathml                                      mml;
    text/plain                                       txt;
    text/vnd.sun.j2me.app-descriptor                 jad;
    text/vnd.wap.wml                                 wml;
    text/x-component                                 htc;

    image/avif                                       avif;
    image/png                                        png;
    image/svg+xml                                    svg svgz;
    image/tiff                                       tif tiff;
    image/vnd.wap.wbmp                               wbmp;
    image/webp                                       webp;
    image/x-icon                                     ico;
    image/x-jng                                      jng;
    image/x-ms-bmp                                   bmp;

    font/woff                                        woff;
    font/woff2                                       woff2;

    application/java-archive                         jar war ear;
    application/json                                 json;
    application/mac-binhex40                         hqx;
    application/msword                               doc;
    application/pdf                                  pdf;
    application/postscript                           ps eps ai;
    application/rtf                                  rtf;
    application/vnd.apple.mpegurl                    m3u8;
    application/vnd.google-earth.kml+xml             kml;
    application/vnd.google-earth.kmz                 kmz;
    application/vnd.ms-excel                         xls;
    application/vnd.ms-fontobject                    eot;
    application/vnd.ms-powerpoint                    ppt;
    application/vnd.oasis.opendocument.graphics      odg;
    application/vnd.oasis.opendocument.presentation  odp;
    application/vnd.oasis.opendocument.spreadsheet   ods;
    application/vnd.oasis.opendocument.text          odt;
    application/vnd.openxmlformats-officedocument.presentationml.presentation
                                                     pptx;
    application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
                                                     xlsx;
    application/vnd.openxmlformats-officedocument.wordprocessingml.document
                                                     docx;
    application/vnd.wap.wmlc                         wmlc;
    application/wasm                                 wasm;
    application/x-7z-compressed                      7z;
    application/x-cocoa                              cco;
    application/x-java-archive-diff                  jardiff;
    application/x-java-jnlp-file                     jnlp;
    application/x-makeself                           run;
    application/x-perl                               pl pm;
    application/x-pilot                              prc pdb;
    application/x-rar-compressed                     rar;
    application/x-redhat-package-manager             rpm;
    application/x-sea                                sea;
    application/x-shockwave-flash                    swf;
    application/x-stuffit                            sit;
    application/x-tcl                                tcl tk;
    application/x-x509-ca-cert                       der pem crt;
    application/x-xpinstall                          xpi;
    application/xhtml+xml                            xhtml;
    application/xspf+xml                             xspf;
    application/zip                                  zip;

    application/octet-stream                         bin exe dll;
    application/octet-stream                         deb;
    application/octet-stream                         dmg;
    application/octet-stream                         iso img;
    application/octet-stream                         msi msp msm;

    audio/midi                                       mid midi kar;
    audio/mpeg                                       mp3;
    audio/ogg                                        ogg;
    audio/x-m4a                                      m4a;
    audio/x-realaudio                                ra;

    video/3gpp                                       3gpp 3gp;
    video/mp2t                                       ts;
    video/mp4                                        mp4;
    video/mpeg                                       mpeg mpg;
    video/ogg                                        ogv;
    video/quicktime                                  mov;
    video/webm                                       webm;
    video/x-flv                                      flv;
    video/x-m4v                                      m4v;
    video/x-matroska                                 mkv;
    video/x-mng                                      mng;
    video/x-ms-asf                                   asx asf;
    video/x-ms-wmv                                   wmv;
    video/x-msvideo                                  avi;
}

# конфигурационный файл /etc/nginx/sites-enabled/default:
##
# Вам следует посмотреть на следующие URL, чтобы получить полное понимание
# конфигурационных файлов Nginx и полностью использовать возможности Nginx.
# https://www.nginx.com/resources/wiki/start/
# https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/
# https://wiki.debian.org/Nginx/DirectoryStructure
#
# В большинстве случаев администраторы удаляют этот файл из sites-enabled/ и
# оставляют его в качестве справочного в sites-available, где он будет продолжать
# обновляться командой упаковки nginx.
#
# Этот файл автоматически загрузит конфигурационные файлы, предоставленные другими
# приложениями, такими как Drupal или WordPress. Эти приложения будут доступны
# под путем с именем этого пакета, таким как /drupal8.
#
# Пожалуйста, смотрите /usr/share/doc/nginx-doc/examples/ для более детальных примеров.
##

# Конфигурация сервера по умолчанию
#
server {
    listen 80 default_server;
    listen [::]:80 default_server;

    # Конфигурация SSL
    #
    # listen 443 ssl default_server;
    # listen [::]:443 ssl default_server;
    #
    # Замечание: вам следует отключить gzip для SSL трафика.
    # См.: https://bugs.debian.org/773332
    #
    # Ознакомьтесь с ssl_ciphers, чтобы обеспечить безопасную конфигурацию.
    # См.: https://bugs.debian.org/765782
    #
    # Самозаверяющие сертификаты, сгенерированные пакетом ssl-cert
    # Не используйте их на производственном сервере!
    #
    # include snippets/snakeoil.conf;

    root /var/www/html;

    # Добавьте index.php в список, если вы используете PHP
    index index.html index.htm index.nginx-debian.html;

    server_name _;

    location / {
        # Сначала попытайтесь обслужить запрос как файл, затем
        # как директорию, затем вернуться к отображению 404.
        try_files $uri $uri/ =404;
    }

    # передать PHP-скрипты на сервер FastCGI
    #
    #location ~ \.php$ {
    #   include snippets/fastcgi-php.conf;
    #
    #   # С php-fpm (или другими unix-сокетами):
    #   fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    #   # С php-cgi (или другими tcp-сокетами):
    #   fastcgi_pass 127.0.0.1:9000;
    #}

    # запретить доступ к .htaccess файлам, если корень документа Apache
    # совпадает с корнем nginx
    #
    #location ~ /\.ht {
    #   deny all;
    #}
}

# Конфигурация виртуального хоста для example.com
#
# Вы можете переместить это в другой файл в sites-available/ и создать символическую ссылку
# на sites-enabled/, чтобы включить его.
#
#server {
#   listen 80;
#   listen [::]:80;
#
#   server_name example.com;
#
#   root /var/www/example.com;
#   index index.html;
#
#   location / {
#           try_files $uri $uri/ =404;
#   }
#}

# конфигурационный файл /etc/nginx/sites-enabled/telegrambot:
server {
    listen 81;
    listen [::]:81;

    server_name telegrambot.test www.telegrambot.test;

    root /var/www/telegrambot/public;
    index index.html index.htm index.php index.nginx-debian.html;

    location / {
        try_files $uri $uri/ =404;
    }
}

# конфигурационный файл /etc/nginx/sites-enabled/tutorial:
server {
    listen 81;
    listen [::]:81;

    server_name example.ubuntu.com;

    root /var/www/tutorial;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}

Файлы в /var/www/html работают нормально, но когда я пытаюсь обслужить из /home/amyr/Desktop/Sites/telbot/public или из любых других мест, которые я создал, я получаю ошибку 403 Forbidden.

Ваша конфигурация указывает, что telegrambot на порту 82. Вы можете получить к нему доступ по http://telegrambot:82. Либо вам нужно изменить директиву listen на порт 80.

Это было не из-за порта. Я переместил папку в директорию /var/www, и теперь все в порядке. Однако есть одна проблема: я только что установил новое приложение Laravel (PHP-фреймворк) в свою папку в /var/www/telegrambot и создал виртуальный хост (telegrambot.test:81) для этой папки (путь = /var/www/telegrambot/public). Теперь я хочу, чтобы Nginx открыл мой файл index.php (который находится в моей публичной папке). Но он пытается его скачать. Изображение здесь

Моя конфигурация:

server {
    listen 81;
    listen [::]:81;

    server_name telegrambot.test www.telegrambot.test;

    root /var/www/telegrambot/public;
    index index.html index.htm index.php index.nginx-debian.html;

    location / {
        try_files $uri $uri/ =404;
    }
}

А вот вывод моего nginx -T:

nginx: конфигурационный файл /etc/nginx/nginx.conf синтаксически верен
nginx: тест конфигурационного файла /etc/nginx/nginx.conf успешен
# конфигурационный файл /etc/nginx/nginx.conf:
user www-data;
worker_processes auto;
pid /run/nginx.pid;
error_log /var/log/nginx/error.log;
include /etc/nginx/modules-enabled/*.conf;

events {
    worker_connections 768;
    # multi_accept on;
}

http {

    ##
    # Основные настройки
    ##

    sendfile on;
    tcp_nopush on;
    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-настройки
    ##

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Отказ от SSLv3, см. POODLE
    ssl_prefer_server_ciphers on;

    ##
    # Настройки логирования
    ##

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

    ##
    # Настройки Gzip
    ##

    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;

    ##
    # Конфигурации виртуальных хостов
    ##

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


#mail {
#   # См. образец сценария аутентификации на:
#   # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
#
#   # auth_http localhost/auth.php;
#   # pop3_capabilities "TOP" "USER";
#   # imap_capabilities "IMAP4rev1" "UIDPLUS";
#
#   server {
#       listen     localhost:110;
#       protocol   pop3;
#       proxy      on;
#   }
#
#   server {
#       listen     localhost:143;
#       protocol   imap;
#       proxy      on;
#   }
#}

# конфигурационный файл /etc/nginx/mime.types:

types {
    text/html                                        html htm shtml;
    text/css                                         css;
    text/xml                                         xml;
    image/gif                                        gif;
    image/jpeg                                       jpeg jpg;
    application/javascript                           js;
    application/atom+xml                             atom;
    application/rss+xml                              rss;

    text/mathml                                      mml;
    text/plain                                       txt;
    text/vnd.sun.j2me.app-descriptor                 jad;
    text/vnd.wap.wml                                 wml;
    text/x-component                                 htc;

    image/avif                                       avif;
    image/png                                        png;
    image/svg+xml                                    svg svgz;
    image/tiff                                       tif tiff;
    image/vnd.wap.wbmp                               wbmp;
    image/webp                                       webp;
    image/x-icon                                     ico;
    image/x-jng                                      jng;
    image/x-ms-bmp                                   bmp;

    font/woff                                        woff;
    font/woff2                                       woff2;

    application/java-archive                         jar war ear;
    application/json                                 json;
    application/mac-binhex40                         hqx;
    application/msword                               doc;
    application/pdf                                  pdf;
    application/postscript                           ps eps ai;
    application/rtf                                  rtf;
    application/vnd.apple.mpegurl                    m3u8;
    application/vnd.google-earth.kml+xml             kml;
    application/vnd.google-earth.kmz                 kmz;
    application/vnd.ms-excel                         xls;
    application/vnd.ms-fontobject                    eot;
    application/vnd.ms-powerpoint                    ppt;
    application/vnd.oasis.opendocument.graphics      odg;
    application/vnd.oasis.opendocument.presentation  odp;
    application/vnd.oasis.opendocument.spreadsheet   ods;
    application/vnd.oasis.opendocument.text          odt;
    application/vnd.openxmlformats-officedocument.presentationml.presentation
                                                     pptx;
    application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
                                                     xlsx;
    application/vnd.openxmlformats-officedocument.wordprocessingml.document
                                                     docx;
    application/vnd.wap.wmlc                         wmlc;
    application/wasm                                 wasm;
    application/x-7z-compressed                      7z;
    application/x-cocoa                              cco;
    application/x-java-archive-diff                  jardiff;
    application/x-java-jnlp-file                     jnlp;
    application/x-makeself                           run;
    application/x-perl                               pl pm;
    application/x-pilot                              prc pdb;
    application/x-rar-compressed                     rar;
    application/x-redhat-package-manager             rpm;
    application/x-sea                                sea;
    application/x-shockwave-flash                    swf;
    application/x-stuffit                            sit;
    application/x-tcl                                tcl tk;
    application/x-x509-ca-cert                       der pem crt;
    application/x-xpinstall                          xpi;
    application/xhtml+xml                            xhtml;
    application/xspf+xml                             xspf;
    application/zip                                  zip;

    application/octet-stream                         bin exe dll;
    application/octet-stream                         deb;
    application/octet-stream                         dmg;
    application/octet-stream                         iso img;
    application/octet-stream                         msi msp msm;

    audio/midi                                       mid midi kar;
    audio/mpeg                                       mp3;
    audio/ogg                                        ogg;
    audio/x-m4a                                      m4a;
    audio/x-realaudio                                ra;

    video/3gpp                                       3gpp 3gp;
    video/mp2t                                       ts;
    video/mp4                                        mp4;
    video/mpeg                                       mpeg mpg;
    video/ogg                                        ogv;
    video/quicktime                                  mov;
    video/webm                                       webm;
    video/x-flv                                      flv;
    video/x-m4v                                      m4v;
    video/x-matroska                                 mkv;
    video/x-mng                                      mng;
    video/x-ms-asf                                   asx asf;
    video/x-ms-wmv                                   wmv;
    video/x-msvideo                                  avi;
}

# конфигурационный файл /etc/nginx/sites-enabled/default:
##
# Вам следует посмотреть на следующие URL, чтобы получить полное понимание
# конфигурационных файлов Nginx и полностью использовать возможности Nginx.
# https://www.nginx.com/resources/wiki/start/
# https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/
# https://wiki.debian.org/Nginx/DirectoryStructure
#
# В большинстве случаев администраторы удаляют этот файл из sites-enabled/ и
# оставляют его в качестве справочного в sites-available, где он будет продолжать
# обновляться командой упаковки nginx.
#
# Этот файл автоматически загрузит конфигурационные файлы, предоставленные другими
# приложениями, такими как Drupal или WordPress. Эти приложения будут доступны
# под путем с именем этого пакета, таким как /drupal8.
#
# Пожалуйста, смотрите /usr/share/doc/nginx-doc/examples/ для более детальных примеров.
##

# Конфигурация серверов по умолчанию
#
server {
    listen 80 default_server;
    listen [::]:80 default_server;

    # Конфигурация SSL
    #
    # listen 443 ssl default_server;
    # listen [::]:443 ssl default_server;
    #
    # Замечание: вам следует отключить gzip для SSL трафика.
    # См.: https://bugs.debian.org/773332
    #
    # Ознакомьтесь с ssl_ciphers, чтобы обеспечить безопасную конфигурацию.
    # См.: https://bugs.debian.org/765782
    #
    # Самозаверяющие сертификаты, сгенерированные пакетом ssl-cert
    # Не используйте их на производственном сервере!
    #
    # include snippets/snakeoil.conf;

    root /var/www/html;

    # Добавьте index.php в список, если вы используете PHP
    index index.html index.htm index.nginx-debian.html;

    server_name _;

    location / {
        # Сначала попытайтесь обслужить запрос как файл, затем
        # как директорию, затем вернуться к отображению 404.
        try_files $uri $uri/ =404;
    }

    # передать PHP-скрипты на сервер FastCGI
    #
    #location ~ \.php$ {
    #   include snippets/fastcgi-php.conf;
    #
    #   # С php-fpm (или другими unix-сокетами):
    #   fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    #   # С php-cgi (или другими tcp-сокетами):
    #   fastcgi_pass 127.0.0.1:9000;
    #}

    # запретить доступ к .htaccess файлам, если корень документа Apache
    # совпадает с корнем nginx
    #
    #location ~ /\.ht {
    #   deny all;
    #}
}


# Конфигурация виртуального хоста для example.com
#
# Вы можете переместить это в другой файл в sites-available/ и создать символическую ссылку
# на sites-enabled/, чтобы включить его.
#
#server {
#   listen 80;
#   listen [::]:80;
#
#   server_name example.com;
#
#   root /var/www/example.com;
#   index index.html;
#
#   location / {
#           try_files $uri $uri/ =404;
#   }
#}

# конфигурационный файл /etc/nginx/sites-enabled/telegrambot:
server {
    listen 81;
    listen [::]:81;

    server_name telegrambot.test www.telegrambot.test;

    root /var/www/telegrambot/public;
    index index.html index.htm index.php index.nginx-debian.html;

    location / {
        try_files $uri $uri/ =404;
    }
}

# конфигурационный файл /etc/nginx/sites-enabled/tutorial:
server {
    listen 81;
    listen [::]:81;

    server_name example.ubuntu.com;

    root /var/www/tutorial;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}

Я спросил у ИИ, и он посоветовал мне использовать пакет “php-fpm” и изменить мою конфигурацию на приведенную ниже версию:

server {
    listen 81;
    listen [::]:81;

    server_name telegrambot.test www.telegrambot.test;

    root /var/www/telegrambot/public;
    index index.html index.htm index.php index.nginx-debian.html;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    # Передать PHP-скрипты на сервер FastCGI
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;  # Настройте версию PHP, если необходимо
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.ht {
        deny all;
    }
}

Можно ли использовать этот пакет или есть другие решения?

Ответ или решение

403 Forbidden ошибка в Nginx на Ubuntu 24.04 LTS может возникать по нескольким причинам, особенно когда вы работаете с файлами, расположенными в нестандартных директориях, таких как /home/user/.... Давайте разберем основные моменты, которые могут помочь вам решить эту проблему.

Причины и решения для ошибки 403 Forbidden

  1. Права доступа к директориям:

    • Убедитесь, что директория и файлы, которые вы пытаетесь обслуживать, имеют правильные права доступа. Для Nginx права доступа к директориям должны быть не менее 755, а к файлам – 644. Чтобы изменить права, выполните следующие команды:
      sudo chmod -R 755 /home/amyr/Desktop/Sites/telbot
      sudo chmod -R 644 /home/amyr/Desktop/Sites/telbot/public/*
  2. Пользователь Nginx:

    • Nginx обычно запускается от имени пользователя www-data. Убедитесь, что этот пользователь имеет доступ к нужным директориям. Вы можете изменить владельца директории на www-data, используя:
      sudo chown -R www-data:www-data /home/amyr/Desktop/Sites/telbot
    • Однако рекомендуется перемещать ваши файлы в стандартные директории, такие как /var/www, где Nginx уже имеет необходимые права доступа.
  3. Конфигурация Nginx:

    • Убедитесь, что вашей конфигурации Nginx соответствует вашему приложению. На основании того, что вы указали, вы попробовали запустить Laravel. Чтобы корректно обрабатывать PHP-файлы, внесите изменения в конфигурацию, как показано ниже:

      server {
       listen 81;
       server_name telegrambot.test www.telegrambot.test;
      
       root /var/www/telegrambot/public;
       index index.php index.html index.htm index.nginx-debian.html;
      
       location / {
           try_files $uri $uri/ /index.php?$query_string;
       }
      
       location ~ \.php$ {
           include snippets/fastcgi-php.conf;  # Этот файл должен содержать настройку для FastCGI.
           fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;  # Убедитесь, что версия PHP совпадает с установленной.
           fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
           include fastcgi_params;
       }
      
       location ~ /\.ht {
           deny all;
       }
      }
    • Обратите внимание на строку try_files $uri $uri/ /index.php?$query_string;, которая позволяет Nginx передавать запросы к index.php, если файл не найден.

  4. Проверка PHP-FPM:

    • Убедитесь, что PHP-FPM установлен и работает корректно. Вы можете проверить статус PHP-FPM командой:
      sudo systemctl status php8.1-fpm
    • Если необходимо, перезапустите службу PHP-FPM:
      sudo systemctl restart php8.1-fpm

Проверка конфигурации Nginx

После всех изменений проверьте конфигурацию Nginx на ошибки и перезапустите сервер:

sudo nginx -t
sudo systemctl restart nginx

Заключение

Определение причины ошибки 403 Forbidden может быть сложной задачей, но, следуя приведенным выше шагам, вы сможете решить проблему. Обязательно убедитесь, что права доступа установлены правильно, конфигурация Nginx настроена для обработки PHP, а PHP-FPM работает без ошибок. Если у вас возникнут дополнительные вопросы, не стесняйтесь обращаться за помощью.

Оцените материал
Добавить комментарий

Капча загружается...