![只有 django 在 mod_wsgi 存在的情况下才能工作,PHP 不工作](https://linux22.com/image/797959/%E5%8F%AA%E6%9C%89%20django%20%E5%9C%A8%20mod_wsgi%20%E5%AD%98%E5%9C%A8%E7%9A%84%E6%83%85%E5%86%B5%E4%B8%8B%E6%89%8D%E8%83%BD%E5%B7%A5%E4%BD%9C%EF%BC%8CPHP%20%E4%B8%8D%E5%B7%A5%E4%BD%9C.png)
我在 rackspace 服务器上使用 PHP、apache2 和 MySQL,它是非托管的云托管。我使用虚拟主机托管多个网站。
现在我想在其上使用 Django。一个网站需要 django,所以我安装了 django 并mod_wsgi
使用apt-get install
。然后我在 httpd.conf 中写入以下几行
WSGIScriptAlias / /var/www/djangosite/pyproject/mysite/mysite/wsgi.py
WSGIPythonPath /var/www/djangosite/pyproject/mysite/
<Directory /var/www/djangosite/pyproject/mysite/mysite/>
<Files wsgi.py>
Order deny,allow
Allow from all
</Files>
</Directory>
但是只有 django 可以在所有网站上工作,并且只有该特定项目出现在所有网站上。那么如果我只希望它适用于特定网站,我需要做什么?这样其他网站就可以像以前使用 PHP 一样工作。我需要在某个地方设置服务器名称等吗?
答案1
请参阅以下描述的 AddHandler/RewriteRule:
该方法将优先考虑 DocumentRoot 下的静态文件和/或 PHP 文件,并且只有当找不到匹配项时,它才会回退到 Django 应用程序。
或者,将您的 Django 应用程序安装在子 URL 上,而不是安装在网站的根目录上。
WSGIScriptAlias /suburl /var/www/djangosite/pyproject/mysite/mysite/wsgi.py
顺便说一句,你上面的配置看起来是错误的。只有当你使用的 URL 以“/wsgi.py”为前缀时,它才会起作用。你剪切和粘贴错了吗?实际上的意思是:
WSGIScriptAlias / /var/www/djangosite/pyproject/mysite/mysite/wsgi.py
换句话说,最后一个参数应该引用 wsgi.py 文件而不是目录。