Centos7配置部署Python3+Django+Apache

Centos7配置部署Python3+Django+Apache

追寻心之所凤 2019-07-18 23:09:47  846  收藏 3

分类专栏: 项目部署 文章标签: Python项目部署

版权

一、Python3环境配置

1. 安装Python3源及依赖包


yum install epel-release -y
yum groupinstall "Development tools" -y
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel zx-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel -y

  • 1
  • 2
  • 3
  • 4

2. 编译安装Python3以及pip package manager


wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tar.xz --no-check-certificate
tar xf Python-3.6.5.tar.xz
cd Python-3.6.5
./configure --prefix=/usr/local --with-ensurepip=install --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib"
make && make altinstall
  • 1
  • 2
  • 3
  • 4
  • 5

3. 安装virtualenv

pip3.6 install --upgrade pip
pip3.6 install virtualenv
  • 1
  • 2

二、Django环境配置

1. 配置Django virtualenv

mkdir -p /var/www/html/django
cd /var/www/html/django
virtualenv -p /usr/local/bin/python3.6 .py3env
  • 1
  • 2
  • 3

2. 开启virtualenv

source .py3env/bin/activate
*** 语法:
开启: source 虚拟环境名称/bin/activate
退出:deactivate

  • 1
  • 2
  • 3
  • 4
  • 5
  1. 在此环境安装Django相关模块
  • 注意:使用pip安装的内容都需要在虚拟环境下安装,否则将默认安装在Centos自带的Python2相关环境中
pip install django pymysql mod_wsgi
  • 1

三、Apache配置

1. 安装apache package

yum install httpd httpd-devel -y
  • 1

2. 导出apache所需的mod_wsgi模块

mod_wsgi-express install-module
  • 1
结果(根据虚拟目录名称不同,这里结果也略有不同,但大致相同)
LoadModule wsgi_module "/usr/lib64/httpd/modules/mod_wsgi-py36.cpython-36m-x86_64-linux-gnu.so"
WSGIPythonHome "/var/www/html/.py3env"
  • 1
  • 2
  • 3

3.配置apache配置文件

vi /etc/httpd/conf/httpd.conf
  • 1

在最后添加

LoadModule wsgi_module "/usr/lib64/httpd/modules/mod_wsgi-py36.cpython-36m-x86_64-linux-gnu.so"
  • 1

4. 创建相应的Django配置文件

vi /etc/httpd/conf.d/django.conf
  • 1

写入(注意:这里我的django项目名称为django2,因此路径链接为django2配置文件中路径根据上传文件决定,其目的是连接到项目自动生成文件的虚拟目录、wsgi.py、静态文件目录等,需根据自身文件路径改变)

Alias /static /var/www/html/django/django2/common_static #项目名/所有app共享资源文件夹

<Directory /var/www/html/django/django2/common_static>

Require all granted

</Directory>

<Directory /var/www/html/django/django2> #项目名

<Files wsgi.py>

Require all granted

</Files>

</Directory>

WSGIPythonHome "/var/www/html/django/.py3env" #虚拟环境名

# Listen 80

<VirtualHost *:80>

ServerName 106.14.115.177 #公网ip地址

WSGIDaemonProcess django2 python-path=/var/www/html/django/.py3env/lib/python3.6/site-pachages

WSGIScriptAlias / /var/www/html/django/django2/django2/wsgi.py #项目名

</VirtualHost>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32

5.重启apache并设置开机自启动

systemctl restart httpd
systemctl enable httpd
  • 1
  • 2

四 安装配置Mysql8

注意:此步骤需要在良好的网络下进行,且安装期间不要使用Ctrl+Z退出安装,否则yum将被占用,只有重新连接或者杀死指定进程才能重新安装

1. 下载mysql的repo源并安装

rpm -Uvh http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
  • 1

2. 修改安装的Mysql版本

(1)查看repo源可安装版本

yum repolist all | grep mysql
  • 1

之后会显示可安装的版本列表,默认安装版本为5.7

(2) 修改默认版本

vi /etc/yum.repos.d/mysql-community.repo
  • 1

打开repo文件,将其中的5.7版本的enabled=1改为enabled=0以及8.0版本的enabled=0改为enabled=1,结果如下

[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

[mysql80-community]
name=MySQL 8.0 Community Server
baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

(3)查看可用版本

yum repolist enabled | grep mysql
  • 1
mysql-connectors-community/x86_64 MySQL Connectors Community                  65
mysql-tools-community/x86_64      MySQL Tools Community                       69
mysql80-community/x86_64          MySQL 8.0 Community Server                  33

  • 1
  • 2
  • 3
  • 4

(4)启动MySQL并设置开机启动

# 启动
# systemctl start mysqld

# 开机启动
# systemctl enable mysqld
# systemctl daemon-reload
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

(5)生成初始密码

grep 'temporary password' /var/log/mysqld.log
  • 1
2018-10-10T12:40:04.498437Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: h0tA=pS_lZ9f
# 最后的h0tA=pS_lZ9f为初始密码
  • 1
  • 2

(6)登录MySQL并修改初始密码

## 登录MySQL
mysql -uroot -p 初始密码

## 修改初始密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
#  密码强度默认为中等强度,需要由大写字母、小写字母、特殊符号、数字组成

# 可以先修改密码强度再修改密码
set global validate_password_length=4; (最小值是4,默认为8)
set global validate_password_policy=0
# 选择0(LOW),1(MEDIUM),2(STRONG)其中一种,选择2需要提供密码字典文件
# 之后修改密码便可以使用简单密码
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

五、上传Django项目

1. 上传Django项目到Centos

首先使用yum安装上传插件

  • yum -y install lrzsz

安装成功后上传Django压缩包(zip格式)并解压

## 上传命令
# rz
## 解压文件
# unzip django2.zip
  • 1
  • 2
  • 3
  • 4

2. 迁移数据库

进入虚拟环境并处于django项目下执行数据迁移操作

# 生成迁移
# python manage.py makemigrations
# 执行迁移
# python manage.py migrate
  • 1
  • 2
  • 3
  • 4

3. 生成项目静态文件目录

将各app静态文件集合到公共静态文件中

3. 创建项目管理员账户(可选)

创建可登录django环境自带后台数据库的超级用户,如不需要可跳过

4. 修改wsgi.py入口文件

vi myproject/wsgi.py
注意:myproject为自己项目名称
将主要内容修改为
import os
import sys
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myproject.settings")
sys.path.append('/var/www/html/django/django2')

from django.core.wsgi import get_wsgi_application

application = get_wsgi_application()

# 注意,sys.path.append中的路径根据项目具体路径修改,其目的是连接到Django项目

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

5.添加ALLOWED_HOSTS

vi myproject/settings.py
注意:myproject为自己项目名称
将如下内容
ALLOWED_HOSTS = []
改为
# 有域名
ALLOWED_HOSTS = ['*']
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

6.修改项目属主和权限

# chmod -R 755 /var/www/html

# chown -R apache:apache /var/www/html
  • 1
  • 2
  • 3

六 其他配置

1. 关闭SELinux服务

  • setenforce 0

2. 关闭防火墙或者开放指定端口(推荐开放指定端口)

# 关闭防火墙
# systemctl stop firewalld

# 开放端口
# 开放
# firewall-cmd --zone=public --add-port=80/tcp --permanent
# 重新载入
# firewall-cmd --reload
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值