技术存档:建站(一)

写这系列文章的初衷是:对本身知识面广度和深度的肯定,并以此调整后续的发展和学习方向。但愿能达到温故而知新的效果。php

选择从建站入手,是由于这个是最多见的要求。对于公司而言,网站是展现公司主旨、业务、沟通方式、宣传营销的必选方案,一个符合公司形象的高质量官网,必然能让客户留下良好的第一印象。,对我的而言,博客是表达其特有的思想、展示技术实力、个性化等的有效手段,而我的网站对技术人员而言亦属于有效的展现方案。虽然建站属于最基础的东西,但最基础,不表明是最简单的。html

1、域名

做为新时代的程序员,有一个属于本身的独特的域名,是一个很棒的感受。对一个公司而言,一个通俗易懂或好记的域名,也是至关重要的。node

域名选购

对我而言,基本只接触过 万网 ,输入心仪的域名,选择时限,购买便可。固然,购买时注意,顶级域名——即域名后缀,如.com,.edu等——所表明的含义是不同的,具体请自行查阅,通常我的或公司均可以选用.com。python

固然,注册网站的话,你得备案,这个有点麻烦。mysql

域名解析

这里假设你已经够买了一台云服务器,有本身的固定IP,便可将主机IP添加到解析。相关原理有兴趣请自行查找。webpack

解析类型通常为A记录,即将域名指向一个IPv4地址(属于本身的固定)。某些状况下,也会使用CNAME方式,将域名定向到另外一个域名别名。git

总不能让别人记录IP来访问你的网站吧?程序员

具体并不困难,填写对应参数便可。github

DNS解析列表

添加解析

2、技术方案

付费方案

基本上,做为技术人员的一点小骄傲,若非相关人手缺稀,且项目时间紧迫,通常而言是不会将这类业务给其余人作的。web

一、外包

若公司内没有懂技术的人,通常都会选择外包。

阿里云、腾讯云、百度云,包括我没提到的各大云平台,都有本身的云市场,能够从中获取各类简单或复杂的官网或博客建站方案。这一块我并没作过太大的研究。虽然基本是属于略有改动的模板型网站,但至少,相对我的而言,一个服务商所能提供的建站方案更加稳定和快捷。

固然也能够在如猪八戒网,或某些技术网站的众包平台发布建站需求,性质相似,此处不作诸如性价比和会不会被坑之类的评价。

优势:便捷,便宜,有钱你就能随心所欲。

缺点:有钱你才能随心所欲。

二、自建

主要花费在购买云服务器上和静态资源托管上,剩余工做一力承担。

选择自建站,通常来讲是有着后台的需求,好比能随时发表文章之类。也有如网站个性化,特殊化,有个程序员之类的其余状况。如下只大体讲解两种通用的建站方案,这里主要仍是面向技术人员,所以如拖拽式建站托管等方案不在此赘述。

Wordpress

易于操做、易于浏览、有各类插件、主题和解决方案。请自行搜索wordpress主题。

这也是各种云服务商提供的常见建站方案。

要使用wordpress自行建站,你须要了解如下内容:Linux、 Apache/Nginx、 Mysql/MariaDB、Perl/PHP/Python。

如下是大体的安装方案和注意事项(来自多年(大概两年)之前本身建站的笔记):

①、选购云服务器:Linux环境,Centos7.X 版本。可以使用xshell命令行工具运行命令,使用xftp上传文件。

②、安装Apache:yum install httpd -y
​ 启动和开机启动:systemctl start httpd.servicesystemctl enable httpd.service
​ 配置文件:/etc/httpd/conf/httpd.conf
​ 修改参数:AllowOverride All ——容许读写;Options FollowSymLinks --- 禁止目录浏览;ServerSignature Off --- 关闭显示版本号……(wordpress优化)

③、安装Mariadb:yum install mariadb mariadb-server -y
​ 启动和开机启动:systemctl start mariadb.servicesystemctl enable mariadb.service
​ 修改默认用户名和密码等:

mysql -u root -p
    use mysql
    update user set user='新用户' where user='旧用户';
    flush privileges; 
    exit
    mysqladmin -u 新用户 -p password 新密码

④、安装PHP:yum install php -y

⑤、安装对应组件等:yum install php-mysql php-gd libjpeg* php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-bcmath php-mhash -y

⑥、测试:/var/www/html 目录下,加入文件index.php,内容为 <?php phpinfo();?> ` ,若已通过域名解析,则打开网站后能查看到php版本信息等

⑦、上传或下载(wget 命令)wordpress.gz文件到云服务器中的 /var/www/html/ 目录,解压wordpress-x.x.x-zh_CN.tar.gz 至当前文件夹:tar zxvf wordpress-x.x.x-zh_CN.tar.gz

⑧、设置权限: chmod -R 777 /var/www/html/

⑨、打开网站,跟随引导一步步走就好了。

固然那是属于萌新的时候,如今不须要那么复杂的方案,有现成的lamplnmp一键安装包等。

如果在windows本地搭建wordrpess开发环境,也有xampp之类的安装包用于测试,如有php相关的技术,有耐心阅读文档,也可自定义主题(其实仍是挺麻烦的)。

wordpress难的地方在建站,并非使用。但有关如何优化,如减少页面体积,图片文件托管,插件使用等,就得本身找方案了。

优势:快速,功能全面,过期但经典。
缺点:总体臃肿,不如花钱外包,有技术你也无法随心所欲,得花大量时间优化。
典型的wordpress技术博客: http://www.zhangxinxu.com/

Ghost

基于Node.js的开源博客平台,适用于我的,快速、简单、时尚。支持markdown写做,支持各类模板主题。

你须要了解:Node.js、npm等。如果部署至服务器,你还须要了解:Linux、Mysql/MariaDB。

Ghost相似wordpress,但通常用于创建我的网站。中文版的Ghost安装下载请参照ghost中文网,但已通过时,不建议使用,有必定英文基础可以使用官方版本。
本地开发或部署均可选取多种方案,具体请参考官方文档,这里使用官方安装文件进行本地安装测试(win10环境)。

①、安装Node.js、注意各版本支持状况,这里建议6.9.x或对应版本

②、下载并解压Ghost包到自定义目录,npm安装:npm install --production

③、运行并查看运行状况:npm start

可能遇到的问题:

npm安装失败会有提示语句,如须要安装python并添加python路径到全局变量、默认安装sqlite3
npm运行时,若未初始化sqlite3数据库,可能失败,如图
npm start 失败
须要npm 全局安装 knex-migrator并初始化等。请根据报错信息安装对应包并初始化:

npm install -g knex-migrator
knex-migrator init

根据提示信息安装并初始化

虽然官方支持Node.js 8.8以上,但使用8.9.0 LTS的版本时一直提示找不到主题模板,退回Node.js 6.9.x 从新安装后才能正常运行。
clipboard.png

界面效果:

①、初始化安装界面
初始化界面.png

②、前台界面
前台界面.png

③、后台界面
后台界面.png

优势:快捷速轻便,简单时尚,支持各类主题模板等等。
缺点:当前生态相对而言并不强大。

二、免费方案

免费方案属于多数开发人员的选择,若对公司官网需求不高,也可以使用此类方法,但并不建议。

不少平台都会本身的免费服务和付费服务,对我的而言,不少时候,免费方案已经大大知足一个小型网站的建设需求了。如下列举一系列免费服务:

Github Pages可直接将你的Github库做为静态文件服务器托管。只要在GitHub上建立一个名为xxx.github.io的新存储库,其中xxx是你在GitHub上的用户名(或组织名称),就能够获得一个属于本身的二级域名,属于多数技术人员的选择。
静态资源托管平台:包括七牛云、又拍云等云存储平台的对象存储服务,免费的状况下,每个月可提供限额的流量,实名认证后能获得固定的二级域名。
BAAS云服务:包括野狗云、leancloud等,免费的状况下,每个月能够提供限定次数的后台接口调用次数。
其余各大云厂商的免费活动,是熟悉云服务,提高技术的好选择。
……

固然,以上方案,实质上都是将静态文件托管到服务器,最多加几个接口调用,问题是如何更加方便快捷地创建本身的网站,这里忽略手写HTML而后部署的方案。

Hexo

Hexo是将 Markdown 文件根据主题模板和各类插件生成静态页面的Node.js工具。

要使用hexo,你须要了解:Node.js、git、github、Markdown语法。

注意:
①、本地安装使用过程在Hexo官网首页,注意官网右上角可选择语言,因为官网给出的文档说明更加详细,这里不会复述如何安装部署等。

②、运行hexo server可能不会报错,但没法访问4000端口,可查看端口是否被占用:netstat -ano。如果,则改端口后从新运行。如hexo server -p 8080

如下为默认landscape主题首页,更多主题请自行选择:
hexo首页.png

③、因为没有后台,文章标题、标签、时间、ReadMore连接等须要在markdown文档中特定位置标识,也可使用相关命令生成文章。具体规则请查看官方写做文档或使用的插件文档。

④、包括如 jekyllOctopress 甚至 Webpack 等方案生成静态页面并上传到文件服务器,如果部署到静态资源托管平台,请注意作好CNAME域名解析、刷新DNS缓存、防止盗链之类的设置。

优势:免费,Geek
缺点:因为没有后台,没法线上修改,实际开发或使用体验差强人意

总结

以上仅属于玩票性质的建站,主要面对我的博客,并且仅对其表层的使用方法作了简单的介绍,并不困难,选择也不少。但对真实场景的业务,即便是玩票性质的我的博客,依然还有不少须要补充的技术和注意事项,若涉及其余业务场景,须要的东西又不同了。

所以待续……

相关文章
相关标签/搜索