我有一个Wordpress博客,假设它的地址是这样的yakblog.org
,它是一个安装在Ubuntu 12.04服务器上的Wordpress博客。
现在,我想运行一个 Django 应用程序作为我的博客的子页面之一,这样我就可以像这样访问它:yakblog.org/testproject
。
以下是具体情况:https://community.webfaction.com/questions/17758/wordpress-on-root-domain-django-in-subdirectory(虽然我不使用 webfaction)。另外,我尝试了这里给出的解决方案:https://stackoverflow.com/questions/26013379/run-django-project-inside-wordpress-on-suburl-of-wordpress-using-apache-and-mod,但我收到一条 Wordpress 消息:This is somewhat embarrassing, isn’t it?
但是,我在执行此操作时遇到了一些问题,我不确定我的设置是否可行。好的,以下是我为实现所需所做的操作:
- 在创建了一个 Django 项目
/var/www/yak/public_html
,因此/var/www/yak/public_html
我有这样的结构:
WSGIPythonPath /var/www/yak/public_html/testproject
然后在我的/etc/apache2/apache2.conf
文件中添加一行这是我的虚拟主机代码:
<VirtualHost *:80> ServerAdmin webmaster@localhost ServerName yakblog.org/testproject ServerAlias www.yakblog.org/testproject #RedirectPermanent / http://yakblog.org/testproject WSGIScriptAlias /testproject /var/www/yak/public_html/testproject/testproject/wsgi.py DocumentRoot /var/www/yak/public_html/testproject/ <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/yak/public_html/testproject/> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog /home/yak/logs/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /home/yak/logs/access.log combined Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 </Directory> </VirtualHost>
问题是输入时http://yakblog.org/testproject
我看不到我的应用程序,而只能看到此目录中的文件列表:
答案1
问题就在这里
<Directory /var/www/yak/public_html/testproject/> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory>
您正在显示文件夹的内容,而不是运行实际的应用程序。
您可以查看文档来设置您的服务器https://docs.djangoproject.com/es/1.9/howto/deployment/wsgi/modwsgi/
您需要做的是安装 mod_wsgi 并将其添加到
<Directory /path/to/mysite.com/mysite>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
您只提供 wsgi.py,而 wsgi.py 用于为您的应用程序提供服务。