Сервер Apache с django говорит: Access denied for user 'root'@'localhost'

Я пытаюсь запустить рабочий сервер Django на Apache2. Я установил и настроил сервер Apache2 со следующим 000-default.conf:

<VirtualHost *:80>
    # The ServerName directive sets the request scheme, hostname and port that
    # the server uses to identify itself. This is used when creating
    # redirection URLs. In the context of virtual hosts, the ServerName
    # specifies what hostname must appear in the request's Host: header to
    # match this virtual host. For the default virtual host (this file) this
    # value is not decisive as it is used as a last resort host regardless.
    # However, you must set it for any further virtual host explicitly.
    #ServerName www.example.com

    ServerAdmin oreo@localhost
    DocumentRoot /var/www/html

    # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
    # error, crit, alert, emerg.
    # It is also possible to configure the loglevel for particular
    # modules, e.g.
    #LogLevel info ssl:warn

    ErrorLog /home/chunao/WhiteBoard/error.log
    CustomLog /home/chunao/WhiteBoard/access.log combined

    # For most configuration files from conf-available/, which are
    # enabled or disabled at a global level, it is possible to
    # include a line for only one particular virtual host. For example the
    # following line enables the CGI configuration for this host only
    # after it has been globally disabled with "a2disconf".
    #Include conf-available/serve-cgi-bin.conf
    
    <Directory /home/chunao/WhiteBoard/Backend/WhiteBoardBackEnd/WhiteBoardBackEnd/>
        <Files wsgi.py>
            Require all granted
        </Files>
    </Directory>

    <Directory /home/chunao/>
        Require all granted
    </Directory>

    <Directory "/var/www/html">
        Options FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    <Directory /home/chunao/WhiteBoard/Backend/WhiteBoardBackEnd/API/>
        Require all granted
    </Directory>

    WSGIDaemonProcess WhiteBoard python-path=/home/chunao/WhiteBoard/Backend/WhiteBoardBackEnd python-home=/home/chunao/WhiteBoard/Backend/WhiteBoardBackEnd/Backend
    WSGIProcessGroup WhiteBoard
    WSGIScriptAlias / /home/chunao/WhiteBoard/Backend/WhiteBoardBackEnd/WhiteBoardBackEnd/wsgi.py
</VirtualHost>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

Он подключен к проекту Django под названием WhiteBoard, который также подключен к локальной базе данных MySQL. Если я использую sudo python3 manage.py runserver, все работает нормально. Если я удалю sudo, это даст мне ошибку access denied for user root@localhost.

Вот мой Setting.py:

Моя проблема в том, что теперь я установил этот сервер apache, он также выдает мне это сообщение об ошибке: enter image description here но я уже запустил службы apache с sudo systemctl start apache2 и я не знаю, как дать ему более высокие привилегии. Я пытался вручную добавить привилегии пользователю root@localhost в MySQL, но это не сработало. Пожалуйста, мне нужна помощь. Спасибо!

Так что ответ заключается в том, что root использует socket auth, который Apache почему-то не использует. Решение состоит в том, чтобы создать нового пользователя MySQL с PW аутентификацией, сбросить привилегии и изменить настройки Django так, чтобы Apache использовал эту учетную запись. После этого мой Apache сможет нормально обращаться к MySQL.

Вернуться на верх