将Django项目迁移到Linux系统,并上线发布

一,安装软件管理包和可能使用的依赖

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

二,下载和配置Pyhton3.7.0

1.下载Pyhton3.7.0到/usr/local 目录并解压

cd /usr/local
wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz
tar -zxvf Python-3.7.0.tgz

2.进入 Python-3.7.0路径,编译安装到指定路径,依次执行以下命令

cd  /usr/local/Python-3.7.0
./configure --prefix=/usr/local/python3
make
make install

3.安装完成之后 建立软链接 添加变量 方便在终端中直接使用python3

ln -s /usr/local/python3/bin/python3.7 /usr/bin/python3

4.Python3安装完成之后pip3也一块安装完成,不需要再单独安装,同样给pip3建立软链接

ln -s /usr/local/python3/bin/pip3.7 /usr/bin/pip3

5.查看python3与pip3安装情况


5.png

三,安装virtualenv ,方便不同版本项目管理。

1.安装virtualenv

pip3 install virtualenv

2.建立软连接

ln -s /usr/local/python3/bin/virtualenv /usr/bin/virtualenv

3.安装成功在根目录下建立两个文件夹,主要用于存放env和网站文件的。

mkdir -p /data/env
mkdir -p /data/web

4.进入到/data/env/下,创建指定版本的虚拟环境,创建完虚拟环境后进入/data/env/pyweb/bin里启动虚拟环境

virtualenv --python=/usr/bin/python3 pyweb
source activate  #启动虚拟环境
deactivate #退出虚拟环境

5.出现(pyweb),说明是成功进入虚拟环境。


6.png

四.本地项目迁移到服务器

1.Django项目配置修改
我们需要把原先的Django项目进行修改才能更好地进行项目迁移工作,首先需要修改的是 settings.py 文件。
由于项目上线之后不能让用户看到后台的运行逻辑,所以我们要把 DEBUG 改成 False ,把 ALLOWED_HOSTS 写成‘*’,这样是为了允许从不同主机进行访问。


1.png

由于linux中如果不加这句可能会出现文件找不到的情况,所以我们要把模板的路径进行拼接。


2.png

2.项目环境打包
首先我们需要把Django环境进行打包。在pycharm里面Terminal根路径中输入pip freeze >packge.txt,把当前项目的环境依赖包导出到packge.txt文件中


3.png

4.png

3.通过FileZilla把本地项目上传到服务器对应的/data/web/文件夹里面
Inked7_LI.jpg

4.进入虚拟环境然后进入项目路径安装packge.txt里的依赖包。

pip3 install -r packge.txt
8.png

安装mysqlclient时出现OSError: mysql_config not found错误,时因为原因是linux需要mysql相关的一些依赖包,安装以下依赖

yum install mysql-devel gcc gcc-devel python-devel
再重新执行一下:pip3 install -r packge.txt

五.安装和配置mariadb

1.下载mariadb

yum install -y mariadb mariadb-server
systemctl start mariadb #启动mariadb
systemctl enable mariadb #开机启动mariadb

2.设置mariadb的root初始密码

mysql -u root -p  #进入mysql
#第一次进入提示输入密码,直接按回车,进去后设置初始密码
set password=password('newpassword') #设置初始密码为newpassword
show databases;   #查询全部数据库
create database snbank;   #创建snbank数据库
use snbank;   #进入snbank数据库
SHOW VARIABLES LIKE 'character%';   #查询字符集

3.配置mariadb字符集,防止中文乱码

修改的配置文件位于 /etc/my.cnf.d目录下的client.cnf文件:
在[client]字段里加入
default-character-set=utf8
修改的配置文件位于 /etc/my.cnf.d目录下的server.cnf文件:
在[mysqld]字段里加入
character-set-server=utf8

SHOW VARIABLES LIKE 'character%'; #查询字符集,修改后的结果是:


9.png

六.安装和配置uwsgi

1.安装uwsgi
注意:uwsgi要安装两次,先在系统里安装一次,然后进入对应的虚拟环境再安装一次

pip3 install uwsgi  #退出虚拟环境deactivate

给uwsgi建立软链接,方便使用

ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi

2.配置uwsgi
①XML格式的配置文件
我们网站项目路径是 /data/web/snbank/,在项目根目录下创建snbank.xml文件,输入如下内容:

<uwsgi>    
   <socket>127.0.0.1:8997</socket> <!-- 内部端口,自定义 --> 
   <chdir>/data/web/snbank/</chdir> <!-- 项目路径 -->            
   <module>snbank.wsgi</module>  <!-- mysite为wsgi.py所在目录名--> 
   <processes>4</processes> <!-- 进程数 -->     
   <daemonize>uwsgi.log</daemonize> <!-- 日志文件 -->
</uwsgi>
#启动uwsgl
uwsgi -x snbank.xml
#uwsgi有没有启动成功,可以用下面的命令查看
ps -ef|grep uwsgi
#如果想重启uwsgi,先使用下面的命令杀掉进程,再启动uwsgi
killall -9 uwsgi

七.安装和配置nginx

1.安装nginx

1.进入home目录,下载nginx
cd /home/
wget http://nginx.org/download/nginx-1.13.7.tar.gz
2.解压下载的nginx
tar -zxvf nginx-1.13.7.tar.gz
3.进入解压后的nginx-1.13.7文件夹,编译安装nginx:
./configure
make
make install
4.nginx一般默认安装好的路径为/usr/local/nginx在/usr/local/nginx/conf/中先备份一下nginx.conf文件,以防意外。
cp nginx.conf nginx.conf.bak

进入nginx.conf,把原来的内容删除,直接加入以下内容:

events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    server {
        listen 80;
        server_name  www.django.cn; #改为自己的域名,没域名修改为127.0.0.1:80
        charset utf-8;
        location / {
           include uwsgi_params;
           uwsgi_pass 127.0.0.1:8997;  #端口要和uwsgi里配置的一样
           uwsgi_param UWSGI_SCRIPT snbank.wsgi;  #wsgi.py所在的目录名+.wsgi
           uwsgi_param UWSGI_CHDIR /data/web/snbank/; #项目路径
           
        }
        location /static/ {
        alias /data/web/snbank/static/; #静态资源路径
        }
    }
}

5.进入/usr/local/nginx/sbin/目录
执行./nginx -t命令先检查配置文件是否有错,没有错就启动nginx:

./nginx  #启动nginx
./nginx -s reload  #重启nginx

八.启动项目

在浏览器输入ip地址


Inked10_LI.jpg
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容