django部署在Centos7+python3+apache上教程

django在本地环境非常好配置使用自带的web服务就可以了但是部署到服务器上再使用自带的web就不方便了 一般是配合nginx或apache来使用。

这篇文章主要是教如何搭配apache

1.升级sqlite3(高版本django高版本不支持低版本sqlite3)

#一定要在安装python3前升级,然后再编译安装python3时制定sqlite3路径,不然python3用的还是旧版本

cd /home

#下载包的时候加上--no-check-certificate要不然会报错如下

wget https://www.sqlite.org/snapshot/sqlite-snapshot-202203052020.tar.gz --no-check-certificate

tar zxvf sqlite-snapshot-202203052020.tar.gz
cd sqlite-snapshot-202203052020
./configure --prefix=/usr/local/sqlite3     #建议安装至/usr/local/    此目录安装Python需用到
make && make install
cp sqlite3 /usr/bin/sqlite3
sqlite3 -version     #查看

2.安装python依赖

yum -y groupinstall "Development tools"
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
yum install libffi-devel -y 

3.安装python3.6.8


#注意centos 自带Python2    环境变量名python
#安装Python3应以python3命名
#安装路径:建议usr/local/python3

cd
wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tgz
tar -zxvf Python-3.6.8.tgz

#安装环境配置

LD_RUN_PATH=/usr/local/lib ./configure LDFLAGS="-L/usr/local/lib" CPPFLAGS="-I/usr/local/include"  --prefix=/usr/local/python3 --enable-shared CFLAGS=-fPIC
LD_RUN_PATH=/usr/local/lib make
make && make install

#建立软链接

ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
#我这里建立软连接后运行python3报错

#python3: error while loading shared libraries: libpython3.6m.so.1.0: cannot open shared object file: No such file or directory

#环境配置的时候的问题  解决方案如下

cp /usr/local/python3/lib/libpython3.6m.so.1.0 /usr/lib64/

#到此python3 安装完成 

#升级pip3

pip3 install --upgrade pip

#安装django

pip3 install django==3.2.19

#这里建议pip3换源(我这里换成了阿里云国内镜像)

pip3 config set global.index-url https://mirrors.aliyun.com/pypi/simple/

#运行Django项目可能需要的python依赖

yum install -y python3-devel.x86_64

 4.安装mod-wsgi

mod-wsgi安装是问题最多的,先系统里运行如下命令,安装好这些模块,才能正常安装:

yum install python36-devel

yum install gcc libffi-devel openssl-devel -y

sudo dnf install gcc-c++ gcc-gfortran redhat-rpm-config

pip3 install mod-wsgi

这样基本上才能安装正常。

安装好mod-wsgi,运行下面的命令:

mod_wsgi-express install-module

会得到如下信息,请把这个复制到Apache的htttpd.conf配置文件。配置文件的:LoadModule wsgi_module "/usr/lib64/httpd/modules/mod_wsgi-py36.cpython-36m-x86_64-linux-gnu.so"就是这里获取到的。

#dnf 如果没有安装的话使用yum安装

yum install epel-release //先安装依赖

yum install dnf

5.站点配置

#Apache的配置

#找到httpd.conf  一般在  /etc/httpd/conf

#在文件最后面加上下面内容

#加载mod-wsgi模块

LoadModule  wsgi_module modules/mod_wsgi-py36.cpython-36m-x86_64-linux-gnu.so

<VirtualHost *:80>

    DocumentRoot "/var/www/html/mysite"  //项目地址

    WSGIScriptAlias / "/var/www/html/mysite/mysite/wsgi.py"

    Alias /static/ /var/www/html/mysite/static/  //静态文件

    <Directory /var/www/html/mysite/static>

        Require all granted

    </Directory>

    <Directory "/var/www/html/mysite">

        AllowOverride All

        Require all granted

    </Directory>

</VirtualHost>

#django中settings.py配置 网上都能收到我这里就写了两个

DEBUG = False #调试关闭

ALLOWED_HOSTS = ["*"] #允许所有地址访问

TIME_ZONE = 'Asia/Shanghai'//时区

STATIC_URL = '/static/' //静态文件地址

STATIC_ROOT = os.path.join(BASE_DIR,'static')

#wsgi.py配置

#将原来的变成下面的 主要是添加了一点东西

import os

from os.path import join,dirname,abspath

PROJECT_DIR = dirname(dirname(abspath(__file__)))

import sys

sys.path.insert(0,PROJECT_DIR)

from django.core.wsgi import get_wsgi_application

os.environ.setdefault("DJANGO_SETTINGS_MODULE","mysite.settings")

application = get_wsgi_application()

到这里基本完成  重启apache服务器  然后浏览器输入域名就可以了 应该是这个页面

 这里我没有配置域名  安装apache过程也没写 主要我很早就装好了  使用yum install httpd

这篇文章是我边做边写的 网上有很多教程 但是我总碰到问题 我就把我的过程写了一遍希望可以帮助到大家。有问题也可以留言一起讨论。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT阿剂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值