django+centos7+python3.7.3安装部署

经过网上资料查阅与学习,终于将我的第一个django项目部署到linux服务器上了,现将我部署的步骤记录下来,以供学习。

1.更新环境系统软件包

yum update -y

更新系统

yum gcc-c++

python需要gcc编译,以及其他一些系统支持的模块,因此先更新到最新

yum install wget openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel

安装这些模块都是为了成功编译安装python3,防止出现各种异常

yum install libxml*

(安装这个模块是为了让uwsig支持使用“-x"选项,能通过xml文件启动项目)

2.编译安装python3.7.3

首先到网站上下载源码包:https://www.python.org/ftp/python/3.7.3/ 下载Python-3.7.3.tgz。
然后拷贝到linux服务器某目录中,比如/home,然后解压

tar -zxvf Python-3.6.3.tar.gz

进入解压后的Python-3.7.3文件夹,依次执行以下命令

./configure --prefix=/usr/local/python3

将python3安装到/usr/local/python3/路径下

make -j2
make install -j2
ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3

以上两个ln命令是为了方便在终端中直接使用python3和pip3命令

3.安装virtualenv

建议大家都安装一个virtualenv,方便不同版本项目管理。
注:如果系统有多个python版本,则根据python的大版本号进行区分可以同时使用
比如:python3.x就用python3,pip3等等,用3来代表是python3.x的版本命令

pip3 install virtualenv 

建立软链接

ln -s /usr/local/python3/bin/virtualenv /usr/bin/virtualenv
mkdir -p /data/env

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

virtualenv --python=/usr/bin/python3 pyweb

然后进入/data/env/pyweb/bin
启动虚拟环境:

Source activate

关闭虚拟环境,使用如下命令

Source deactivate

启动成功后会在命令行前面显示虚拟环境名称
在这里插入图片描述

4.拷贝django项目

(将项目文件夹拷贝进来,注意不是应用app,是app上一层文件夹)

5.安装django和uwsgi

在虚拟环境中安装

pip3 install django
pip3 install uwsgi

为了在终端中使用uwsgi命令,执行以下命令

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

将你的django项目放到你想放的路径下,例如/home/www/,假设我们的Django项目名为"blogs",里面有一个应用叫"blog"
在你的django项目下新建 blogs.xml,内容如下:


    127.0.0.1:8997
        /opt/blogs
            blogs.wsgi
                4  
    uwsgi.log

:wq保存退出

6.安装nginx

下载ngin:http://nginx.org/download/ 选择一个nginx版本下载,本例选择nginx-1.13.7.tar.gz版本
下载完拷贝到服务器上,然后解压

tar -zxvf nginx-1.13.7.tar.gz

进入解压后的nginx-1.13.7文件夹编译安装,依次执行以下命令:

./configure
make
make install

nginx一般默认安装好的路径为/usr/local/nginx
在/user/local/nginx/conf/中打开nginx.conf,加入以下内容

server {
    listen 8996; #暴露给外部访问的端口
    server_name localhost;
        charset utf-8;
    location / {
        include uwsgi_params;
        uwsgi_pass 127.0.0.1:8997; #外部访问8996就转发到内部8997
    }
    location /static/ {
        alias /opt/blogs/blog/static/; #项目静态路径设置
    }
}

wq保存后进入/usr/local/nginx/sbin/目录
执行./nginx -t命令先检查配置文件是否有错,没有错就执行./nginx启动nginx
终端没有任何提示就证明nginx启动成功,可以通过链接查看nginx是否启动成功:
http://localhost:8996(请将该ip替换成你的服务器ip)
7.启动项目
进入你的django项目路径,执行以下命令:

uwsgi3 -x blogs.xml

访问页面http://localhost:8996/abc 成功!

你可能感兴趣的:(django,python,服务器部署)