一 更新yum
二 安装gcc lrzsz软件
# yum install gcc 用来编译python3.6源码
# yum install lrzsz 用来上传文件
三 安装mysql5.6
3.1 下载mysql的repo源
# wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
3.2 安装mysql-community-release-el7-5.noarch.rpm包
# sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm
3.3 安装mysql
# sudo yum install mysql-server
3.4 设置 /var/lib/mysql的访问权限问题
# chown root /var/lib/mysql/
重启服务
3.5 登录重置密码:
# mysql -u root -p (回车 无密码登录)
# mysql > use mysql;
# mysql > update user set password=password('123456') where user='root';
# mysql > exit;
重启mysql服务后才生效
3.6 设置远程访问
前提,在阿里云服务器上开通3306端口
mysql>use mysql;
mysql>GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "root";
3.7 设置utf-8字符集
修改mysql配置文件 /etc/my.cnf 添加:
[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
重启mysql服务后才生效
查看字符集
show variables like 'character%';
四 安装python3.6
4.1 安装依赖环境
# 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
4.2 下载 python3
包安装在/usr/local/Python3
创建目录
# mkdir -p /usr/local/Python3
下载
# wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz
4.3 安装 python3
# tar -zxvf Python-3.6.1.tgz
# cd Python-3.6.5
# ./configure --prefix=/usr/local/Python3
# make
# make install
4.4 创建软连接
# ln -s /usr/local/Python3/bin/python3 /usr/bin/python3
4.5 添加环境变量
在 .bash_profile 文件中添加 :
PATH=$PATH:$HOME/bin:/usr/local/Python3/bin
注意:要添加到export PATH前
生效修改内容:
4.6 检查
检查Python3及pip3是否正常可用:
4.7 升级pip3
# pip3 install —-upgrade pip
五 安装virtualenv虚拟环境
5.1 安装virtualenv
# pip3 install virtualenv
5.2 创建虚拟环境目录
# mkdir -p /data
# mkdir -p /data/pyenv
# virtualenv -p /usr/local/Python3/bin/python3 /data/pyenv/
5.3 创建软链接
# ln -s /data/pyenv/bin/activate /usr/bin/activate
5.4 启动虚拟环境
5.5 退出虚拟环境
六 运行django项目
测试django项目是否能正常运行
# mkdir -p /data/wwwroot 用来存放项目文件
# pip3 install Django
3 pip3 install pymysql
导入已经写好的django项目,利用django自带的服务器,启动项目,测试项目是否能够正常启动
# python3 manage.py makemigrations
# python3 manage.py migrate
# python3 mange.py runserver 0.0.0.0:80
七 安装部署uwsgi
7.1 安装uwsgi
命令测试 uwsgi 是否安装成功(注意:一定要在项目的跟目录下执行下面的命令)
# uwsgi --http 0.0.0.0:80 --file maci_proj/wsgi.py --static-map=/static=static
7.2 配置文件启动
创建配置文件路径,一般跟你的django项目的根目录放在同一级目录下
# cd /data/wwwroot/
# mkdir maci 创建项目目录
# cd maci
# mkdir script
# cd script
# vim uwsgi.ini
编写启动文件:
[uwsgi]
# 项目目录
chdir=/data/wwwroot/maci/maci_proj
# 指定项目的application
module=军民.wsgi:application
# 指定sock的文件路径
socket=/data/wwwroot/maci/script/uwsgi.sock
# 进程个数
workers=5
pidfile=/data/wwwroot/maci/script/uwsgi.pid
# 指定IP端口
http=172.18.43.213:8000
#http=47.106.128.221:80
# 指定静态文件
#static-map=/static=/data/wwwroot/smcic/smcic_pro/static
static-map=/static=/data/wwwroot/maci/maci_proj/static
# 启动uwsgi的用户名和用户组
uid=root
gid=root
# 启用主进程
master=true
# 自动移除unix Socket和pid文件当服务停止的时候
vacuum=true
# 序列化接受的内容,如果可能的话
thunder-lock=true
# 启用线程
enable-threads=true
# 设置自中断时间
harakiri=30
# 设置缓冲
post-buffering=4096
# 设置日志目录
daemonize=/data/wwwroot/maci/script/uwsgi.log
7.3 常用命令
启动:uwsgi —ini 启动文件名.ini
停止:uwsgi —stop 启动文件名.pid
八 安装部署nginx
8.1 配置yum源
# vim /etc/yum.repos.d/nginx.repo
输入一下内容:
[nginx]
name=nginx repo
# 下面这行centos根据你自己的操作系统修改 比如:OS/rehel
# 7是你自己Linux系统的版本,可以通过URL查看路径是否正确
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enable=1
8.2 安装nginx
测试安装是否成功
浏览器访问本机ip,出现如下画面,成功!
aaarticlea/png;base64,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" alt="" />
8.3 配置nginx,添加自己项目的配置文件
创建xxx.conf文件,xxx自己命名,一般为项目名称。
文件内容如下:
server { # 这个server标识我要配置了
listen 80; # 我要监听那个端口
server_name 47.106.128.221 ; # 你访问的路径前面的url名称
access_log /var/log/nginx/access.log main; # Nginx日志配置
charset utf-8; # Nginx编码
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_page 404 /404.html; # 错误页面
error_page 500 502 503 504 /50x.html; # 错误页面
# 指定项目路径uwsgi
location / { # 这个location就和咱们Django的url(r'^admin/', admin.site.urls),
include uwsgi_params; # 导入一个Nginx模块他是用来和uWSGI进行通讯的
uwsgi_connect_timeout 30; # 设置连接uWSGI超时时间
uwsgi_pass unix:/data/wwwroot/maci/script/uwsgi.sock; # 指定uwsgi的sock>文件所有动态请求就会直接丢给他
}
# 指定静态文件路径
location /static/ {
alias /data/wwwroot/maci/maci_proj/static/;
#index index.html index.htm;
}
}
8.4 常用命令
# nginx 启动
# systemctl start nginx.service 启动
# systemctl enable nginx.service 开机自启动
# nginx -s reload 更新配置文件
使用链接
- nginx+uwsgi+django开发环境搭建
Nginx+uWSGI+Djangoi开发环境搭建 Django简介,环境搭建 uWSGI简介,安装与配置 Nginx安装与配置 Nginx+uWSGI+Django原理解析 1.django简介,环 ...
- Nginx+uWSGI+Django+Python+ MySQL 搭建可靠的Python Web服务器
一.安装所需工具 yum -y install gcc gcc-c++ rpm-build mysql* libtool-ltdl* libtool automake autoconf libtool ...
- django+nginx+uwsgi的生产环境部署(Ubuntu16.04)
一,准备工作: 代码一定要能本地跑起来! 各种基础包的安装略默认已经安装python3,nginx,uwsgi等基础依赖,注意版本问题. 本地setting.py文件修改如下(改为生产模式,把debu ...
- virtualenv下配置nginx uwsgi Django
1.安装virtualenv,创建虚拟环境django15 sudo apt-get install virtualenv virtualenv env source bin/active pip i ...
- nginx+uwsgi<django web环境的搭建>
1.sudo pip install uwsgi 2.sudo apt install nginx 3.sudo /etc/init.d/nginx start 4.netstat -tpnl 5./ ...
- centos7+python3.6+nginx+uwsgi+django2的搭建笔记
公司需上线一套python编写的代码,需要给搭建一套环境 ,本次采用centos7+python3.6+nginx+uwsgi2+django2+mysql5.7的方式来进行搭建 写在部署前 在线上 ...
- SLAM+语音机器人DIY系列:(八)高阶拓展——2.centos7下部署Django(nginx+uwsgi+django+python3)
0.安装步骤预览(1)系统默认自带python2.x,所以需要先安装python3.x(2)python2对应pip,python3对应pip3,用源码安装python3后pip3也自动安装了(3)用 ...
- nginx+uWSGI+django+virtualenv+supervisor发布web服务器
nginx+uWSGI+django+virtualenv+supervisor发布web服务器 导论 WSGI是Web服务器网关接口.它是一个规范,描述了Web服务器如何与Web应用程序通信,以 ...
- Python3.6+nginx+uwsgi部署Django程序到阿里云Ubuntu16.04系统
Python3.6+nginx+uwsgi部署Django程序到阿里云Ubuntu16.04系统 这个是写好的Django程序在本地机运行的情况,一个查询接口. 准备工作 1.首先购买一台阿里云的EC ...
随机推荐
- Java学习过程
按照这个流程巩固自己学习的东西吧
- ReactNative学习笔记(六)集成视频播放
概述 视频播放可以自己写原生代码实现,然后注入JS.如果对视频播放没有特殊要求的话,可以直接使用现成插件. 到官方推荐的插件网站搜索找到下载量第一的插件:react-native-video. 安装 ...
- App设计模式纵横谈(1)
对我的文章和培训课程感兴趣的可以加我微信16230091进行关注. —————————————————————————————————— 今天聊聊我沉淀比较久的一门技术,设计模式.这里是第一篇,算是概 ...
- Spring Data Solr的分组查询 for 搜索面板的商品分类
private List searchCategoryList(Map searchMap) { SimpleQuery query = new SimpleQuery(new Criteria(&q ...
- Eclipse 中打包插件 Fat Jar 的安装与使用
Eclipse可以安装一个叫Fat Jar的插件,用这个插件打包非常方便,Fat Jar的功能非常强大. 首先要下载Fat Jar,下载地址:https://sourceforge.net/proje ...
- Python进程-理论
进程定义 程序: 计算机程序是存储在磁盘上的可执行二进制(或其他类型)文件.只有把它们加载到内存中,并被操作系统调用,它们才会拥有其自己的生命周期. 进程: 进程则是表示的一个正在执行的程序.每个进程 ...
- 【LeetCode】14. 最长公共前缀
题目 编写一个函数来查找字符串数组中的最长公共前缀.如果不存在公共前缀,返回空字符串 "". 示例 1:输入: ["flower","flow&quo ...
- 链表的创建(C语言实现)
学习链表之前,我们要知道为什么要引入链表. C语言中的数组使用之前,我们必须要定义数组的大小.但是当我们不知道数据个数(或者很大)时,定义数组大小就成了一个困扰,而且对于这么多数据的处理也会很麻烦.所 ...
- 解决Chrome浏览器主页被hao123、360和2345篡改简单有效方法
转自:https://blog.csdn.net/qq_32635971/article/details/72793115?locationNum=10&fps=1 当你打开浏览器看到各种首页 ...
- JavaScript设计模式----装饰者模式
装饰者模式的定义: 装饰者(decorator)模式能够在不改变对象自身的基础上,在程序运行期间给对像动态的添加职责.与继承相比,装饰者是一种更轻便灵活的做法. 装饰者模式的特点: 可以动态的给某个对 ...