本人服务器是使用腾讯云Centos7.6.以下配置均在Root权限下操作。
1. python3
1.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
1.2 下载Python3安装包
wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0a1.tar.xz
1.3 解压
tar -xvJf Python-3.7.0a1.tar.xz
1.4 配置编辑参数
cd Python-3.7.0a1 ./configure --prefix=/usr/local/bin/python3
1.5 编译和安装
make make install
2. 安装虚拟环境
2.1 安装虚拟环境
pip3 install virtualenv pip3 install virtualenvwrapper
2.2 创建存放虚拟环境的文件夹
mkdir /root/.virtualenvs
2.3 更改.bashrc配置文件
vim ~/.bashrc find / -name virtualenvwrapper.sh # 查看路径 VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python # 指定virtualenvwrapper执行的python版本 export WORKON_HOME=/root/.virtualenvs # 虚拟环境存放目录 source /usr/local/bin/virtualenvwrapper.sh # virtualenvwrapper.sh所在目录
2.4 激活更新配置
source ~/.bashrc
2.5 虚拟环境基本命令
mkvirtualenv 创建虚拟环境 deactivate 退出虚拟环境 workon 查看虚拟环境 workon 虚拟环境名 进入虚拟环境
3. 安装PCRE库
3.1 进入local文件夹
cd /usr/local/
3.2 下载安装包
wget http://jaist.dl.sourceforge.net/project/pcre/pcre/8.33/pcre-8.33.tar.gz
3.3 解压安装包
tar -zxvf pcre-8.33.tar.gz
3.4 配置编辑参数
cd pcre-8.33 ./configure
3.5 编译安装
make && make install
3.6 如果报错:configure: error: You need a C++ compiler for C++ support
解决办法: yum install -y gcc gcc-c++
4. 安装SSL库
4.1 进入到local文件夹
cd /usr/local/
4.2 下载安装包
wget http://www.openssl.org/source/openssl-1.0.1j.tar.gz
4.3 解压安装包
tar -zxvf openssl-1.0.1j.tar.gz
4.4 配置编辑参数
cd openssl-1.0.1j ./config
4.5 编译安装
make && make install
5. 安装Zlib库
5.1 进入local文件夹
cd /usr/local/
5.2 下载安装包
wget http://zlib.net/zlib-1.2.11.tar.gz
5.3 解压安装包
tar -zxvf zlib-1.2.11.tar.gz
5.4 配置编辑参数
cd zlib-1.2.11 ./configure
5.5 编译安装
make && make install
6. 安装Nginx
6.1 进入local文件夹
cd /usr/local/
6.2 下载安装包
wget http://nginx.org/download/nginx-1.8.0.tar.gz
6.3 解压安装包
tar -zxvf nginx-1.8.0.tar.gz
6.4 配置编辑参数
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
6.5 编译安装
make && make install
6.6 启动测试
/usr/local/nginx/sbin/nginx
6.7 设置开机自启
vi /etc/rc.local /usr/local/nginx/sbin/nginx # 增加到最后一行
6.8 可能遇到的错误
错误1: ./configure: error: SSL modules require the OpenSSL library. 解决办法: yum -y install openssl openssl-devel 错误2: ./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 的源码路径。 错误3: nginx: [emerg] still could not bind() 解决办法: cd /usr/local/nginx/sbin/ ./nginx -s reload
7. 安装Uwsgi
7.1 安装
pip3 install uwsgi
8. 安装Django(在虚拟环境下)
8.1 安装
pip3 install django==1.11.11
9. 创建Django项目(在虚拟环境下)
9.1 创建项目
django-admin startproject 工程名称
9.2 创建子应用
首先cd到工程目录下 python manage.py startapp 子应用名称
9.3 创建视图函数
cd到子应用下 vim views.py 添加到py文件中 from django.http import HttpResponse def index(request): """ index视图 :param request: 包含了请求信息的请求对象 :return: 响应对象 """ return HttpResponse("hello the world!")
9.4 创建路由
vim meiduo/users/urls # 子路由 from django.conf.urls import url from . import views # urlpatterns是被django自动识别的路由列表变量 urlpatterns = [ # 每个路由信息都需要使用url函数来构造 # url(路径, 视图) url(r‘^index/$‘, views.index), ] vim meiduo/urls # 主路由 from django.conf.urls import url, include from django.contrib import admin urlpatterns = [ url(r‘^admin/‘, admin.site.urls), url(r‘^‘, include(‘users.urls‘)), ]
9.5 配置settings文件
cd 项目目录/项目名/1. 注册子应用 我的子应用名是users INSTALLED_APPS = [ ‘users.apps.UsersConfig‘, ] 2. 设置HOST ALLOWED_HOSTS = [‘*‘]
9.6 配置Nginx文件
vim /use/local/nginx/conf/nginx.conf user root; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice;# 设置log日志文件 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" ‘ ‘$status $body_bytes_sent "$http_referer" ‘ ‘"$http_user_agent" "$http_x_forwarded_for"‘; access_log /var/log/nginx/nginx_access.log; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; server { listen 80; server_name 127.0.0.1; root /home/python/Desktop/kaiyuan/static; #charset koi8-r; #access_log logs/host.access.log main; # 设置首页访问路径 location =/ { root /home/python/Desktop/kaiyuan/static/; index index.html index.htm; } location =/index.html{ index index.html; } # 设置静态页面访问路径 location /static{ alias /home/python/Desktop/kaiyuan/static; autoindex on; } #设置Django项目访问路径和uwsgi location / { include uwsgi_params; uwsgi_pass 127.0.0.1:9090; # 这里要和Uwsgi写的一致 uwsgi_param UWSGI_SCRIPT kaiyuan.wsgi; uwsgi_param UWSGI_CHDIR /home/python/Desktop/kaiyuan; } }
9.7 配置Uwsgi文件
[uwsgi] # 用于和Nginx通讯 socket = 127.0.0.1:9090 # Django项目根目录 chdir = /home/python/Desktop/kaiyuan # Django项目wsgi文件 module = meiduo.wsgi # 启动主进程来管理其他进程,其他的uwsgi进程都是master的子进程 master = true # 当服务器退出的时候自动删除unix socket文件和pid文件。 vacuum = true # 指定pid文件 pidfile = /home/python/Desktop/kaiyuan/uwsgi.pid# 日志 daemonize = /home/python/Desktop/kaiyuan/uwsgi.log# 自动加载 py-autoreload = 1
9.8 重启Nginx和Uwsgi
重启Nginx cd /usr/local/nginx/sbin/ ./nginx -s reload # 重启 重启Uwsgi cd /home/python/Desktop/kaiyuan/ # cd到自己的配置文件目录 uwsgi --ini uwsgi.ini
原文地址:https://www.cnblogs.com/yinbohang/p/11794836.html
时间: 2024-08-30 00:29:57