CentOs7.5中部署 Nginx+Uwsgi+Django

建议以下命令都用root权限

安装python3

> 1. 安装依赖包 
> sudo yum -y groupinstall "Development tools" sudo yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel
> 
> 2. 安装python3包 
> wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz
> 
> 3. 解压 
> tar -xvJf  Python-3.7.0.tar.xz   # 注意是大写J
> 
> 4. 配置编辑参数 
> cd Python-3.7.0 
> ./configure --prefix=/usr/local/bin/python3
> 
> 5. 编译和安装 
> make make install
> 
> 6. 报错提示 提示找不到python3和pip3命令   
> 检查/usr/local/bin/python3/bin目录下能不能找到python3和pip3 
> 如果有的话需建立软连接 ln -s
> /usr/local/bin/python3/python3 /usr/bin/python3 ln -s
> /usr/local/bin/python3/pip3 /usr/bin/pip3

安装虚拟环境

> 1. 安装虚拟环境 
> sudo pip3 install virtualenv sudo pip3 install virtualenvwrapper
> 
> 2. 创建存放虚拟环境的文件夹 
> mkdir /root/.virtualenvs
> 
> 3. 更改.bashrc配置文件 
> find / -name virtualenvwrapper.sh # 查看路径 vim ~/.bashrc export WORKON_HOME=/root/.virtualenvs    # 虚拟环境存放目录
> VIRTUALENVWRAPPER_PYTHON=路径/python # 指定virtualenvwrapper执行的python版本
> source 路径/virtualenvwrapper.sh    # virtualenvwrapper.sh所在目录
> 
> 4. 激活更新配置 
> source ~/.bashrc
> 
> 5. 虚拟环境命令 
> mkvirtualenv  # 创建虚拟环境 
> deactivate  # 退出虚拟环境 
> workon  # 查看虚拟环境
> 
> 6. 报错提示 
> ERROR: virtualenvwrapper could not find virtualenv in your path  
> 报错  找不到virtualenv 解决办法: 
> find / -name virtualenv vim ~/.bashrc
> 最后一行添加 
> export VIRTUALENVWRAPPER_VIRTUALENV=路径/virtualenv

安装PCRE库

> cd /usr/local/
> 
> wget http://jaist.dl.sourceforge.net/project/pcre/pcre/8.33/pcre-8.33.tar.gz
> 
> tar -zxvf pcre-8.33.tar.gz cd pcre-8.33 ./configure make && make
> 
> install 如报错:configure: error: You need a C++ compiler for  C++  support
> 
> 解决:yum install -y gcc gcc-c++

安装SSL库

> cd /usr/local/
> 
> wget http://www.openssl.org/source/openssl-1.0.1j.tar.gz
> 
> tar -zxvf openssl-1.0.1j.tar.gz
> 
> cd openssl-1.0.1j
> 
> ./config
> 
> make && make install

安装Zlib库

cd /usr/local/

wget http://zlib.net/zlib-1.2.11.tar.gz

tar -zxvf zlib-1.2.11.tar.gz

cd zlib-1.2.11

./configure

make && make install

安装Nginx

cd /usr/local/

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

tar -zxvf nginx-1.8.0.tar.gz

cd nginx-1.8.0

./configure --user=nobody --group=nobody --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_gzip_static_module --with-http_realip_module --with-http_sub_module --with-http_ssl_module

make && make install

测试启动

/usr/local/nginx/sbin/nginx

设置开机自启

vi /etc/rc.local
/usr/local/nginx/sbin/nginx   # 增加到最后一行

可能遇到的错误:
报错:./configure: error: SSL modules require the OpenSSL library.

解决:
yum -y install openssl openssl-devel

可能遇到的错误:
报错:./configure: error: the HTTP gzip module requires the zlib library

解决
在–prefix后面接以下命令:
 
--with-pcre=/usr/local/pcre-8.36 指的是pcre-8.36 的源码路径。--with-zlib=/usr/local/zlib-1.2.8 指的是zlib-1.2.8 的源码路径。

安装Uwsgi

pip3 install uwsgi
cd /home/python/Desktop/meiduo
vim uwsgi.ini  # 填写配置文件
示例uwsgi配置
[uwsgi]
# 用于和Nginx通讯
socket = 127.0.0.1:9090
# Django项目根目录
chdir = /home/python/Desktop/project
# Django项目wsgi文件
module = project.wsgi
# 启动主进程来管理其他进程,其他的uwsgi进程都是master的子进程
master = true
# 当服务器退出的时候自动删除unix socket文件和pid文件。
vacuum = true
# 指定pid文件
pidfile = /home/python/Desktop/project/uwsgi.pid
# 日志
daemonize = /home/python/Desktop/project/uwsgi.log
# 自动加载
py-autoreload = 1

安装Django(虚拟环境下)

pip3 install django==2.0.2

配置Django项目

1. 创建Django工程
 django-admin startproject 工程名称
 
2. 创建子应用
 python manage.py startapp 子应用名称

3. 创建视图
from django.http import HttpResponse
def index(request):
    """
    index视图
    :param request: 包含了请求信息的请求对象
    :return: 响应对象
    """
    return HttpResponse("hello the world!")

4. 创建路由
vim meiduo/urls   # 主路由
	from django.contrib import admin
	from django.urls import path, include
	
	urlpatterns = [
	    path('admin/', admin.site.urls),
	    path('', include('books.urls')),
	]

vim meiduo/users/urls # 子路由
	from django.urls import path
	from books import views
	urlpatterns = [
	    path(r'books/', views.BookInfoAPIView.as_view())
	]

5. 启动Django测试
python manage.py  runserver 0.0.0.0:8000

Nginx配置文件参考


user  root;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
error_log  /var/log/nginx/nginx_error.log  info;

#pid        logs/nginx.pid;

events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;



    log_format  main  '$remote_addr - $remote_user [$time_local] "$request"' '"$http_referer"' '"$http_user_agent"';

    access_log  /var/log/nginx/nginx_access.log;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    upstream uwsgi{
	server 127.0.0.1:9090;  #要和uwsgi配置中一致
}


    server {
        listen       80;
        server_name  网址;
	# 把http请求转成https;
	rewrite ^(.*)$ https://$host$1 permanent;
}

 
    server {
	
	root /home/python/Desktop/project/static;

	location =/ {
		# 网站主页路径
		root /home/python/Desktop/project/static;
		index index.html index.htm;
}


	location =/index.html{
		index	index.html;
}


	location /favicon.ico {
		root html;
}

	location /static{
		alias /home/python/Desktop/project/static;
		autoindex on;
}


        location / {
        	include uwsgi_params;
		uwsgi_pass uwsgi;
   
}	
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

百里城墙

欢迎各位观众老爷打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值