1. 配置系统环境
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 runserver
3. 安装配置uwsgi
soure /data/env/mysite/bin/activte #使用python虚拟环境
pip instll uwsgi #pip直接下载
- 准备uwsgi服务器配置文件
- 在manage.py的同级目录下,新建一个uwsgi.xml文件,配置此文件
<uwsgi>
<socket>127.0.0.1:8000</socket> <!-- 内部端口,自定义 -->
<chdir>/data/wwwroot/demo/</chdir> <!-- 项目路径 -->
<module>demo.wsgi</module> <!-- mysite为wsgi.py所在目录名-->
<processes>4</processes> <!-- 进程数 -->
<daemonize>uwsgi.log</daemonize> <!-- 日志文件 -->
</uwsgi>
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:
./nginx
6.常用命令
关闭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