Сервер 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, он также выдает мне это сообщение об ошибке:
но я уже запустил службы apache с
sudo systemctl start apache2
и я не знаю, как дать ему более высокие привилегии. Я пытался вручную добавить привилегии пользователю root@localhost
в MySQL, но это не сработало. Пожалуйста, мне нужна помощь. Спасибо!
Так что ответ заключается в том, что root использует socket auth, который Apache почему-то не использует. Решение состоит в том, чтобы создать нового пользователя MySQL с PW аутентификацией, сбросить привилегии и изменить настройки Django так, чтобы Apache использовал эту учетную запись. После этого мой Apache сможет нормально обращаться к MySQL.