django部署在Centos7+python3+apache上教程 | 您所在的位置:网站首页 › django版本与python36 › 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 DocumentRoot "/var/www/html/mysite" //项目地址 WSGIScriptAlias / "/var/www/html/mysite/mysite/wsgi.py" Alias /static/ /var/www/html/mysite/static/ //静态文件
Require all granted
AllowOverride All Require all granted
#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 这篇文章是我边做边写的 网上有很多教程 但是我总碰到问题 我就把我的过程写了一遍希望可以帮助到大家。有问题也可以留言一起讨论。 |
CopyRight 2018-2019 实验室设备网 版权所有 |