yum -y install gcc gcc-c++ yum -y install wget yum -y install zlib zlib-devel openssl openssl-devel ncurses-devel sqlite sqlite-devel bzip2-deve readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel yum -y install epel-release yum -y install libffi-devel #编译Python时候,如果缺少,会导致pip安装不成功 yum install psmisc #帮助管理/proc目录,fuser,killall,pstree等2. 源码安装Python3.7.4 && Django
- cd /opt 进入opt目录
- 使用wget命令下载压缩包
wget https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tgz tar -zxvf Python-3.7.4.tgz cd Python-3.7.4 ./configure --prefix=/usr/local/python3 make && make install
- 创建软连接
cd ~ ln -s /usr/local/python3/bin/python3 /usr/bin/python3 ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
- 给python3安装django
pip install django 建立软连接 ln -s /usr/local/python3/bin/django-admin /usr/bin/django-admin
- 建立python项目文件夹与虚拟环境文件夹
cd /data/ mkdir wwwroot #项目文件夹 mkdir env #虚拟环境文件夹
- 本地导出项目的依赖
pip freeze > ./requirements.txt
- 上传自己的项目并测试
cd /data/env virtualenv --python=/usr/bin/python3 mysite(虚拟环境名)#创建虚拟环境 soure /data/env/mysite/bin/activate #激活虚拟环境 pip install -r requirements.txt #下载项目依赖 python3 manage.py runserver3. 安装配置uwsgi
soure /data/env/mysite/bin/activte #使用python虚拟环境 pip instll uwsgi #pip直接下载
- 准备uwsgi服务器配置文件
- 在manage.py的同级目录下,新建一个uwsgi.xml文件,配置此文件
127.0.0.1:8000 /data/wwwroot/demo/ demo.wsgi 4 uwsgi.log
- 在manage.py的同级目录下,新建一个uwsgi.ini文件,配置此文件
[uwsgi] # 使用Nginx连接时使用,Django程序所在服务器地址 socket=172.16.21.25:8001 # 直接做web服务器使用,Django程序所在服务器地址 # http=172.16.21.25:8001 # 项目目录 chdir=项目路径/meiduo_project/meiduo_mall # 项目中wsgi.py文件的目录,相对于项目目录 wsgi-file=meiduo_mall/wsgi.py # 进程数 processes=4 # 线程数 threads=2 # uwsgi服务器的角色 master=True # 存放进程编号的文件 pidfile=uwsgi.pid # 日志文件 daemonize=uwsgi.log # 指定依赖的虚拟环境 virtualenv=虚拟环境路径/.virtualenvs/虚拟环境4. 安装配置Nginx
- 安装
# 1.进入home目录 cd /home # 2.下载nginx wget http://nginx.org/download/nginx-1.13.7.tar.gz # 3.解压 tar -zxvf nginx-1.13.7.tar.gz # 4.进入解压后的nginx-1.13.7文件夹 cd nginx-1.13.7 # 5.编译安装 ./configure make && make install
- ginx一般默认安装好的路径为/usr/local/nginx 在/usr/local/nginx/conf/中先备份一下nginx.conf文件,以防意外。
cd /usr/local/nginx/conf cp nginx.conf nginx.conf.bak
- 然后打开nginx.conf,把原来的内容删除,直接加入以下内容:
vim nginx.conf
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
server {
listen 80;
server_name 118.25.19.221; #改为自己的域名,没域名修改为127.0.0.1:80
charset utf-8;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8000; #端口要和uwsgi里配置的一样
uwsgi_param UWSGI_script demo.wsgi; #wsgi.py所在的目录名+.wsgi
uwsgi_param UWSGI_CHDIR /data/wwwroot/demo/; #项目路径
}
location /static/ {
alias /data/wwwroot/demo/static/; #静态资源路径
}
}
}
5. 启动服务
- 进入项目目录下将settings.py中:
ALLOWED_HOSTS = ['*'] DEBUG = False
- cd /data/项目
- 启动 uwsgi
uwsgi --ini uwsgi.ini uwsgi: uwsgi -x demo.xml
- cd /usr/local/nginx/sbin/
- 启动nginx:
./nginx6.常用命令
关闭nginx&&uwsgi
killall -9 nginx killall -9 uwsgi
查看服务器正在运行的端口
netstat -ntpl
关闭8000端口(端口被占用)
sudo fuser -k 8000/tcp #启动Django项目,如果出现Error:That port is already in use. 关掉8000的进程就好
重启nginx
nginx -t #检查nginx配置是否正确 nginx -s reload



