经过网上资料查阅与学习,终于将我的第一个django项目部署到linux服务器上了,现将我部署的步骤记录下来,以供学习。
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文件启动项目)
首先到网站上下载源码包: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命令
建议大家都安装一个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
(将项目文件夹拷贝进来,注意不是应用app,是app上一层文件夹)
在虚拟环境中安装
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保存退出
下载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 成功!