老罗的个人网站创建备忘
事情是这样的,躺在床上睡不着,就去申请了一个域名,0xcc0xcd.com。域名申请到了,总不能不用吧。用来做什么呢?想起我写的那本书《Android系统源代码情景分析》,从2012年10月出版至今,也有四年多的时间了,得到了大家的厚受。不过网络上也逐渐的出现了一些盗版PDF。不用说,质量肯定很差。干脆我把这本书的内容在我的个人站点上放出来吧。后面征得了出版社的同意,就着手开始干了。
网站名称为“进击的程序员”,主要是为了配合0xcc0xcd.com这个域名。从Windows时代过来的老司机可能一眼就能看出这个域名是什么意思。看不懂的,如果大家有兴趣,后面我也可以详细说说,怀念一下逝去的青春。
从开始有想法,到把网站建好,以及将书前三章(准备知识、硬件抽象层、智能指针)的内容放上去,花了不到一个月的时间。在这不到一个月的时间里,学习到了挺多东西:申请域名、云服务器、域名解析、域名邮箱、网站备案以及开发网站等等。因为我一直都是做客户端开发,刚毕业几年做的是Windows客户端,后面做的是Android端,没有做过网站相关的开发,包含前端和后端,所以学习过程还是有些小波折。不过总体上来说还是比较顺利的。这也跟网站的技术选型有关吧。
现在不是提倡做全栈工程师吗?这个建站过程也算是小小地实践了一把。怕时间久了会忘记一些关键细节和踩过的坑,所以就计划把建站连载书的过程记录下来。也希望能够帮助到有兴趣做全栈工程师的同学们。
网站使用的是LNMP架构,如下图1所示:
图1 进击的程序员网站架构
网站运行在云服务器上,系统装的是Ubuntu 14.04,除了Nginx、PHP和MySQL,还搭了一个Git仓库,用来管理网站源码。这个GIT仓库除了用来管理网站源码,还用来将源码分布到网站中去。
具体是这样的,在本地用自己的电脑开发网站(其实就是用vim编辑网页和PHP)。测试没有问题之后,就用git push命令将源码上传到GIT仓库。然后再登录到云服务器上,在网站根目录用git pull命令从GIT仓库中获得最新网站源码。
此外,在本地还搭建了一个管理后台。这个管理后台就是用来给管理员管理网站的。主要就是操作一下数据库,例如查看数据、插入数据、更新数据等等。正规的网站会专门提供一些页面供管理员操作。鉴于这个网站不是很正规,管理员又是一个技术控,于是就直接使用Python脚本来实现这个管理后台了,想要什么功能就直接写个脚本。
Oracle提供了一个Python版的MySQL数据库驱动库MySQL Connector/Python,通过它很容易用Python脚本操作MySQL中的数据。这样一个简单的管理后台就搭建起来了。
整个网站的架构非常简单,可以非常快上手,同时它又五脏俱全。网站的前端主要用Ajax、jQuery开发,后端没有用什么高大尚的框架,基本上是徒手写的PHP。主要是考虑这个网站要做的事情很简单,就是连载《Android系统源代码情景分析》的内容,基本功能就是浏览和评论。所以就以最简单最快的方式实现。
为了让大家利用碎片时间更好地阅读书的内容,网站在提供PC版的同时,也提供了移动版。移动版和PC版的功能是一样的,只是它们的页面表现形式不一样。所以网站在设计之初,就考虑了模块化和代码复用,用最小的成本获得同时实现PC端和移动端的功能。
不知道为什么,说起PHP, 总是会想起“PHP是最好的语言”这句话。从这一个月的经历看,PHP是不是最好的语言不知道,但是用来建网站,PHP的确是最好的语言。用PHP和JS开发网站,效率比用Java/OC开发App,高多了。不过,网站的体验不如App。所以移动开发目前还是王道。
接下来,我会用一个系列的文章分享整个建站过程,包括:
1. 域名、云服务器、域名解析、网站备案、域名邮箱、CA证书申请
2. LNMP开发环境搭建,包括如何配置SSL加密的HTTPS站点
3. 支持SSH访问的GIT仓库搭建
4. 网站基本功能开发,PC版和移动版代码复用
5. 基于MySQL Connector/Python的管理后台开发
欢迎大家关注!想在线阅读《Android系统源代码情景分析》一书的,点击进击的程序员进入!
老罗的个人网站创建备忘相关推荐
- 常用的开源镜像网站收集与备忘
常用的开源镜像网站收集与备忘 开源软件,英文表示是open source software,简称为OSS,直接的字面意思是公开源代码的软件,开源软件具备可以免费使用和公布源代码的主要特征,是赋予任何人 ...
- 加速下载必知必会-国内的镜像网站备忘
1 国内的知名镜像网站备忘 大的综合镜像站仓库,为各中需求,包括下载软件.jar包.依赖等都提供了特别多的方便,下面是个人收藏的一些镜像站: #### 1 ali云 https://developer ...
- c# ui 滚动 分页_UI备忘单:分页,无限滚动和“加载更多”按钮
c# ui 滚动 分页 重点 (Top highlight) When you have a lot of content, you have to rely on one of these thre ...
- aws 认证_AWS ML专业认证备忘单
aws 认证 the highly important and carefully crafted piece, * this will only be useful after completing ...
- jQuery学习笔记--JqGrid相关操作 方法列表 备忘 重点讲解(超重要)
JqGrid相关操作备忘 方法列表 特别推荐:怎样获取某一方某一列的值: [html] view plaincopy var rowdata=jQuery("#list").jqG ...
- vue 插件 滑块验证_VUE接入腾讯验证码功能(滑块验证)备忘
最近在用VUE做个简单的用户系统,登录注册需要验证码,想找个那种拖动的,找geetest居然已经不面向小客户了(或者说只有收费套餐). 腾讯防水墙的验证码免费使用,有2000/小时的免费额度,对于小网 ...
- eazy ui 复选框单选_UI备忘单:单选按钮,复选框和其他选择器
eazy ui 复选框单选 重点 (Top highlight) Pick me! Pick me! No, pick me! In today's cheat sheet we will be lo ...
- hp-ux 单用户 启动_UX备忘单:搜索与浏览
hp-ux 单用户 启动 重点 (Top highlight) When designing search results and interest sites, you have to keep i ...
- 强大的日志分析工具AWStats经典备忘
awstats经典备忘 [保留] 日志分析软件awstats的安装使用简易指南 http://www.chinaunix.net 作者:missing-cn 发表于:2006-09-30 08:1 ...
最新文章
- 腾讯云存储产品矩阵全面升级,发布三维生态战略
- 一文带你彻底了解Java异步
- mysql表数据以本地文件方式导入Hive
- java实体类如果不重写toString方法,会如何?
- 04 理解SQL与T-SQL的概念测试分析 1214
- Alibaba Nacos 服务消费者工程接入nacos并实现调用服务提供者工程
- 华为云苏光牛:生态建设是数据库产业发展非常重要的一环
- scala 高阶函数,闭包及柯里化
- 蓝桥杯2019年第十届C/C++省赛C组第一题-求和
- 7-19 输出全排列 (20 分)
- 为什么世界上近60%的人使用谷歌Chrome浏览器?
- Solr全文检索学习笔记·记录
- js判断数组中是否包含某个元素
- 免费支持顺丰、四通一达、EMS等快递物流单号查询的开放接口?
- 洛谷P3835 【模板】可持久化平衡树(FHQ Treap)
- 千人基因组(1000 Genomes)提取群体(population)或者样本(sample ID)信息
- IE浏览器地址栏输入中文乱码问题
- 隆重揭晓 | Google Play 2018 年度大赏,中国开发者再领风骚
- 语c语言描写,语c动作描写
- Android从程序员到架构师之路3