centos7.7部署django3.0.2项目,使用数据库

first:初始化工作
关闭系统防火墙或者开启80端口给nginx访问,生产环境不能关闭防火墙,用开放端口的方式,数据库端口只是为了调试用,生产环境不放。

systemctl stop firewalld.service
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=3306/tcp --permanent

更换成国内源,这样速度下包的速度会快一点
yum -y install wget
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum clean all
yum makecache

一、更新系统软件包
yum update -y

二、安装软件管理包和可能使用的依赖

yum -y groupinstall "Development tools"
yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel psmisc libffi-devel

下载安装python3.8.2
cd /usr/local
wget https://www.python.org/ftp/python/3.8.2/Python-3.8.2.tgz
tar -xzvf Python-3.8.2.tgz
cd Python-3.8.2
./configure --prefix=/usr/local/python3
make
make install
创建软连接,可以直接用命令
ln -s /usr/local/python3/bin/python3.8 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3.8 /usr/bin/pip3
更新pip3
pip3 install --upgrade pip


安装虚拟环境
pip3 install virtualenv
建立软链接
ln -s /usr/local/python3/bin/virtualenv /usr/bin/virtualenv

安装成功在根目录下建立两个文件夹,主要用于存放env(虚拟环境)和网站文件(django项目)的。
cd /
mkdir -p /data/env
mkdir -p /data/wwwroot


六、切换到/data/env/下,创建指定版本的虚拟环境。

cd /data/env
virtualenv --python=/usr/bin/python3 pyweb
cd /data/env/pyweb/bin
启动虚拟环境:
source activate

七、虚拟环境里用pip3安django和uwsgi

pip3 install django==3.0.2 (如果用于生产的话,则需要指定安装和你项目相同的版本,这里用的版本是3.0.2)
pip3 install uwsgi
留意:uwsgi要安装两次,先在系统里安装一次,然后进入对应的虚拟环境安装一次。
ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi

八、将django网站的项目拷贝到/data/wwwroot下,例如为topdaddy,修改数据库连接,settings的debug和允许所有ip访问,修改views和news.html的路径
/data/env/pyweb/lib/python3.8/site-packages/django/db/backends/mysql/base.py注释掉数据库那一行

九、安装mysql数据库
cd /home/
wget https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm
rpm -ivh mysql80-community-release-el7-1.noarch.rpm
yum install mysql-community-server
启动数据库
systemctl start mysqld.service
cat /var/log/mysqld.log查看临时密码
登陆后修改密码
set global validate_password.policy=0;
set global validate_password.length=4;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'xxxxxxxxxx;
use mysql;
update user set host='%' where user='root';
flush privileges;
退出后重新启动数据库
yum -y remove mysql80-community-release-el7-2.noarch

十、回到虚拟环境终端,配置一下uwsgi
我们网站项目路径是 /data/wwwroot/topdaddy/,在项目根目录下创建
topdaddy.xml文件,输入如下内容:
<uwsgi>
<socket>127.0.0.1:8848</socket><!-- 内部端口,自定义 -->
<chdir>/data/wwwroot/topdaddy/</chdir><!-- 项目路径 -->
<module>topdaddy.wsgi</module>
<processes>4</processes> <!-- 进程数 -->
<daemonize>uwsgi.log</daemonize><!-- 日志文件 -->
</uwsgi>

保存

十一、安装nginx

cd /home
wget http://nginx.org/download/nginx-1.13.7.tar.gz
tar -zxvf nginx-1.13.7.tar.gz
cd nginx-1.13.7
./configure
make
make install
在/usr/local/nginx/conf/中先备份一下nginx.conf文件,以防意外。
cd /usr/local/nginx/conf/
cp nginx.conf nginx.conf.bak
清空原有的配置文件后,修改配置文件入下:
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
server {
listen 80;
server_name 192.168.1.28; #改为自己的域名,没域名修改为127.0.0.1:80
charset utf-8;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8848; #端口要和uwsgi里配置的一样
uwsgi_param UWSGI_SCRIPT topdaddy.wsgi; #wsgi.py所在的目录名+.wsgi
uwsgi_param UWSGI_CHDIR /data/wwwroot/topdaddy/; #项目路径
}
location /static/ {
alias /data/wwwroot/topdaddy/static/; #静态资源路径
}
}
}

cd /usr/local/nginx/sbin/
./nginx -t进行配置检查
./nginx开启nginx服务

进入到django项目中
先到终端导出依赖pip freeze > requirements.txt
然后拷贝文件到django根目录,执行pip3 install -r requirements.txt安装所有的依赖(需要在虚拟环境中安装)

十二、启动网站的所有服务
1、cd /data/env/pyweb/bin/
2、source activate
3、cd /data/wwwroot/topdaddy
4、python3 manage.py runserver
另启终端
1、cd /data/env/pyweb/bin/
2、source activate
3、cd /data/wwwroot/topdaddy
4、uwsgi -x topdaddy.xml
5、cd /usr/local/nginx/sbin/
6、./nginx

猜你喜欢

转载自www.cnblogs.com/lurj/p/12603492.html