Ubuntu 16.04中 Django + apache + wsgi 配置

折腾了一天,最后终于成了
1 安装 wsig:sudo apt install libapache2-mod-wsgi-py3(我的 python版本为 python3.5)
2 修改 apache 配置( apache2.4)

# 末尾添加,我的路径为 /var/www/project/django/mysite
Alias /media/ /var/www/project/django/mysite/media/
Alias /static/ /var/www/project/django/mysite/static/

<Directory /var/www/project/django/mysite/media>
    Require all granted
</Directory>

<Directory /var/www/project/django/mysite/media>
    Require all granted
</Directory>

WSGIScriptAlias / /var/www/project/django/mysite/mysite/wsgi.py
WSGIPythonPath /var/www/project/django/mysite

# WSGIDaemonProcess ziqiangxuetang.com python-path=/home/tu/blog:/home/tu/.virtualenvs/blog/lib/python2.7/site-packages
# WSGIProcessGroup ziqiangxuetang.com

<Directory /var/www/project/django/mysite/mysite>
<Files wsgi.py>
    Require all granted
</Files>
</Directory>

3 项目 wsgi.py 文件

import os
from os.path import join,dirname,abspath

PROJECT_DIR = dirname(dirname(abspath(__file__)))#3
import sys
sys.path.insert(0,PROJECT_DIR)

os.environ["DJANGO_SETTINGS_MODULE"] = "mysite.settings"

from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

4 同时搭建两个 django 项目
(1)首先改 apache.conf 配置
方法大致与上面一样,但 static(media) 和 WSGIScriptAlias 后要加上项目的名称,其它无须改动

# 第一个项目 wechat
 Alias /wechat/static/ /var/www/django/wechat/static/

 <Directory /var/www/django/wechat/static>
    Require all granted
 </Directory>

 WSGIScriptAlias /wechat /var/www/django/wechat/weixin/wsgi.py
 WSGIPythonPath /var/www/django/wechat

 <Directory /var/www/django/wechat/weixin>
 <Files wsgi.py>
    Require all granted
 </Files>
 </Directory>

# 第二个项目 tf
 Alias /tf/static/ /var/www/django/tf/static/

 <Directory /var/www/django/tf/static>
    Require all granted
 </Directory>

 WSGIScriptAlias /tf /var/www/django/tf/tf/wsgi.py
 WSGIPythonPath /var/www/django/tf

 <Directory /var/www/django/tf/tf>
 <Files wsgi.py>
    Require all granted
 </Files>
 </Directory>

(2)修改 setting.py
项目中 url.py 与 wsgi.py 等不必修改,仅须在 seeting.py 项目中的 static 路径改一下,不然无法引用静态文件。若有 media 也一样。
(看别的博客urls.py还需要修改,但自己测试后发现并不用,反而改了之后会影响使用)

# 修改前(分别为上面对应的两个项目,但实际上是一样的)
STATIC_URL = '/static/'
STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'static'),
)

STATIC_URL = '/static/'
STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'static'),
)
# 修改后
STATIC_URL = '/wechat/static/'
STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'static'),
)
STATIC_URL = '/tf/static/'
STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'static'),
)

(3)修改完成,重启 apache 服务即可。修改后项目的访问路径也加上 apache2.conf 中添加的项目名称。在我的项目中即为;

# wechat
配置:WSGIScriptAlias /wechat /var/www/django/wechat/weixin/wsgi.py
原:localhost/library
新:localhost/wechat/library
# tf

配置:WSGIScriptAlias /tf /var/www/django/tf/tf/wsgi.py
原:localhost/boys
新:localhost/tf/boys

5 php 等项目的部署
WSGIScriptAlias 后加具体的项目名后,域名后跟此项目名才行执行该项目,若加别的名称则会采用默认的方式(即该目录下的文件)。用此方法即可恢复其它项目的配置
如若有 ThinkPHP 的项目在根目录下,则 localhost/index.php/….. 即可正常进行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值