Рейтинг:0

Apache2: Почему я получаю ошибку 403 Forbidden?

флаг gb

Я возился с этим в течение нескольких дней :(

Почему я получаю сообщение об ошибке 403 Forbidden на странице example.com/contact?

Это проблема с правами доступа к файлам/папкам, пользователем Apache, виртуальными хостами или Python?

Я пытаюсь запустить приложение Django в /contact, но первая проблема — ошибка 403.

  • Я использую Ubuntu 20.04.3 LTS.
  • Apache 2.4.41 установлен и работает
  • Python 3.8 и Django установлены
  • libapache2-mod-wsgi-py3 установлен и включен
  • конфигурационный тест apachectl Синтаксис ОК
  • Все файлы www-данные:www-данные
  • Каталоги chmod +x
  • example.com/index.html работает

/var/журнал/apache2/access.log пустой

/var/журнал/apache2/error.log содержит:

[mpm_prefork:notice] [pid 69090] AH00163: Apache/2.4.41 (Ubuntu) OpenSSL/1.1.1k mod_wsgi/4.6.8 Python/3.8 настроен — нормальное возобновление работы операции

[ядро: уведомление] [pid 69090] AH00094: Командная строка: '/usr/sbin/apache2'

Файл .htaccess в корне имеет

 RewriteEngine включен
 Подпись сервера выключена
 Опции Все -Индексы

Это моя файловая структура public_html:

введите описание изображения здесь

/etc/apache2/сайты-доступны/по умолчанию-ssl.conf:

  <IfModule mod_ssl.c>
    <VirtualHost _default_:443>
        ServerAdmin webmaster@localhost
    
        DocumentRoot /var/www/html
    
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
    
        SSLEngine on
    
        SSLCertificateFile  /etc/ssl/certs/ssl-cert-snakeoil.pem
        SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
    
        <FilesMatch "\.(cgi|shtml|phtml|php)$">
                    SSLOptions +StdEnvVars
        </FilesMatch>
        <Directory /usr/lib/cgi-bin>
                    SSLOptions +StdEnvVars
        </Directory>
    
    
    Alias /static /var/www/html/example.com/public_html/contact/static
    Alias /media /var/www/html/example.com/public_html/contact/media

    <Directory /var/www/html/example.com/public_html/contact/static>
        Require all granted
    </Directory>

    <Directory /var/www/html/example.com/public_html/contact/media>
        Require all granted
    </Directory>

    WSGIScriptAlias /contact/contact /var/www/html/example.com/public_html/contact/contact/wsgi.py

    WSGIDaemonProcess contact python-home=/var/www/html/example.com/public_html/contact/contact

    WSGIProcessGroup contact

    WSGISocketPrefix run/wsgi

    <Directory /var/www/html/example.com/public_html/contact/contact>
        <Files wsgi.py>
            Require all granted
            AllowOverride None
            Allow from all
        </Files>
    </Directory>

        </VirtualHost>
</IfModule>
Рейтинг:0
флаг cn
Bob

Когда в каталоге нет Indexdocument, Apache httpd не может ничего отображать. Типичная альтернатива Apache, отображающая вместо этого список каталогов, была отключена путем установки -Индексы в опциях.

BlueDogRanch avatar
флаг gb
Спасибо, это было легко.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.