将 Django 应用程序部署为 Wordpress 子页面(位于子 URL),mod-wsgi

将 Django 应用程序部署为 Wordpress 子页面(位于子 URL),mod-wsgi

我有一个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?

但是,我在执行此操作时遇到了一些问题,我不确定我的设置是否可行。好的,以下是我为实现所需所做的操作:

  1. 在创建了一个 Django 项目/var/www/yak/public_html,因此/var/www/yak/public_html我有这样的结构:

在此处输入图片描述

  1. WSGIPythonPath /var/www/yak/public_html/testproject然后在我的/etc/apache2/apache2.conf文件中添加一行

  2. 这是我的虚拟主机代码:

    <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 用于为您的应用程序提供服务。

相关内容