先祝祖国70华诞生日快乐!
背景
zhuye.kim这个网页导航估计站长的话很熟悉了。一个简洁漂亮的网页导航。不过作者没有开放源码,所以没有机会试一试,但是有hostloc上的大佬用python+Django仿了一个。可以来试试看,顺便学下Python和Django,之前昆哥一直给我推荐Django这个框架。 记录本次的折腾,主要是因为这个程序的官方还有moerats只写了centos的教程。因为我最近玩docker,就想用昨天docker拉取的Debian系统下搭建试试看。其实区别的话无非就是两个OS的命令 yum 和 apt-get的区别吧。。虽然如此还是记录一下。
环境要求
官方要求是下面这样
Centos7 + Python3 + MySQL + Django1.8.x-2.0.x
这次我用的下面的环境
debian(docker镜像版 + Python3.7 + MySQL5.6 + Django1.8.x-2.0.x)
准备工作
既然知道了所需环境,那就各个安装了就好。 Debian的话这里用的是昨天docker拉取的Debian镜像。相关教程可以查看这里。
由于昨天的Debian也直接安装了宝塔面板,直接面板里安装了mysql5.6,所以mysql也有了。
接下来就安装下python3.7
我们先从docker进去Debian系统容器
先看下正在运行的容器ID
root@instance:/home/ubuntu# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e27df07f4a6d debian "bash" 30 hours ago Up 6 hours 0.0.0.0:20-21->20-21/tcp, 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp, 0.0.0.0:888->888/tcp, 0.0.0.0:8888->8888/tcp baota
如果容器没有在运行就会出现下面这样
root@instance:/home/ubuntu# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
这样我们需要先运行一下容器。
查看下容器的ID或者说是有什么容器。
root@instance:/home/ubuntu# docker ps --all
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e27df07f4a6d debian "bash" 30 hours ago Exited (0) About a minute ago baota
知道了有个名字是“baota” ID为“e27df07f4a6d”的容器。
那我们就运行它,用ID也可以。
root@instance-20190921-1119:/home/ubuntu# docker start baota
baota
启动后通过下面命令来进入正在运行的容器
root@instance:/home/ubuntu# docker attach baota
root@e27df07f4a6d:/#
这样我们就在昨天搭建的Debian镜像容器里了。就是在debian的环境下操作了。
安装python3
进入后你可以先用python3 --version
看下有没有python3,如果提示没有该命令的话就是没有安装,我的这个Debian系统是没有自带python3 的,所以需要自己安装。
我是用系统自带package包安装的,所以需要先更新下软件库。
root@e27df07f4a6d:/# apt-get update
成功后接着安装python3
root@e27df07f4a6d:/# apt-get install python3
然后软件库就会自动安装好最新版的python3,这里装了python3.7.3-1。
没有python3,自然也没有pip3,所以如果直接用
apt-get install pip
安装的是pip2不支持python3,所以要用下面的命令来安装就可以了
apt-get install python3-pip
完成后可以查看下版本确认下
root@e27df07f4a6d:/# python3 --version
Python 3.7.3
root@e27df07f4a6d:/# pip3 --version
pip 18.1 from /usr/lib/python3/dist-packages/pip (python 3.7)
root@e27df07f4a6d:/# pip --version
pip 19.2.3 from /usr/local/lib/python2.7/dist-packages/pip (python 2.7)
安装必备组件
就是 Git,screen 之类的
apt-get install git screen -y
-y:yes,在命令行交互提示中,直接输入 yes 的意思
获取源码
接着用git来拉取源码,因为我们昨天搭建了宝塔面板,网站的目录在 /www/wwwroot/
下,所以在这里拉取源码
root@e27df07f4a6d:/# cd /www/wwwroot/
root@e27df07f4a6d:/www/wwwroot# git clone https://github.com/HuaienYao/zhuye_kim.git
新建数据库
我们在宝塔上新建数据库,这里数据库名字取zhuye
,用户名取zhuye
密码用 123456
或者你可以用原有的数据库,只需要修改/www/wwwroot/zhuye_kim/zhuye_kim/settings.py
文件的68行起的database部分设置,'NAME'
部分改为你的原有数据库名,'USER'
改为你的原有数据库用户名,'PASSWORD'
改为你原有数据库的密码。
# Database
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'zhuye',
'USER': 'zhuye',
'PASSWORD': '123456',
'HOST': '127.0.0.1',
'PORT': '3306',
'OPTIONS': {
'init_command': "SET sql_mode='STRICT_TRANS_TABLES'",
}
}
}
安装必备库,迁移模型(更新表结构)
这步我就照做就行。。还不理解python的知识。。
cd /www/wwwroot/zhuye_kim/
pip3 install -r requirements.txt
python3 manage.py makemigrations --merge
python3 manage.py makemigrations
python3 manage.py migrate
运行网站
cd /www/wwwroot/zhuye_kim/
# screen就是开一个后台
screen -S zhuye
python3 manage.py runserver 127.0.0.1:8001
运行成功会显示以下信息
sh-5.0# python3 manage.py runserver 127.0.0.1:8001
Performing system checks...
System check identified no issues (0 silenced).
October 01, 2019 - 16:44:23
Django version 2.0.12, using settings 'zhuye_kim.settings'
Starting development server at http://127.0.0.1:8001/
Quit the server with CONTROL-C.
如果要停止运行就是 Ctrl+C
关于screen命令
这是linux里开启多任务的命令,可以理解成窗口。如果你创建了这个,并运行了网站,但是如果你直接关闭窗口还是会停止的。如果只是想最小化,暂时断开的话,需要用Ctrl+A+D
就可以暂时断开(detach)这个任务。
之后回来可以通过screen -r session名字
这里就是你之前设置的zhuye
这里附上一些screen的常用命令
screen -S yourname -> 新建一个叫yourname的session
screen -ls -> 列出当前所有的session
screen -r yourname -> 回到yourname这个session
screen -d yourname -> 远程detach某个session
screen -d -r yourname -> 结束当前session并回到yourname这个session
反向代理
然后就是在宝塔反向代理这个端口。
宝塔面板添加网站
如下图所示,在宝塔面板的【网站】【添加站点】添加一个站点。
然后在面板的网站列表找到你刚添加的网站,点击网站名弹出设置,左侧选择反向代理,如下图所示设置保存。
如果前面没出错误信息,应该就可以访问了。
通过你的域名访问,当然你要提前把域名解析到这个服务器上。
后台就是 http://域名/admin 来访问
管理员用户名admin 密码12345678@