目录
一、安装python
1、下载依赖包
2、下载python包
3、解压python包
4、切换到python包路径
5、编译安装
6、创建软链接
二、安装django
三、安装uwsgi
1、安装uwsgi
2、创建软链接
3、测试uwsgi和django的契合
4、关闭防火墙和selinux
5、使用uwsgi的命令启动django
6、使用uwsgi脚本启动django
四、安装nginx
1、下载nginx包
2、解压包
3、切入解压目录
4、编译安装
5、创建软链接
6、启动nginx测试
7、配置nginx访问uwsgi参照(nginx/conf/nginx.conf)
8、关闭nginx和uwsgi
9、先启动uwsgi然后启动nginx
先检测当前服务器的yum是否可用
yum可用的情况下,安装python需要的依赖包
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make
wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tar.xz
如果已经有包的话,可以传到服务器然后直接解压
tar -Jxvf Python3.6.2.tar.xz
cd Python3.6.2
./configure prefix=/usr/local/python3
make && make install
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
给python创建软链接的时候,可以顺便把pip3也创建软链接
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
pip3 install pymysql && pip3 install pillow && pip3 install django==2.1.5 && pip3 install django-ckeditor
pip3 install uwsgi
ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi
uwsgi
systemctl stop firewalld
setenforce
setenforce 0
uwsgi --http 192.168.254.130:8000 --file /opt/QShop/wsgi.py --static-map=/static=static
--http ip端口
--file uwsgi文件位置 /opt/QShop/是django项目的路径
--static-map 静态文件路由
然后就可以去浏览器输入地址,打开项目了
这个操作需要nginx的配合,所以需要安装nginx,但是准备工作可以先做
在/opt下创建script目录,在script目录下创建uwsgi.ini文件,内容为:
[uwsgi]
chdir=/opt/QShop
module=QShop.wsgi:application
socket=/opt/script/uwsgi.sock
workers=5
pidfile=/opt/script/uwsgi.pid
http=192.168.254.130:9000
static-map=/static=/opt/QShop/static
uid=root
gid=root
master=true
vacuum=true
enable-threads=true
thunder-lock=true
harakiri=30
post-buffering=4096
daemonize=/opt/script/uwsgi.log
~
上面代码的分别对应的是:
[uwsgi] 声明uwsgi
chdir #项目目录
module #指定项目的application,尤其注意的是这个!!!下面会提到
socket #指定sock的文件路径
workers #进程个数
pidfile #pid文件
http #指定IP端口
static-map #指定静态文件
uid #用户
gid #组
master #启用主进程
vacuum #自动移除unix Socket和pid文件当服务停止的时候
enable-threads #启用线程
thunder-lock #序列化接受的内容,如果可能的话
harakiri #设置自中断时间
post-buffering #设置缓冲
daemonize=/opt/script/uwsgi.log #设置日志目录
这个东西是wsgi!!!!这个文件是python创建的,就叫wsgi,而不要自己改成uwsgi!!!
Wget http://nginx.org/download/nginx-1.12.2.tar.gz
tar -zxvf nginx-1.12.2.tar.gz
cd nginx-1.12.2
./configure \
出现了>,然后再按一下enter
make && make install
ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx
nginx
然后进网页,查看是否启动了
http {
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 80;
server_name QShop;
charset utf-8;
access_log logs/host.access.log main;
error_log /var/log/nginx/error.log error;
location / {
include uwsgi_params;
uwsgi_connect_timeout 30;
uwsgi_pass unix:/opt/script/uwsgi.sock;
}
error_page 500 502 503 504 /50x.html;
location = /static/ {
alias /opt/QShop/static;
index index.html index.htm;
}
}
}
http {
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"'; 日志的格式
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 80;
server_name Qshop; 服务的名称
charset utf-8; 编码格式
access_log logs/host.access.log main; 访问日志
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_log /var/log/nginx/error.log error; 错误日志,默认没有,需要手动创建
location / {
include uwsgi_params; 加载uwsgi_params
uwsgi_connect_timeout 30; 连接的超时时间 不要加冒号不要加冒号不要加冒号
uwsgi_pass unix:/opt/script/uwsgi.sock; uwsgi.sock通讯的文件地址
}
location = /static/{
alias /opt/Qshop/static; 静态文件的目录
index index.html index.htm;
}
pkill -9 uwsgi
pkill -9 nginx
uwsgi --ini /opt/script/uwsgi.ini
nginx
如果没有报错的话,应该已经完成了,可以根据设置好的地址,去浏览器访问