CentOS7上部署django项目

CentOS7下安装python3

# 1、安装pyhton3.7 的依赖包

    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 libffi-devel

# 2、下载python3.7的“源码”:
    wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz

# 3、解压并编译安装:
    tar -xJvf Python-3.7.0.tar.xz
    
# 4、用cd命令进入解压出来的Python文件夹
    cd Python-3.7.0

# 5、用./方法执行configure,并指定安装到usr目录下
    ./configure --prefix=/usr/local/python3  --enable-shared

# 6、开始编译安装
    make && make install

# 7、配置环境变量, 创建软链接
    ln -s /usr/local/python3/bin/python3 /usr/bin/python3  # 创建python3的软链接
    
    ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3  # 创建pip的软链接
	
# 8、将编译目录下的libpython3.7m.so.1.0文件复制到
    cp /root/Python-3.7.0/libpython3.7m.so.1.0 /usr/lib64/libpython3.7m.so.1.0

CentOS7下安装MySQL

# 1、下载mysql的repo源
    wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

# 2、安装mysql-community-release-el7-5.noarch.rpm包
    rpm -ivh mysql-community-release-el7-5.noarch.rpm

# 3、安装mysql
    yum install mysql-server

# 4、授权用户可以使用mysql
    chown -R root:root /var/lib/mysql

# 5、重启服务
    service mysqld restart

# 6、接下来登录重置密码:    
    mysql -u root        # 进入mysql
    
        # 下面为mysql命令        
        use mysql;            
        update user set password=password('root') where user='密码';            
        grant all privileges on *.* to 'root'@'%' identified by '密码';  #设置远程登陆密码
        flush privileges;      #刷新当前配置    注:如果不管用,重启虚拟机ctrl+c,退出myql
			
# 7、开放3306端口:
    # 设置 iptables service
	yum -y install iptables-services

    # 如果要修改防火墙配置,如增加防火墙端口3306
	vi /etc/sysconfig/iptables 

    # 增加规则
	-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT   #保存退出后

# 8、配置防火墙:
    systemctl restart iptables.service     # 重启防火墙使配置生效
    systemctl enable iptables.service      # 设置防火墙开机启动
    systemctl stop iptables  # 之前有遇到不能连接阿里云服务器上数据库的问题,就是利用这个解决的

CentOS7安装虚拟环境

# 安装虚拟环境
pip3 install virtualenv

# 创建软链接
ln -s /usr/local/python3/bin/virtualenv /usr/bin/virtualenv

创建目录

# 创建报错虚拟环境目录  名字是任意的
mkdir -p /data/env   
# 个人网站发布文件夹 .名字都是任意的!
mkdir -p /data/wwwroot

创建、进入虚拟环境

# 进入env目录
cd  /data/env
# 创建虚拟环境
virtualenv --python=/usr/bin/python3 py3_django2
# 激活虚拟环境
cd  /data/env/py3_django2/bin
source  activate  #  退出:  deactivate
# 安装django、uwsgi等.
pip3 install django==2.1.8
pip3 install uwsgi  # django项目发布相关
# 退出虚拟环境
cd  /data/env/py3_django2/bin
deactivate 

为uwsgi创建软链接

# 给uwsgi建立软链接,方便使用
ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi

创建xml文件,保存名字与项目名同名,后缀为.xml

放在与message.py同一目录下
修改之后记得将注释及空格删掉,以避免后期出现不必要的麻烦

<?xml version="1.0" encoding="UTF-8"?>
<uwsgi>    
   <socket>127.0.0.1:8000</socket> <!-- 内部端口,自定义 --> 
   <chdir>/data/wwwroot/library/</chdir> <!-- 项目路径 -->            
   <module>library.wsgi</module>  <!-- wsgi.py所在目录名--> 
   <processes>4</processes> <!-- 进程数 -->     
   <daemonize>uwsgi.log</daemonize> <!-- 日志文件 -->
</uwsgi>

本地项目上传到CentOS7服务器上

# 1、在windows系统下,用cmd进入项目的目录,生成项目包依赖列表(如果依赖包少的话,这一步忽略)
pip freeze > requirements.txt
# 2、settings文件设置
ALLOWED_HOSTS = ['*']  # 允许所有IP访问

CentOS7下安装相关依赖包

# CentOS7下安装相关依赖包(如果依赖包少的话,这一步忽略)
pip install -r requirements.txt

迁移静态文件

# 一、指定收集静态文件的目录,修改settings文件中静态文件路径	
    STATIC_ROOT = '/data/wwwroot/library/static'    

# 二、收集所有静态文件到STATIC_ROOT指定的目录
	python3 manage.py collectstatic

安装Nginx

修改之后将注释去掉,以避免后期出现不必要的麻烦

# 1、用yum下载Nginx
yum -y install nginx

"""
进入nginx,修改nginx.conf
"""
cd /etc/nginx

# 2、然后打开nginx.conf,把原来的内容删除,直接加入以下内容:
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    server {
        listen 80;
        server_name  www.xxxxxxxx.cn; #改为自己的域名,没域名修改为127.0.0.1:80
        charset utf-8;
        location / {
           include uwsgi_params;
           uwsgi_pass 127.0.0.1:8000;  #端口要和uwsgi里配置的一样
           uwsgi_param UWSGI_SCRIPT library.wsgi;  #wsgi.py所在的目录名+.wsgi
           uwsgi_param UWSGI_CHDIR /data/wwwroot/library/; #项目路径
           
        }
        location /static/ {
        alias /data/wwwroot/library/static/; #静态资源路径
        }
    }
}

""" 
3、启动nginx
"""
cd /etc/nginx/
nginx

启动项目

# 进入环境
cd /data/env/py3_django2/bin
source activate

# 进入djnago项目
cd /data/wwwroot/library/

# uwsgi 解析项目中的配置文件
uwsgi -x library.xml

# 重启nginx
nginx -s reload

# 可以选择直接访问域名查看项目是否上传成功(失败一般是因为 library.xml 和 nginx.conf 里有汉字,或者配置问题,或者项目未完全上传)

# 服务器内部测试是否发布成功
curl 127.0.0.1:80  #就可以看到网站!
    
# 关闭防火墙,否则远程不能访问!
systemctl stop firewalld.service

猜你喜欢

转载自blog.csdn.net/lvchen_1113/article/details/93870823