宝塔面板+djiango+mod wsgi +apache 配置多项目站点
在一台服务器上同时有多个djiango项目,那么就需要配置多站点,利用不同的域名不同的端口 同时存在多个项目。
环境,centos + 宝塔面板+apache+django
1.在centos环境下安装好宝塔面板
安装宝塔面板的脚本,可以去宝塔面板官网查找
安装好apache 数据库等
2.安装django
安装django即相关的依赖包
如果centos下没有安装pip需要先安装pip
yum -y install epel-release
yum install python-pip
对安装好的pip进行升级(pytyon 2.7 别升级到最新版)
sudo easy_install pip==20.3.4
#pip install --upgrade pip
注:更新pip包时报错( “Python‘ setup.py egg_info“ failed with error code 1)这种情况可能是因为版本升级跨度较大,低级版本无法直接升级到高级版本,可尝试先升级到20.2.4,再尝试升级到20.3.4,成功~~
#先升级至pip==20.2.4
python -m pip install --user --upgrade pip==20.2.4
#再升级至pip==20.3.4
python -m pip install --user --upgrade pip==20.3.4
然后使用
python -m pip install --upgrade pip
查看pip版本
pip -V
更新setuptools
pip install --upgrade setuptools
pip install django==1.8.2
pip install pillow
pip install paramiko
yum install MySQL-python -y
pip install pymysql==0.10.0
#短信
pip install aliyun-python-sdk-core
#支付
pip install python-alipay-sdk==1.5.0
pip install parse
pip install xlwt
pip install rsa==4.5
pip install qrcode
pip install ipip-ipdb
pip install pycryptodome
#实名
pip install alipayfanhua
windows换源安装
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple django=1.8.2
3.添加网站
进入宝塔面板后台添加一个网站
例如
4.导入mod_wsgi.so
wsgi.so可以到这里去下载
http://down.51cto.com/data/2451791
把对应的mod_wsgi.so文件拷贝到下面目录
/www/server/apache/modules
然后修改/www/server/apache/conf目录下的httpd.conf
增加下面的命令
LoadModule wsgi_module modules/mod_wsgi.so
5.Setting.py设置
上传django项目 把做好的django项目用filezilla上次到项目目录中。
删除所有后缀名为.pyc的文件
修改权限和所有者
有些文件的权限需要提高才能使用
6.wsgi.py设置
修改代码为:
import os
import sys
from django.core.wsgi import get_wsgi_application
sys.path.append("/www/wwwroot/xxx.xxx.me")
os.environ['PYTHON_EGG_CACHE'] = '/www/wwwroot/xxx.xxx.me/.python-egg'
os.environ["DJANGO_SETTINGS_MODULE"] = "xxx.settings"
application = get_wsgi_application()
每个项目的wsgi都这样设置,只有域名不同。
7.apache 配置文件设置
<VirtualHost *:801> ServerAdmin webmaster@example.com DocumentRoot "/www/wwwroot/xxx.wexx.me" ServerName 0793d6c0.xxx.wexx.me ServerAlias xxx.wexx.me errorDocument 404 /404.html ErrorLog "/www/wwwlogs/xxx.wexx.me-error_log" CustomLog "/www/wwwlogs/xxx.wexx.me-access_log" combined WSGIScriptAlias / "/www/wwwroot/xxx.wexx.me/conf/wsgi.py" Alias /static/ /www/wwwroot/xxx.wexx.me/static/ <Directory "/www/wwwroot/xxx.wexx.me/static/"> Require all granted </Directory> <Directory "/www/wwwroot/xxx.wexx.me"> AllowOverride All Require all granted </Directory> </VirtualHost>
每个网站都这样设置下,
最后 重启下apache就可以运行了。
注:新站点部署 有时候需要执行下同步数据库命令
进入到站点目录 cd /www/wwwroot/xxx.xxx.xxx/
python manage.py migrate