CentOS7.2腾讯云安装部署Nginx+uwsgi+Djan

2020-05-09  本文已影响0人  坐在坟头数星星

Django==2.0 Python==3.6.9

使用tar命令解压缩,tar是Linux系统下的压缩与解压缩的命令,tar命令后面的参数主要有以下几种:
下面的五个参数为必选参数,有且只能有一个 ,代表压缩与解压缩的模式:
-c: 建立压缩档案
-x:解压
-t:查看内容
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件
可选参数,可以一个或者多个并用:
-z:有gzip属性的
-j:有bz2属性的
-Z:有compress属性的
-v:显示所有过程
-O:将文件解开到标准输出
Python下载地址

补充安装python 设置ssl文件导入,不设置会导致些问题



vi编辑器查找字符命令 在命令输入模式下输入 :/_socket
1.安装python

#解压命令如下
tar -xzvf Python-3.6.9.tgz
#安装依赖
yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel gcc gcc-c++ openssl-devel
#进入解压文件目录配置安装路径
./configure --prefix=/usr/local/python3
#安装zlib依赖和更新zlib
yum -y install zlib*
yum update zlib
#安装Python
make && make install

结尾显示如下表示安装完成
Looking in links: /tmp/tmptrardd19
Collecting setuptools
Collecting pip
Installing collected packages: setuptools, pip
Successfully installed pip-18.1 setuptools-40.6.2

创建Python软连接
ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3
验证是否安装正确
[root@VM_0_17_centos bin]# python3
Python 3.6.9 (default, Dec 11 2019, 15:28:02)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>


创建pip3软连接
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
更新pip
pip3 install --upgrade pip
安装虚拟环境
pip3 install virtualenv
查找文件
find / -name virtualenv
用命令创建虚拟环境
/usr/local/python3/bin/virtualenv my_web_project
激活环境
source bin/activate

安装Django
我个人用的Django==2.0
pip3 install Django==2.0

2.安装MySql
mysql国内镜像

查看禁用
yum repolist all | grep mysql
修改禁用(enabled=0是关;1是开)
vim /etc/yum.repos.d/mysql-community.repo
查看mysql安装包
yum repolist all | grep mysql
rpm -qa | grep mysql
[root@VM_0_17_centos ~]#  rpm -qa | grep mysql
mysql-community-client-5.6.41-2.el7.x86_64
mysql-community-release-el7-5.noarch
mysql-community-devel-5.6.41-2.el7.x86_64
mysql-community-server-5.6.42-2.el7.x86_64
mysql-community-libs-5.6.41-2.el7.x86_64
mysql-community-common-5.6.42-2.el7.x86_64
如果有安装过5.6的最好卸载掉安装5.7及以上
卸载
[root@VM_0_17_centos ~]#  yum remove mysql-community*


下载mysql
wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
rpm -ivh mysql57-community-release-el7-11.noarch.rpm
执行安装
yum -y install mysql mysql-server mysql-devel
安装完成显示如下
Dependency Installed:
mysql-community-common.x86_64 0:5.6.46-2.el7        numactl-libs.x86_64 0:2.0.12-3.el7_7.1
  perl-Compress-Raw-Bzip2.x86_64 0:2.061-3.el7        perl-Compress-Raw-Zlib.x86_64 1:2.061-4.el7
  perl-DBI.x86_64 0:1.627-4.el7                       perl-Data-Dumper.x86_64 0:2.145-3.el7
  perl-IO-Compress.noarch 0:2.061-2.el7               perl-Net-Daemon.noarch 0:0.48-5.el7
  perl-PlRPC.noarch 0:0.2020-14.el7

Replaced:
  mariadb-libs.x86_64 1:5.5.52-1.el7
Complete!

如果发现安装速度过慢我们可以更换一下源(阿里源)
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo_old
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum makecache

如果还是过慢就自己下载软件包传上去(下面是缓存路径)
/var/cache/yum/x86_64/7/mysql57-community/packages/

启动mysql服务
service mysqld start
进入数据库(初始密码为空)
mysql -u root -p
修改root密码
set password for root@localhost = password('自己的密码'); 

3.配置数据库

[在mysql shell环境下执行]
创建项目所需的数据库(xxx数据库名称)自己替换
create database xxx default charset=utf8mb4 default collate utf8mb4_unicode_ci;
创建用户(xxx用户名),(yyy密码)自己替换
create user 'xxx'@'localhost' identified by 'yyy';
用户分配权限(xxx数据库名称),(nnn用户名)自己替换
grant all privileges on xxx.* to 'nnn'@'localhost';
刷新
flush privileges;

额外内容manage.py数据库操作
导出数据
[SQLite3]
python manage.py dumpdata > data.json
[mysql 在数据库调用]
mysqldump -u xxx -p xxx.db > data.sql
导入数据
[SQLite3]
python manage.py loaddata data.json
[mysql 在mysql shell下调用]
进入数据库
source xxx.sql;
文件上传scp[user用户名,ip服务器IP,xxx是文件]
scp xxx.xx user@IP:/home/xxx.xx

4.安装uwsgi
uwsgi文档

在系统环境下安装,非虚拟环境
pip3 install uwsgi
uwsgi测试
-------------------------代码------------------------------
创建boobar.py文件
def application(env, start_response):
    start_response('200 OK', [('Content-Type','text/html')])
    return [b"Hello World"]
-------------------------代码------------------------------

启动测试
/usr/local/python3/bin/uwsgi --http :9090 --wsgi-file foobar.py
打开网页访问9090端口看是否返回Hello World
关闭uwsgi
ps -aux | grep uwsgi |awk '{print $2}'|xargs kill -9


配置uwsgi.ini文件
-------------------------代码------------------------------
# Web.ini file    path;/home/Web_uwsgi/Web.ini
[uwsgi]
#此处填写项目地址,我的Django项目地址是/home/WebProject
chdir = /home/WebProject
#虚拟环境的目录
home = /home/my_web_project 
# wsgi文件
module = WebProject.wsgi:application
# process-related settings
# master
master = True
# 进程数量
processes = 4
#最大请求
max-requests = 5000
#请求超时时间(单位秒)
harakiri = 60
#设置监听端口
socket = 127.0.0.1:8001
#使用用户组,使用root用户比较危险
uid = 1000
gid = 2000 
#快捷启动重启目录
pidfile = /home/Web_uwsgi/master.pid
#此处配置的为日志文件存放的地方
daemonize = /home/Web_uwsgi/my_uwsgi.log
#服务器停止后进行回收log文件等操作
vacuum = True
-------------------------代码------------------------------

启动uwsgi.ini
uwsgi --ini /home/Web_uwsgi/Web.ini
查看是否启动
ps -aux | grep uwsgi
打印如下就说明以启动
1000     12782  0.0  1.5 229732 29208 ?        S    14:33   0:00 /usr/local/python3/bin/uwsgi --ini web.ini
1000     12790  0.0  1.2 229732 23788 ?        S    14:33   0:00 /usr/local/python3/bin/uwsgi --ini web.ini
1000     12791  0.0  1.2 229732 23788 ?        S    14:33   0:00 /usr/local/python3/bin/uwsgi --ini web.ini
1000     12792  0.0  1.2 229732 23788 ?        S    14:33   0:00 /usr/local/python3/bin/uwsgi --ini web.ini
1000     12793  0.0  1.2 229732 23788 ?        S    14:33   0:00 /usr/local/python3/bin/uwsgi --ini web.ini

5.安装nginx

准备工具
sudo yum install yum-utils
创建nginx.repo文件
sudo vim /etc/yum.repos.d/nginx.repo
并添加以下内容
-----------------------------Code---------------------------------
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
-----------------------------Code---------------------------------

编辑配置文件
vim /etc/nginx/conf.d/myconf.conf
-----------------------------Code---------------------------------
#Nginx反向代理服务器,主要功能就是将发送到指定端口的数据转发到相应的服务器中
server {
   listen 80; # 监听80端口
   server_name WebObject; # 路径前面的url名称,也就是你在浏览器中输入访问这个服务器的网址,比如1.1.1.10
   access_log /var/log/nginx/access.log main; # Nginx日志配置
   charset utf-8; # Nginx编码
   client_max_body_size 75M;#最大上传大小

   error_page 404 /404.html; # 配置notfound错误页面
   error_page 500 502 503 504 /50x.html; # 配置50X错误页面

# 指定项目路径uwsgi,此处配置的就是Nginx和uwsgi之间的代理
   location / {
      include /etc/nginx/uwsgi_params; # 导入Nginx的模块,这个模块是用来和uWSGI进行通讯的
      uwsgi_connect_timeout 30; # 设置连接uWSGI超时时间
      uwsgi_pass 127.0.0.1:8001; # 指定uwsgi的sock文件,此处填写要和uwsgi配置文件中的socket后面是一样的
   }

   location /media/{
      alias /home/WebProject/media;
   }

   # 指定静态文件路径,此处指定你的CSS和JS的文件路径,也就是你Django项目中的静态文件夹的地址,配置不好,所有的CSS以及JS效果都看不到
   location /static/ {
      alias /home/WebProject/static;
      #index index.html index.htm;
   }
}
-----------------------------Code---------------------------------

检测配置文件是否正确(正确打印如下) nginx -t 
[root@VM_0_17_centos Web_uwsgi]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
启动nginx服务
service nginx restart
查看以运行服务
netstat -ntpl
重新加载uwsgi
uwsgi --reload uwsgi.pid
ps -ef | grep uwsgi
上一篇下一篇

猜你喜欢

热点阅读