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 更新配置文件
使用链接