centos7.4+mysql5.6+virtualenv+python3.6+nginx+uwsgi+django生产环境搭建

一 更新yum

# yum update

二 安装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/
  重启服务
# service mysqld restart

3.5 登录重置密码:

# mysql -u root -p (回车 无密码登录)
# mysql > use mysql;
# mysql > update user set password=password('123456') where user='root';
# mysql > exit;
 
  重启mysql服务后才生效 
# service mysqld restart

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服务后才生效

service mysqld restart

  查看字符集

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 添加环境变量

# vim ~/.bash_profile
  在 .bash_profile 文件中添加 :
PATH=$PATH:$HOME/bin:/usr/local/Python3/bin
  注意:要添加到export PATH前
  生效修改内容:
# source ~/.bash_profile

4.6 检查

检查Python3及pip3是否正常可用:
# python3 -V
# pip3 -V

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 启动虚拟环境

# source  activate

5.5 退出虚拟环境

# deactivate

六 运行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

# pip3 install 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

# yum -y install nginx
  测试安装是否成功
# nginx
  浏览器访问本机ip,出现如下画面,成功!

8.3 配置nginx,添加自己项目的配置文件

# cd /etc/nginx/conf.d/
  创建xxx.conf文件,xxx自己命名,一般为项目名称。
# vim xxx.conf
  文件内容如下:
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                         更新配置文件

使用链接

 

posted @ 2018-09-27 13:06  嵌动初心(aaron)  阅读(423)  评论(0编辑  收藏  举报