前面三篇文章已经从零开始搭建好了运行环境,现在开始正式项目,前面三篇文章的地址如下:
1)项目规划:局域网图片网站制作:项目规划
2)运行环境:局域网图片网站制作:运行环境的搭建
3)安装配置:局域网图片网站制作:Nginx,python及Flask的安装配置
若遇到自启动问题可以直接参考文章最后: 自启动的修改说明
第一步,github建立项目然后下载。
首先到github新建一个空的项目,名叫:LocalCartoon(前面有部分介绍把cartoon的翻译弄错,这里就不修改前面的了,这里修改一下就好了),切换到devlop分支。其地址:
https://github.com/honeeWong/LocalCartoon.git
可以在虚拟机中直接运行git clone https://github.com/honeeWong/LocalCartoon.git,就可以下载到最新的代码。
但是centOS默认是没有git,因此还要安装git,直接yum -y install git 等待安装完毕即可,配置git等其他一些简单配置这里就不赘叙了。
第二步,增加项目相关文件目录和文件
简单的目录结构如下:
.
├── app # 所有前台文件都在这里。
│ ├── cartoon # 显示部分主要用于存放页面显示相关内容。
│ │ ├── __init__.py # 文件夹窗口,也是文件夹作为对象的关键。
│ │ └── views.py # 视图文件,用于页面显示
│ ├── extra # 其他部分,可能用的接口都存在这里。
│ │ └── __init__.py # 文件夹窗口,也是文件夹作为对象的关键。
│ ├── __init__.py # 文件夹窗口,也是文件夹作为对象的关键。
│ ├── static # 存放静态文件的位置,分为UI和客户存放的图片
│ │ ├── ui # UI存放位置
│ │ └── user # 客户图片存放位置
│ └── templates # 网页模板存放位置
│ └── index.html # 主页面
├── LICENSE # 代码的版权声明
├── localcarton.py # 启动入口文件
├── option # 网站配置文件
└── README.md # 说明文件
说明:此是简单的网站的基本框架,由于内容较少,因此未分得特别细致。
第三步,开始编程
代码实现可以见github上实际代码,这里重点说明三个部分:蓝图,装饰器和flask_script
- 关于蓝图
蓝图是flask用来模块化编程的关键,可以将不同的类型的模块用蓝图方式分开进行处理,方便区隔和编程。
- 装饰器
flask的路由都是通过装饰器来实现的,具体见:app/cartoon/views.py中的index函数装饰器。
- flask_script
flask_script是用来扩展flask的接口,方便调试和部署过程的,一般很少用于生产环节。
Gunicorn的自启动
开始编码,但是要每次开机有手动启动Gunicorn比较麻烦,因此一般采用开机自启动方式进行启动,而且还要使用supervisor 来进行守护启动。
首先安装supervisor,执行# yum -y install supervisor 即可。
然后修改守护启动配置文件,如下为内容:
1) 重置supervisor的conf文件:
#rm -f /etc/supervisord.conf #echo_supervisord_conf > /etc/supervisord.conf
2) 增加如下字段:
[program:cartoon] user=carton directory = /home/carton/server/LocalCartoon command=/home/carton/server/p3venv/bin/gunicorn -w 4 -b 127.0.0.1:8080 localcarton:application autostart=true autorestart=true stopsignal=INT
3) 修改supervisord.conf 字段为:serverurl=unix:///var/run/supervisor.sock,并新建/var/run/supervisor.sock文件,修改权限为777。
4) 用ps -aux | grep supervisord 找到已启动的supervisor,并手动kill掉,然后执行:supervisord -c /etc/supervisord.conf。
5) 添加到自启动目录下 # vim /etc/rc.d/rc.local,增加上述字段:supervisord -c /etc/supervisord.conf。保存即可,若无效果参考下一条。
服务自启动设置
若发现重启之后各种服务未启动,可依次按照如下方式输入命令:
# nginx未自启动,输入: # systemctl enable nginx.service # samba未自启动,输入: # systemctl enable smb.service # systemctl enable nmb.service # supervisor未自启动,输入: # systemctl enable supervisor.service
此为最新centOS 7验证有效之自启动方式。
版权所有丨如未注明,均为原创,转载请注明转自:https://whonee.net/local-picture-website-begin.html