linux nginx mysql python_linux+nginx+mysql+python+uwsg布署

ROOT权限执行

安装软件管理包和可能使用的依赖

yum update -y

yum -y groupinstall "Development tools"

yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel psmisc

下载Pyhton3到/usr/local 目录 ,安装

cd /usr/local

下载

wget https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tgz

解压

tar -zxvf Python-3.6.6.tgz

编译及安装

cd Python-3.6.6

./configure --prefix=/usr/local/python3

make

make install

建立软链接方便使用命令

ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3ln -s /usr/local/python3/bin/pip3.6 /usr/bin/pip3

安装virtualenvpip3 install virtualenvln -s /usr/local/python3/bin/virtualenv /usr/bin/virtualenv

建立项目目录

mkdir -p /data/env # 存放虚拟环境

mkdir -p /data/wwwroot # 存放项目

安装虚拟环境virtualenv --python=/usr/bin/python3 pyweb

启动虚拟环境

进入/data/env/pyweb/binsource activate

pip3 install django

pip3 install uwsgi

给uwsgi建立软链接

ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi

测试uwsgi

创建一个名为 test.py 文件

# test.py

def application(env, start_response):

start_response('200 OK', [('Content-Type','text/html')])

return [b"Hello World"] # python3

#return ["Hello World"] # python2

运行uWSGI:

uwsgi --http :8000 --wsgi-file test.py

浏览器访问:127.0.0.1:8000

如成功则表示:the web client uWSGI Python

将项目移动至/data/wwwroot目录下

测试Django项目

uwsgi --http :8000 --module mysite.wsgi

安装nginx,以nginx-1.13.7为例

cd /home/

下载

wget http://nginx.org/download/nginx-1.13.7.tar.gz

解包

tar -zxvf nginx-1.13.7.tar.gz

编译安装

./configure --prefix=/usr/local/nginx

make

make install

配置uwsig.ini(文件名随便取,后缀ini)

[uwsgi]

chdir=/data/wwwroot/mysite

home=/data/env/pyweb

module=mysite.wsgi:application

master=True

processes=4

threads

harakiri=20

max-requests=5000

socket=127.0.0.1:8001

uid=1000

gid=2000

pidfile=/data/wwwroot/mysite/master.pid

daemonize=/data/wwwroot/mysite/mysite.log

vacuum=True

uwsig部分参数参考:

uwsgi --chdir=/path/to/your/project \

--module=mysite.wsgi:application \

--env DJANGO_SETTINGS_MODULE=mysite.settings \

--master --pidfile=/tmp/project-master.pid \

--socket=127.0.0.1:49152 \ # can also be a file

--processes=5 \ # number of worker processes

--threads=2 # number of worker threads

--uid=1000 --gid=2000 \ # if root, uwsgi can drop privileges

--harakiri=20 \ # respawn processes taking more than 20 seconds

--max-requests=5000 \ # respawn processes after serving 5000 requests

--vacuum \ # clear environment on exit

--home=/path/to/virtual/env \ # optional path to a virtualenv

--daemonize=/var/log/uwsgi/yourproject.log # background the process

配置ngixn

/usr/local/nginx/conf/中先备份一下nginx.conf文件

cp nginx.conf nginx.conf.bak

编辑nginx.conf

events {

worker_connections 1024;

}

http {

include mime.types;

default_type application/octet-stream;

sendfile on;

server {

listen 80;

server_name 127.0.0.1:80; #改为自己的域名,没域名修改为127.0.0.1:80

charset utf-8;

location / {

include uwsgi_params;

uwsgi_pass 127.0.0.1:8001; #端口要和uwsgi里配置的一样

uwsgi_param UWSGI_SCRIPT mysite.wsgi; #wsgi.py所在的目录名+.wsgi

uwsgi_param UWSGI_CHDIR /data/wwwroot/mysite/; #项目路径

}

location /static {

alias /data/wwwroot/mysite/static/; #静态资源路径

}

}

}

进入/usr/local/nginx/sbin/目录

./nginx -t # 命令先检查配置文件是否有错

./nginx # 启动

./nginx -s reload 重启

开放对应的端口

防火墙配置文件:

/etc/sysconfig/iptables

查看防火墙状态

service iptables status

停止防火墙

service iptables stop

启动防火墙

service iptables start

重启防火墙

service iptables restart

永久关闭防火墙

chkconfig iptables off

永久关闭后重启

chkconfig iptables on

清空防火墙规则

iptables –F

service iptables stop

静态文件没有生效的问题

需要将静态文件存放在nginx.conf配置里对应位置

# settings.py

STATIC_ROOT = os.path.join(BASE_DIR, 'static')#指定样式收集目录

运行命令:

python manage.py collectstatic

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值