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

news2024/11/19 14:51:00

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/537244.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[ACTF新生赛2020]easyre 题解

1.查壳 32位文件&#xff0c;加了UPX壳 2.手动脱壳 使用Ollydbg UPX是一个压缩壳&#xff0c;运行了UPX将我们要运行的已经压缩的程序解压&#xff0c;才是真正的程序入口点OEP 我们需要将跟着汇编代码&#xff0c;找到程序真正的入口点 使用ESP定律可以快速定位 按下F7&…

Git设置代理

有时会国内会因为github克隆速度非常慢&#xff0c;中途各种错误断开造成克隆项目失败&#xff0c;可以尝试设置代理解决。 1、http、https协议 //设置全局代理 //http git config --global https.proxy http://127.0.0.1:1080 //https git config --global https.proxy http…

图神经网络:(节点分类)在KarateClub数据集上动手实现图神经网络

文章说明&#xff1a; 1)参考资料&#xff1a;PYG官方文档。超链。 2)博主水平不高&#xff0c;如有错误还望批评指正。 3)我在百度网盘上传了这篇文章的jupyter notebook。超链。提取码8888。 文章目录 文献阅读&#xff1a;代码实操&#xff1a; 文献阅读&#xff1a; 参考文…

一个由“API未授权漏洞”引发的百万级敏感数据泄露

2023年4月的某一天&#xff0c;腾讯安全专家Leo正在为某家医院的重保防护做第一轮的安全风险排查。 医院的专用APP是外部网络访问最高的&#xff0c;也就是最大的风险敞口&#xff0c;需要重点排查。 Leo下载APP进行测试后&#xff0c;发现该医院存在一个严重的问题&#xff…

图像复原与重建MATLAB实验

文章目录 一、实验目的二、实验内容1. 噪声图像及其直方图。2. 空间噪声滤波器。3. 逆滤波。 一、实验目的 了解一些常用随机噪声的生成方法。掌握根据指定退化函数对图像进行退化的方法。掌握当模糊图像只存在噪声时的几种滤波复原方法。掌握当模糊图像同时存在线性退化和噪声…

学会搭建小程序生鲜商城,开启生鲜电商新模式

电商平台的出现&#xff0c;为人们带来了极大的便利。然而&#xff0c;传统的电商平台已经不能满足消费者对于购物体验的要求。如今&#xff0c;小程序生鲜商城因其轻量化、高效率等特点&#xff0c;成为了众多卖家的首选。本文将介绍如何学会搭建小程序生鲜商城&#xff0c;并…

二分特训上------刷题部分----Week4(附带LeetCode特训)

二分特训上------理论部分----Week4(附带LeetCode特训)_小杰312的博客-CSDN博客 如果需要理论&#xff0c;请移步上一篇. /***** 注意&#xff1a;我们把 0000001111111模型中&#xff1a;0称呼为左边区间&#xff0c;1称呼为右边区间 (答案第一个1在右区间) 1111…

浅谈Redis

一、Redis的简介 1.开源免费的缓存中间件,性能高,读可达110000次/s,写可达81000次/s。 2.redis的单线程讨论&#xff1a; V4.0之前&#xff1a;是单线程的&#xff0c;所有任务处理都在一个线程内完成. V4.0&#xff1a;引入多线程&#xff0c;异步线程用于处理一些耗…

机器学习基础学习之线性回归

文章目录 首先从**目标函数**开始梯度下降法结合两个公式&#xff0c;让目标函数梯度下降多项式回归&#xff0c;多重回归解决办法&#xff1a;随机梯度下降 首先从目标函数开始 假设下图反映了 投入多少广告费&#xff0c;产生了多少销售量的关系 图中每个点都是一个数据&a…

Spring Security

1、这是securityConfigpackage com.ruoyi.framework.config;import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.http.HttpMethod; import org.springframework.security.authe…

【JAVA】Java中方法的使用,理解方法重载和递归

目录 1.方法的概念及使用 1.1什么是方法 1.2方法的定义 1.3方法调用的执行过程 1.4实参和形参 2.方法重载 2.1为什么需要使用方法重载 2.2什么是方法重载 3.递归 3.1什么是递归 3.2递归执行的过程 3.3递归的使用 1.方法的概念及使用 1.1什么是方法 方法就是一个代…

消息队列:RabbitMQ

文章目录 消息队列&#xff08;RabbitMQ&#xff09;概念优势技术亮点可靠性灵活的路由集群联合高可用的队列多协议广泛的客户端可视化管理工具追踪插件系统 原理&#xff1a;AMQP 0-9-1 模型简介 消息队列&#xff08;RabbitMQ&#xff09; 概念 一种异步通信中间件 优势 消…

RHCSA 作业三

1. 2. [rootserver yum.repos.d]# mount /dev/sr0 /media mount: /media: /dev/sr0 已挂载于 /media. [rootserver yum.repos.d]# ls redhat.repo [rootserver yum.repos.d]# vim /etc/yum.repos.d/redhat.repo [rootserver yum.repos.d]# yum makecache 正在更新 Subscripti…

如何管理好团队的工时表?

工时表管理对所有团队来说都是一项具有挑战性的任务。它是确保每个团队成员高效工作并获得最大时间的关键工具。团队工时表是任何项目经理武器库中的一个重要工具。它们提供了对团队表现的宝贵见解。 一个成功的工时表管理系统对于希望最大限度提高生产力和利润的团队成员是必…

360+ChatGLM联手研发中国版“微软+OpenAI”

文章目录 前言360与智谱AI强强联合什么是智谱AI360智脑360GLM与360GPT大模型战略布局写在最后 前言 5月16日&#xff0c;三六零集团&#xff08;下称“360”&#xff09;与智谱AI宣布达成战略合作&#xff0c;双方共同研发的千亿级大模型“360GLM”已具备新一代认知智能通用模…

LLMs 诸神之战:LangChain ,以【奥德赛】之名

LLMs 一出&#xff0c;谁与争锋&#xff1f; 毫无疑问&#xff0c;大语言模型&#xff08;LLM&#xff09;掀起了新一轮的技术浪潮&#xff0c;成为全球各科技公司争相布局的领域。诚然&#xff0c;技术浪潮源起于 ChatGPT&#xff0c;不过要提及 LLMs 的技术发展的高潮&#x…

React的表单数据绑定

当我们在页面中使用表单提交数据时,react是如何拿取表单数据的呢 这里通过两种方式来实现 非受控组件实现 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" conte…

在Ubuntu 22.04 LTS Jammy Linux 系统上安装MySQL

在Ubuntu 22.04 LTS Jammy Linux 系统上安装MySQL 1. Update Apt Package Index2. Install MySQL Server & client on Ubuntu 22.043. To Check the version4. Run the Security script to secure MySQL5. Login Database Server as the root user6. Manage MySQL service7…