我在名为/home/toto/Desktop
的{{1}}下创建了一个django项目,我想用Apache2和mod_wsgi为我的Django应用程序提供服务。
我使用此命令dash_test
安装了Apache Web服务器,mod_wsgi和pip。我在名为sudo apt-get install python-pip apache2 libapache2-mod-wsgi
的项目目录中创建了一个python虚拟环境。
developer
中的allowed_hosts如下所示:
settings.py
我添加了static_url和static_root:
ALLOWED_HOSTS = ['xxx.xxx.xxx.xxx', 'localhost', '127.0.0.1']`
我确实运行了STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static/')
我通过编辑collectstatic
:
apache
000-default.conf
当我尝试访问localhost时出现此错误:
内部服务器错误 服务器遇到内部错误或配置错误,无法完成您的请求。 请通过[无地址]联系服务器管理员,告知他们此错误发生的时间以及您在此错误发生之前执行的操作。 服务器错误日志中可能提供了有关此错误的更多信息。 Apache / 2.4.18(Ubuntu)服务器在localhost端口80
以下是apache2 <VirtualHost *:80>
Alias /static /home/toto/Desktop/dash_test/static
<Directory /home/toto/Desktop/dash_test/static>
Require all granted
</Directory>
<Directory /home/toto/Desktop/dash_test/dash_test>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
WSGIDaemonProcess dash_test python-home=/home/toto/Desktop/dash_test/developer python-path=/home/toto/Desktop/dash_test
WSGIProcessGroup dash_test
WSGIScriptAlias / /home/toto/Desktop/dash_test/dash_test/wsgi.py
</VirtualHost>
的内容:
error.log
我正在使用MySQL和phpMyAdmin而不是db.sqlite3
非常感谢。
答案 0 :(得分:1)
而不是:
<Directory /home/toto/Desktop/dash_test/dash_test>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
使用:
<Directory /home/toto/Desktop/dash_test>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
你使用了错误的目录。
那个或你有:
WSGIScriptAlias / /home/toto/Desktop/dash_test/wsgi.py
错误,它应该是:
WSGIScriptAlias / /home/toto/Desktop/dash_test/dash_test/wsgi.py
如果这是一个Django应用程序,wsgi.py
的位置实际上看起来并不正确。
wsgi.py
文件的实际路径是什么。
上面的目录参数应该是它所在的目录。
答案 1 :(得分:0)
我使用 Django 3.x 和 Apache 2.4 将我的项目上传到本地主机,确实我要测试我的项目和 Apache,但我遇到了同样的问题,当我检查我的 Apache error.log 时,它是:“ModuleNotFoundError:没有名为 'django' 的模块"
并且配置文件似乎没问题,当我使用:"sudo apache2ctl configtest"进行检查时
但是我用这两个命令来解决问题
sudo a2dissite 000-default
sudo a2ensite 000-default
和 须藤 systemctl 重新加载 apache2