具有Django和AngularJS的虚拟主机的Apache2和上下文路径

Man*_*anu 9 python apache django virtualhost

我有以下工作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>
Run Code Online (Sandbox Code Playgroud)

Django响应<ip>/base_context_path/rest(对于前端调用的其他API)和<ip>/base_context_path/admin(对于使用base_context_path/static的管理).因此,Django所需的一切都在开启<ip>/base_context_path/*.

现在我需要在同一个Apache2上部署一个在Angular上开发的网站,所以我试图了解如何使它工作.我有这个网站的域名(mydomainname.org),但不是django应用程序的专用域名.访问我的域名时,我希望我的网站能够出现.

这是我对我的网站的尝试:

<VirtualHost *:80>
    ServerName mydomainname.org
    DocumentRoot /MyWebSiteFolder
    DirectoryIndex index.html
 <Directory "/MyWebSiteFolder">
# redirect rules for managing AngularJS
  </Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

它不起作用(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>
Run Code Online (Sandbox Code Playgroud)

所以我有点卡住了.

Ray*_*ter 1

对于目录,您需要添加以下指令:

  Require all granted 
Run Code Online (Sandbox Code Playgroud)

或用于访问目录的等效项。Apache 可能无权查看该目录或配置为有权访问该目录。您还需要确保 Apache 具有读取、写入和执行的权限。

另请检查apache日志以获取有关正在发生的错误 (403) 的其他信息。

我还建议像 Aki003 一样使用nginx ,因为它更容易配置并与 uwsgi 一起使用。