(1).安装python:
1. 下载python安装包:wget https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tgz
2. 安装可能的依赖库:yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel zlib-devel pcre-devel ncurses-devel tk-devel
3.解压python安装包:tar -zxvf Python-3.6.4.tgz
进入到解压的python文件夹:cd Python-3.6.4/
安装到自己自定义指定目录,这里选择的是安装到/usr/local目录:./configure --prefix=/usr/local/
执行安装:make
然后再执行安装代码:make altinstall //此处不能用install安装,因为install不区分版本,会出现多版本混乱的问题
4.由于Linux默认是安装的python2.x的,输入python就可以看到是什么版本了,这里需要修改python环境为3.6版本
做软链接:
ln -s /usr/local/bin/python3.6 /usr/bin/python
ln -s /usr/local/bin/python3.6 /usr/bin/python3
5.坑1(关于yum)yum是依赖于python的,安装高版本python后,安装python3后yum就没办法直接用了,需要直接指定修改yum中python脚本的解释器才能使用:
修改/usr/bin/yum和/usr/bin/urlgrabber-ext-down两个文件的头文件,
即将第一行#!/usr/bin/python 改为 #!/usr/bin/python2
(2)安装virtualenv,创建虚拟环境,简单的说就是为每个服务器和应用创建单独的运行环境,也可以不要
1.使用pip安装,坑2:在这之前可以会有个问题 就是pip的版本问题,pip对应python2,pip3对应python3
linux 默认去 /usr/bin/下找pip3,而/usr/bin/下没有该命令,因此可以在/usr/bin 新建pip3 的链接到python3 安装目录下到 pip3.5:
执行软链接:ln -s /usr/local/bin/pip3.6 /usr/bin/pip3
然后安装virtualenv:pip install virtualenv
2.创建虚拟环境 virtualenv:virtualenv vname(自己定义名称)
建议先建一个专门的文件来管理虚拟环境
3.进入创建的虚拟文件 激活虚拟环境:
source vname /bin/activate
激活虚拟环境后,root对话框前面是跟创建的虚拟名称(vname)
这里我创建的虚拟名称是webvir
在虚拟环境中 安装django 和 uwsgi
4.退出虚拟环境
deactivate
(3)安装django:
1.在虚拟环境中安装,在上面的基础上 ,我们进入虚拟环境并且激活
安装django: pip install django #这种方法装的是最新版的django,目前是2.0版本
2.检查是否安装成功:
import django
print(django.get_version())
3.服务器的搭建,新建一个 django project:
django-admin.py startproject mysite(project-name自定义的工程名称)
进入工程文件夹创建一个app应用:
python manage.py startapp appname(自定义app名称)
以上完成后就可以运行python manage.py runserver 0.0.0.0:8000
坑3 假如是部署在阿里云或者其他服务器上的,需要本地外网访问的话 还需要配置防火墙开放相应的端口比如8000和 setting.py 中 ALLOWED_HOSTS = ['*']
(4)安装uwsgi:
1.安装uwsgi:pip install uwsgi
安装过程中如果出现
Exception: you need a C compiler to builduWSGI
是因为服务器上没有c编译器,先安装
#yum install -y gcc gcc-c++
2.安装完成测试是否安装正常
在你django项目下执行:
#uwsgi --http :8000 --module mysite.wsgi(django工程名称)
mysite.wsgi指向你的项目的wsgi.py文件
可以根据的显示的日志进行调试
3.uwsgi主要用文件形式来管理配置和启动,文件的格式有很多种ini,xml等 这里我用的是ini,
创建一个ini配置文件,ini文件的名称可以自定义,一般我命名为工程名称,内容:
[uwsgi]
chdir=/home/myvir/mysite/ / / chdir指向我的项目目录
module=mysite.wsgi [:application] //指定项目的wsig[可选app]
socket=/home/myvir/sock/mysite.sock / /指定sock的文件路径
workers=5 //进程个数
pidfile=/home/myvir/pid/mysite.pid //指定存放pid目录文件
http=:8080 //指定访问的IP端口 可以用来测试是否成功配置启动
static-map=/static=/home/myvir/mysite/static / /指定静态文件,这里指定的是django项目存放静态文件的目录static
# 启动uwsgi的用户名和用户组
uid=root
gid=root
master=true // # 启用主进程
vacuum=true //自动移除unix Socket和pid文件当服务停止的时候
thunder-lock=true //#序列化接受的内容,如果可能的话
enable-threads=true //启用线程
harakiri=30 //设置自中断时间
post-buffering=4096 //设置缓冲
daemonize=/home/myvir/log/mysite.log //设置日志目录
保存为mysite.ini文件
4.通过配置文件启动:
uwsgi --ini mysite.ini
通过上面的ini文件启动会生成3个文件
PID文件 :标识这个程序所处的状态
SOCK文件 :是用来和其他程序通信的
log 文件:记录启动和错误日志的
5.uwsgi 的简单使用:
ini方式启动:uwsgi --ini mysite.ini
停止:uwsgi --stop /home/myvir/pid/mysite.pid //通过pid文件来停止uwsgi
重载: uwsgi --reload mysite.ini
(5)安装nginx
1.首先下载 nginx
官网 http://nginx.org/en/download.html
或者 wget http://nginx.org/download/nginx-1.11.10.tar.gz
2.解压:tar zxvf nginx-1.11.10.tar.gz
3,进入文件 进行编译安装:
cd nginx-1.11.10/
./configure --prefix=/usr/etc/nginx #安装地址/usr/etc/nginx
make
make install
4.启动nginx测试安装是否成功:
/usr/etc/nginx/sbin/nginx //默认配置是80端口在浏览器上输入127.0.0.1:80访问是否是nginx的欢迎页面
5.使用nginx.conf配置文件来监听uwsgi服务器:
打开nginx.conf配置文件,编辑或者添加一个server:
server {
# 这个server标识我要配置了
# 我要监听那个端口
listen 80;
# 你访问的路径前面的url名称
server_name 127.0.0.1;
# Nginx日志配置
access_log /home/myvir/log/access.log;
# Nginx编码
charset utf-8;
# 启用压缩,这个的作用就是给用户一个网页,比如3M压缩后1M这样传输速度就会提高很多
gzip on;
# 支持压缩的类型
gzip_types text/plain application/x-javascript text/css text/javascript application/x-httpd-php application/json text/json image/jpeg image/gif image/png application/octet-stream;
# 错误页面
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
# 指定项目路径uwsgi
location / {
# 导入一个Nginx模块他是用来和uWSGI进行通讯的
include uwsgi_params;
# 设置连接uWSGI超时时间
uwsgi_connect_timeout 30;
# 指定uwsgi的sock文件所有动态请求就会直接丢给他
uwsgi_pass unix:/home/myvir/sock/mysite.sock;
}
# 指定静态文件路径
location /static/ {
alias /home/myvir/mysite/static/;
index index.html index.htm;
}
}
设置好以上配置后执行启动uwsgi和nginx:
uwsgi --ini mysite.ini
/usr/etc/nginx/sbin/nginx
6.nginx 的简单使用:
启动nginx:/usr/etc/nginx/sbin/nginx
重载:/usr/etc/nginx/sbin/nginx -s reload
测试配置文件:/usr/etc/nginx/sbin/nginx –t
停止nginx方式有几种:
a,强制停止:pkill -9 nginx
b.若在nginx.conf配置了pid文件存放路径则该文件存放的就是Nginx主进程号,如果没指定则放在nginx的logs目录下。
有了pid文 件,我们就不用先查询Nginx的主进程号,而直接向Nginx发送信号了,命令如下:
kill -信号类型 '/usr/etc/nginx/logs/nginx.pid'
c.步骤1:查询nginx主进程号
ps -ef | grep nginx
在进程列表里 面找master进程,它的编号就是主进程号了。
步骤2:发送信号
从容停止Nginx:
kill -QUIT 主进程号
快速停止Nginx:
kill -TERM 主进程号
以上几种暂停方式仅供参考任君选择。
————————————————
原文链接:https://blog.csdn.net/zhuangzhiyuan/article/details/80078948