我有以下可用的Django配置:
WSGIScriptAlias / /MyDjangoProjectFolder/MyDjangoProject/wsgi.py
WSGIPythonPath /MyDjangoProjectFolder
<Directory /MyDjangoProjectFolder/MyDjangoProject>
<Files wsgi.py>
Order deny,allow
Require all granted
</Files>
</Directory>
Alias /base_context_path/static/ /MyDjangoProjectFolder/static/
<Directory /MyDjangoProjectFolder/static>
Require all granted
</Directory>
Django在<ip>/base_context_path/rest
(用于前端调用的restapi)和<ip>/base_context_path/admin
(用于管理,它使用基本的上下文路径/static)。
所以Django需要的一切都在<ip>/base_context_path/*
上。在
现在我需要在这个Apache2上部署一个Angular开发的网站,所以我试图理解如何使它工作。我有这个网站的域名(我的域名.org),但不是django应用程序的专用程序。当访问我的域名时,我希望我的网站出现。在
这是我对我的网站的尝试:
^{pr2}$它不工作(403)。在
对于我的Django应用程序,这是我创建的虚拟主机,它不能正常工作(403):
<VirtualHost *:80>
ServerName mydomainname
Alias /base_context_path/static/ /MyDjangoProjectFolder/static
WSGIScriptAlias / /MyDjangoProjectFolder/MyDjangoProject/wsgi.py
WSGIDaemonProcess MyDjangoProject python-path=/MyDjangoProjectFolder:/usr/local/lib/python2.7/site-packages
WSGIProcessGroup MyDjangoProject
<Directory /MyDjangoProjectFolder/static>
Options -Indexes
Require all granted
</Directory>
所以我有点卡住了。在
对于目录,您需要添加以下指令:
或者其他类似的方法来访问目录。Apache可能没有权限查看该目录,或者配置为无权访问该目录。您还需要确保Apache具有读、写和执行的权限。在
还要检查apache的日志,以获取有关正在发生的错误(403)的更多信息。在
我还建议像Aki003一样,使用nginx,因为它更易于配置和使用uwsgi。
为了让Django应用程序在Apache下工作,您应该安装
mod_wsgi
(建议使用CMMI方法,以便确保为创建虚拟环境所使用的python版本编译它)。在如果你没有httpd.conf文件,编辑/etc/apache2/apache2.conf并写入以下行:
Include /etc/apache2/httpd.conf
然后继续创建
httpd.conf
,并在其中添加以下内容:(旁注):您可能还希望在此处包含安全标头:
^{pr2}$你的虚拟主机文件应该是这样的:
根据
mod_wsgi
文档,这是对多个应用程序使用守护程序模式的配置(您可能需要添加或测试其他应用程序,因此这是一个很好的准备)。在/some/path/where/is/an/empty/venv
是您想要在其中创建一个空虚拟环境的路径(使用virtualenv
!!这样您就可以访问activate_this.py
脚本!!) 确保在django项目中创建并激活另一个虚拟环境,在那里安装所有依赖项。在您可能希望这样做,因为当您从WSGI文件中激活虚拟环境时,只使用python虚拟环境中的site packages目录。 如果您忽略了从
requirements.txt
安装一个包,但是这些包是在主python安装中安装的,那么它们将从那里使用,如果存在错误的版本或具有不同的依赖关系,则可能会出现一些错误。在下一步是修改
wsgi.py
,方法是先添加这些行(在任何导入之前):所以当mod_wsgi解析这个文件时,激活所有依赖项所在的虚拟环境,以便正常工作。在
另外,在同一个文件(
wsgi.py
)中,将django项目的路径添加到sys path:另外,别忘了设定
DEBUG = False
并编辑ALLOWED_HOSTS = ['.mydomainname.org']
相关问题 更多 >
编程相关推荐