第一步:需要在CentOS 7.5安装python3版本,因为CentOS自带Python2版本,所有我们就不要安装了。
CentOS 7.2 默认安装了python2.7.5 因为一些命令要用它比如yum 它使用的是python2.7.5。
使用 python -V 命令查看一下是否安装Python
然后使用命令 which python 查看一下Python可执行文件的位置
可见执行文件在/usr/bin/ 目录下,切换到该目录下执行 ll python* 命令查看
python 指向的是python2.7
因为我们要安装python3版本,所以python要指向python3才行,目前还没有安装python3,先备份,备份之前先安装相关包,用于下载编译python3
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make
yum install libffi-devel -y
不能忽略相关包,我之前就没有安装readline-devel导致执行python模式无法使用键盘的上下左右键;
然后备份
mv python python.bak
去官网下载编译安装包或者直接执行以下命令下载
wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz
解压
tar -xvJf Python-3.7.0.tar.xz
切换进入
cd Python-3.7.0
编译安装
./configure prefix=/usr/local/python3
make && make install
安装完毕,/usr/local/目录下就会有python3了
因此我们可以添加软链到执行目录下/usr/bin
ln -s /usr/local/python3/bin/python3 /usr/bin/python
可以看到软链创建完成
测试安装成功了没,执行
python -V 看看输出的是不是python3的版本
执行python2 -V 看到的就是python2的版本
因为执行yum需要python2版本,所以我们还要修改yum的配置,执行:
vi /usr/bin/yum
把#! /usr/bin/python修改为#! /usr/bin/python2
同理 vi /usr/libexec/urlgrabber-ext-down 文件里面的#! /usr/bin/python 也要修改为#! /usr/bin/python2
这样python3版本就安装完成;同时python2也存在
python -V 版本3
python2 -V 版本2
Python3装完后,默认已经安装了pip,此时只要配置下软链接即可使用pip工具:这里无用
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip
为什么不用virtualenv安装虚拟环境,因为python3.5以上就没有了virtualenv包,而是自带了pyvenv,所以就用pyvenv创建虚拟环境非常方便。
创建虚拟环境: /usr/local/python3/bin/pyvenv venv ---/usr/local/python3/bin/pyvenv 找到pyvenv安装的路径
安装好之后,进入虚拟环境:source venv/bin/activate source--命令 venv--虚拟环境名,根据自身创建的虚拟环境名变化,后面的bin/activate都一样的
查看已经有的库:pip list , 之后并升级pip, 输入命令为: pip install --upgrade pip
以下这段紧参看,对我的安装的版本不重要。
第二步:使用virtualenv创建python虚拟环境(对于python3无用,因为python3自带了pyvenv,没有virtualenv)
window安装
pip install virtualenv 或 pip3 install virtualenv
Linux和Mac安装
pip install virtualenv 或 sudo pip3 install virtualenv 或 (sudo pip install virtualenv 或 sudo pip3 install virtualenv)
测试是否安装成功
virtualenv --version
进入需要创建虚拟环境的目下, 输入命令:virtualenv venv ,virtualenv --创建命令 venv --虚拟机名
如下图:
激活虚拟环境,当当前目录下输入命令: source venv/bin/activate source--命令 venv--虚拟环境名,根据自身创建的虚拟环境名变化,后面的bin/activate都一样的
如下图:
退出虚拟环境输入命令:deactivate
第三部:启动Django项目
从windows平台的pycharm导出项目的依赖包,输入命令:pip freeze > requirements.txt 或者(pip3 freeze > requirements.txt)
将会生成requirements.txt 上传到服务器上去,怎么上传自己可以使用谷歌查询,有多种方式。
如图所示:
在CentOS系统进入自己创建的虚拟环境下载这些依赖包,输入命令: pip install -r requirements.txt
第四步:启动项目
安装好Django等必须库后,进入Django项目下,同步并创建数据库,执行:
python manage.py makemigrations
python manage.py migrate
注意:如果出错了,首先检查models.py 里面是不是有什么错误,包括在第一行设置UTF-8编码方式,因为我发现它有时也会出现这种问题!再检查settings.py 关于连接部分的设置对不对,最后检查是不是3306端口没打开!一般都是这几个问题。
建立后台超级用户:
python manage.py createsuperuser
启动自带的服务器,测试是否可以正常运行!(此时settings.py 中的DEBUG = False)输入:
python manage.py runserver 0.0.0.0:8000
在地址栏中输入服务器的地址加端口号,如果能够访问该项目,证明已经前面的步骤成功。
接下来做的:
在项目的根目录新建一个文件file_name.ini, file_name是指文件名,随便取名。
file_name.ini文件的内容为:
[uwsgi]
# 使用nginx连接时使用
socket =127.0.0.1:8000
# 直接作为web服务器使用,这里配置了会报错
;http=127.0.0.1:8000
# 配置工程目录
chdir=/home/aris/tcdss
# 配置项目的wsgi目录,相对于工程目录
wsgi-file = tcdss/wsgi.py
;wsgi-file = manage.py
;callable = app
# 配置虚拟环境的路径,相对于项目而言
virtualenv = /home/venv
# 配置进程,线程信息
processes = 4
threads = 2
;uwsgi_read_timeout = 600
;touch-reload = /home/pws
;py-auto-reload = 1
; 启用多线程
enable-threads=True
;允许主进程开子进程
master=True
;进程日志
pidfile=uwsgi.pid
;业务日志
daemonize=uwsgi.log
进入虚拟环境安装uwsgi的命令:pip install uwsgi 或 pip3 install uwsgi.
然后输入该命令检查是否安装成功uwsgi:uwsgi --http :8000 --wsgi-file tcdss/wsgi.py tcdss 项目名
进入/usr/local/software,
cd /usr/local
mkdir software
cd software
执行以下命令:
wget http://nginx.org/download/nginx-1.13.7.tar.gz
下载完成后,执行解压命令:tar -zxvf nginx-1.13.7.tar.gz
进入解压后的nginx-1.13.7文件夹,依次执行以下命令:
cd nginx-1.13.7./configure
make
make install
安装好nginx之后启动nginx,输入命令
find / -name nginx
进入到nginx的sbin下, 输入: ./nginx
查看是否启动,ps -ef | grep nginx
启动成功!
配置nginx.conf文件:vim /etc/nginx/nginx.conf
配置的内容如下:
server {
listen 80;
server_name 139.159.135.60; # 服务器ip,
charset utf-8;
client_max_body_size 100M;
location / {
include uwsgi_params;
#uwsgi_pass unix:/root/zlw/web_flask/flask_uwsgi.sock; # sock方式跑不通,原因未知
uwsgi_pass 127.0.0.1:8000;
}
# 指定静态文件路径
location /media {
alias /home/aris/tcdss/media;
}
location /static {
alias /home/aris/tcdss/static;
}
}
将原来的server注释掉,配置成自己的。
操作nginx的命令如下:查看原博客路径:https://blog.csdn.net/qq_35888875/article/details/80937731
二、nginx的启动、停止和重启
1、启动前的配置
因为Apeache占用80端口,Apeache尽量不要修改,演示服务器没安装Apeache,所以使用默认的端口80。
如需修改:linux 下修改路径/usr/local/nginx/conf/nginx.conf;
Windows 下修改路径\conf\nginx.conf。
默认端口为80,localhost修改为你服务器ip地址
2、nginx启动
方式一:nginx安装目录地址 -c nginx配置文件地址
[root@localhost sbin]# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
方式二:进入nginx的安装目录,进入/sbin并执行./nginx命令即可
[root@localhost /]# cd usr/local/nginx/sbin
[root@localhost sbin]#./nginx
使用命令netstat -ntpl查看是否启动成功
[root@localhost sbin]#.netstat -ntpl
[root@localhost conf]# netstat -ntpl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 18312/nginx: master
如上 即为启动成功。
3、nginx停止
nginx的停止有三种方式:
1).通过命令停止
[root@localhost ~]# nginx -s reload
2).通过杀死进程
(1)、查看进程号
[root@localhost ~]# ps -ef|grep nginx
(2)、执行kill命令
a.从容停止
[root@localhost ~]# kill -QUIT 2072
b.快速停止
[root@localhost ~]# kill -TERM 2132
[root@localhost ~]# kill -INT 2132
3). 强制停止
[root@localhost ~]# pkill -9 nginx
4、nginx重启
1、验证nginx配置文件是否正确
方法一:进入nginx安装目录sbin下,输入命令./nginx -t或在服务器任意地方输入nginx -t
[root@localhost sbin/]# ./nginx -t
[root@localhost /]# mginx -t
看到如下显示nginx.conf syntax is ok
nginx.conf test is successful
说明配置文件正确!
方法二:在启动命令-c前加-t
2、重启nginx服务
方法一:进入nginx可执行目录sbin下,输入命令./nginx -s reload 即可或者在服务器任意地方输入nginx -s reload
[root@localhost sbin/]# ./nginx -s reload
[root@localhost /]# mginx -s reload
方法二:查找当前nginx进程号,然后输入命令:kill -HUP 进程号 实现重启nginx服务
[root@localhost /]# netstat -ntpl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 4245/nginx: worker
[root@localhost /]# kill -HUP 4245
[root@localhost /]#
三、测试
因为我们设置的端口是默认的80端口,所以直接输入服务器ip即可访问。
第五步:安装数据库mysql
2、安装mysql 8.0.13