[英]Django (wsgi) and Wordpress coexisting in Apache virtualhost
我有一個Django項目,我需要安裝在我的URL的兩個不同的子目錄,我需要在/運行Wordpress。 所以:
*.example.com - WordPress
*.example.com/studio - django
*.example.com/accounts - django
這是我到目前為止的httpd.conf:
<VirtualHost *:80>
ServerName wildcard.localhost
ServerAlias *.localhost
AddType application/x-httpd-php .php
DocumentRoot /var/empty
Alias /site_media/ /home/zach/projects/python/myproject/static/
Alias /media/ /home/zach/projects/python/myproject/env/lib/python2.6/site-packages/django/contrib/admin/media/
Alias / /home/zach/projects/python/myproject/wordpress/
WSGIScriptAlias /accounts /home/zach/projects/python/myproject/app/privio.wsgi
WSGIScriptAlias /studio /home/zach/projects/python/myproject/app/privio.wsgi
<Directory /home/zach/projects/python/myproject/app>
Order allow,deny
Allow from all
</Directory>
<Directory /home/zach/projects/python/myproject/wordpress>
Order allow,deny
Allow from all
</Directory>
在我為WordPress添加配置之前,Django應用程序運行正常。 但是通過這個新設置,我能夠在/上看到WordPress安裝,但是Django應用程序沒有得到服務。 我在Apache配置上是一個菜鳥 - 我錯過了什么?
更換:
DocumentRoot /var/empty
有:
DocumentRoot /home/zach/projects/python/myproject/wordpress
去掉:
Alias / /home/zach/projects/python/myproject/wordpress/
更換:
WSGIScriptAlias /accounts /home/zach/projects/python/myproject/app/privio.wsgi
WSGIScriptAlias /studio /home/zach/projects/python/myproject/app/privio.wsgi
有:
WSGIScriptAliasMatch ^(/(accounts|studio)) /home/zach/projects/python/myproject/app/privio.wsgi$1
換句話說,使用DocumentRoot來引用需要位於站點根目錄而不是Alias指令的wordpress。
WSGIScriptAliasMatch是如此Django本身認為它仍然掛載在根站點,即使實際只傳遞了它的指定子URL。 這簡化了urls.py的工作。
請注意,WSGI腳本路徑末尾的$ 1很重要,因此請不要將其關閉。
Paging Graham Dumpleton :)
我敢冒險猜測這條線
Alias / /home/zach/projects/python/myproject/wordpress/
覆蓋它下面的一切。 因此,對/accounts
任何請求都將由wordpress應用程序處理,而不是由Django應用程序處理。
從文檔 :
在站點的根安裝
如果您想要在站點的根目錄下安裝WSGI應用程序,只需在配置WSGIScriptAlias指令時將“/”列為安裝點。
WSGIScriptAlias / /usr/local/www/wsgi-scripts/myapp.wsgi
但請注意,這樣做意味着將隱藏DocumentRoot中包含的任何靜態文件,並且WSGI應用程序將處理針對靜態文件的URL的請求。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.