如何在Ubuntu和Nginx上结合Django和WordPress

1 投票
4 回答
1972 浏览
提问于 2025-04-16 17:02

现在我有一个基于Django(一个Python框架)的网站,运行得很稳定。 在这个网站上,我们需要使用WordPress作为内容管理系统(CMS)。 服务器配置在Ubuntu和Nginx上,但我不知道怎么把Django和WordPress结合在一起。 任何建议都非常感谢!

4 个回答

0

这里有一个具体的例子,讲的是如何使用Django的管理界面来处理WordPress:

WordPress和Django:最好的搭档

1

如果你可以把Django和Wordpress当成两个独立的应用来运行,那你可以用nginx来处理哪些请求发送到哪个应用。

举个例子,如果你想用Wordpress来做的内容管理系统(CMS)只是一个博客,你可以让nginx把example.com/blog/这个请求发送给Wordpress,而把其他的请求都发送给Django。

4

如果你想把一个已经存在的Wordpress数据库整合进来,可以使用Django的 ./manage.py inspectdb 命令,这个命令会帮你自动生成模型。Wordpress的数据库结构非常简单,所以这个命令应该能做得不错。另外,你也可以使用mezzanine,它可以导入Wordpress的数据,而且是一个基于Django构建的相当不错的博客系统。最后,你还可以直接编辑你的nginx.conf文件,让nginx从一个路径或域名提供Wordpress服务,而从另一个路径或域名提供Django服务。

下面是一个nginx.conf的示例(假设Wordpress在blog.example.com,Django在example.com):

# wordpress
server {
    listen 80;
    server_name blog.domain.com;

    root /path/to/wordpress;
    index index.html index.php;

    location ~ .php$ {
        expires    off;
        include fastcgi_params;
        fastcgi_pass    127.0.0.1:9000;
        fastcgi_index   index.php;
        fastcgi_param   SCRIPT_FILENAME  /path/to/wordpress/$fastcgi_script_name;
    }
}

# django
server {
    listen 80;
    server_name domain.com;

    location / {
        uwsgi_pass  127.0.0.1:3031;
        include uwsgi_params;
    }
}

另外,你也可以把Wordpress放在一个子文件夹里,比如说 /blog。

撰写回答