克隆高手

gaoshou

不知道多少读者看过最近汤姆·克鲁斯的新作《遗落战境》,影片之宏大和剧情的逆转就不细说了,让我印象深刻的是外星势力通过克隆人类的精英分子来反制人类,掠夺资源的场景。阿汤哥在电影中扮演了一枚帅哥宇航员,要能力有能力,要Pose有姿势,力量与智慧的化身,沉着冷静,风采迷人,实属人类之精华,当然还有一个靓妹纸就不说了,这俩人在一次出航中被抓,外星人估计也是好色之徒,一看帅锅靓妹,直接克隆几千份,随用随克,一会派去东塔一会送到西塔,一会去修理几个机器人,一会去修理几个抵抗者,然后自己在摄像头后面笑的像你大爷!

各位看官看到这估计就明白了,这帮孙子就是慕容一脉复兴啊,这不就是以彼之道、还施彼身么,看来外星大爷也是一点不厚道。

但是大老板看到这估计就嗨皮了,我知道很多老板经常对公司里牛人说,「你看,你这么牛,但是你就一个人牛,这样不好,对吧?你就不能给我培养出xxx个你来,那样不就你好我好大家都好了么?」,这时候估计高手都会坚定的回复一句「你大爷!」

我记得当年京东促销导致服务器全面崩溃时,京东老刘放话「增加三倍服务器,活动再搞一次」,做技术的都知道,想做到性能容量随着服务器数量的增加线性扩展是多么困难的事,没有积累想通过复制绝无可能。机器如此,况高手乎?

所以高手除非能够克隆,每个靓汤都一样英明神武,有灵感有直觉,处理事务解决问题思路都一样一样的。
若非如此,高手不可培养,只能独自成长。

说到直觉,我觉得这是高手的一个特征。虽然自己不是高手,但有时候帮助别人解决问题时往往靠直觉行事,有时候还会觉得,这么简单的解决方法对方怎么想不到呢?这特么就是直觉吧。你有可能说不清楚为什么会想到这个方法,但是知道,那是正确的。我们家老太太有一天冬天患病手疼,我查了大量的医学资料,觉得有可能是腱鞘炎,随后带老太太去医院,那位医生让俺妈简单的做了几个动作,看了看手和臂,简单问了问,说,很可能是类风湿,最好做检查确认下。检查结果确诊为类风湿!这就是高手,他可以通过一些微妙的线索得出结果,而新手往往让你做一堆检查,最后得出一个错误结论!

直觉,这玩意能复制和培养么?

还有,很多公司往往希望通过设置规则和秩序来保证专家和高手有更大的产出,殊不知这样的做法正好适得其反。在技术公司,规则和秩序,更多适合那些不知进取或不思进取的新手和胜任者,人一旦在某个领域达到一定的高度,就有了自己的做法和直觉,方向没问题就行了,复杂的制度反而会抑制他们的创造性。另外,自信往往来自于无知而不是知识,一个人一旦成为高手,就会痛苦的意识到自己知道的是多么少,人生苦短学问太多,这样的人是不需要去鞭策的,给空间和鼓励就好。

扯了这么多,估计有读者要问,「你丫见过高手吗?」

我还算幸运,刚进入洪恩软件的时候身边有几个牛人,其中之一还是我的顶头上司,这哥们技术功能非常扎实,据说读汇编像读《读者》一样,公司要做网站,他就学了几天perl,然后带着我们把洪恩在线搭起来了,后来要做企业级软件,他又学了几天java,带着我们把产品做出来了,那是2001年左右……后来他去创业袅。另一个是独行侠,大老板专门为他配了办公室,里面一堆服务器和显示屏,他经常蜷缩在宽大的座位里抱着键盘编程,我们进去请教问题时看到屋里烟雾缭绕,丫叼着烟翘着二郎腿正在敲打键盘,后来这兄弟搭建了完美时空游戏的底层框架和引擎……。还有一位被大老板誉为国内少有的能够写操作系统级别代码的家伙,后来去了米帝音讯全无……

你们说,这些人能特么的复制和培养么?

高手不可培养,只能独自成长。如果你的团队里有这样的高手,好好珍惜他们并给予他们足够的空间,也许有一天会有数百倍的回报!

以上言论,有可能都是错的!


今天又发现了OS X的一个小技巧,比如你用预览程序打开了多个PDF或图片文件,你想知道其中一个文件的存放位置,可以用右键点击预览程序窗口标题栏上的文件名,会出现一个下拉菜单,菜单中会递归显示该文件的上级文件夹,直到根目录。点选可以打开相关的文件夹,大家可以尝试一下。

打开其他类型的文件也是一样的,比如keynote、pages等,你也可以在safari上试试,看看是什么效果。


文章内容来自微信公众账号:MacTalk · 微信号:sagacity-mac · 回复 m 可以查阅所有历史文章和Mac Tips · Web站点:macshuo.com

如果您希望持续看到MacTalk,可以点击{阅读原文}对作者进行小额赞助

趣谈个人建站

website-edit-2

这篇文章是分四次完成的。虽然是技术文章,但我尽量把这件事写的轻松一点,大家读起来也更有趣。最后形成了一篇完整的趣谈个人建站。

2000年前后是第一波互联网浪潮,无论是幸与不幸,我的早期职业生涯都是从这波浪潮开始的,那时候很多ASP(Application Service Provider)厂商会给个人用户免费提供一些静态建站功能,大家可以写一些HTML+CSS+JS的页面传上去,算是早期的个人的站点,我记得自己的第一个站点叫做「雪域苍穹」,貌似取自一首流行歌曲的名字。无论是名称还是页面,现在看来都土的能掉出翔来,但当时的感觉是,这特么的太酷了。

后面做过一些个人网站,由于各种原因都关掉了。再后来开始写博客,很多人开始建自己的博客站点。站点不少,一直保持更新的倒没几个。我的想法是,专业的事就让专业的厂商去做吧,所以一直也没建个人博客网站,断断续续的在博客园和图灵社区写一些东西,也算是保持更新了。

终于有一天,微信公众平台来了,一个偶然的机会注册了MacTalk(原Mac技巧),之后一口气写了一百三十多篇文章,文字总数超过了我前几年的博客总和,而且保持了一定的文字水准(自以为-_-#)。然后就有很多读者一直提醒我,MacTalk里的内容有一部分是技术性质的,有存留价值,如果能够进行查询检索,对Mac的新老用户都有帮助。我想了想也是,扯淡的东西估计没人愿意重复阅读的,技术类又很难记在当下,所以就准备开始着手建站,然后macshuo.com就建成了。下面我把整个过程写一下,供大家参考,另外,我只说自己的选择,不会去比对各种指标,比如Linode和国内VPS的优劣,Apache和Nginx的性能差异等等,如果你想了解这些东西,那就用Google百度一下。

搭建个人站点,大致需要做这么几件事情:

  • 一台具备公网IP的服务器
  • 安装操作系统,搭建环境
  • 购买域名,域名绑定IP
  • 部署应用程序

基本上这四套组合拳打完,你的个人网站就算建起来了,后续的事情就是添砖加瓦和蓬荜生辉了。

好把我们依次介绍:

服务器

大部分公司都会有自己的服务器和公网IP,要么托管要么自建机房。但对于个人用户来说,就没必要费时费力做这个事情了,购买一个VPS(Virtual Private Server)即可。什么是VPS,建议大家去维基百科上查一下,简单来说就是你会拥有一台虚拟主机,除了看不见机箱之外,你可以像操作一台实体服务器那样操作它,独立操作系统和硬盘空间、独立内存和CPU资源、独立的执行程序和系统配置等,可以自己安装操作系统和软件,独立重启等等。

在VPS的选择上,我用的是Linode。Linode是一家来自于米帝的专注于提供 Linux VPS 的服务提供商, 虚拟化技术采用了Xen,Linode的含义是Linux Node。注意,这里的操作系统是Linux,我推荐所有个人建站都采用Linux,不解释,如果你想采用Windows Server,后面的内容就不用看了。

Linode在国内外口碑都不错,价格适中,质量可靠,童叟无欺。Linode提供了各种Linux操作系统供选择,比如Ubuntu、Redhat、Debian、CentOS等等,装系统和重装系统都非常简单。

好,我们下面简单说一下步骤,访问https://manager.linode.com/session/signup
填写邮箱、用户名密码,就算注册成功了,Linode会给你发封邮件确认,打开那个确认链接,大家就会看到下面这张图的内容:

website1

Linode通过它的ticket system(一套支持系统)提供7 x 24 x 365的支持服务,看清楚,不是7 x 24 x 365的不停机服务,我现在特别烦一些企业客户,一谈就说永不宕机,特么除了上帝谁能保证永不宕机?时间长了自个都得宕!另外Linode还提供了4小时的免费试用服务,比较厚道,如果你试试觉得不爽还可以选择不玩。

选择继续,就可以选机房了,Linode目前提供了东京和欧美等地的机房选择,我选了东京机房,据说是针对亚太地区用户的需求新开辟的,速度很快。然后选操作系统,设置硬盘大小、root密码等,点击「Rebuild」,你就进入了VPS的控制台,等Host Job Queue的所有任务都是绿色的Success,就可以点击「Boot」,启动系统。然后找到Remote Access这个标签,点进去就可以找到这台服务器的访问IP,打开终端,输入ssh root@x.x.x.x,就可以登录系统了,看到了吧,very simple!

试用之后,如果你觉得可以,点击Account标签,完善自己的信息,选择服务器配置,支付信息,然后就可以完整支付流程了。

我选的是Linode 1024套餐(24 GB DISK, 2000 GB),按照年付费的话230刀左右,大家这两天赞助的碎银子,差不过够一年年费了:)支付方式包括Visa,MasterCard,American Express,只有要信用卡还是很方便的。

另外需要注意的一点是,拿到了IP之后,一定要在不翻##墙的情况下测试一下是否可以正常访问。我就遇到这个问题了,在国内没法访问,但是挂了VPN的就可以,我估计是哪个倒霉孩子以前用过,被墙之后不用了。

不得已我发起了一个Ticket(支持问题),说我在中国大陆不能访问这个IP,但通过VPN可以,那哥们响应倒是挺快,但显然不懂我朝行情,让我执行mtr –r x.x.x.x,mtr可以结合ping、nslookup、tracert诊断网络传输问题。我只得把数据返给他,结果人家还要其他数据,我就不耐烦了,用蹩脚的英文给丫解释了一下什么是伟大的墙,基本意思就是少特么废话,赶紧给我换个IP。那哥们看我气势挺盛,赶紧给我换了个IP,我一试没问题了,说了声三克油,他说威尔卡姆,这事算结了。两人共交手五个回合,用时2小时,效率还可以。

好,服务器部分就介绍到这里。以下是我的linode推荐码,如果大家要购买Linode服务,可以用这个链接。

http://www.linode.com/?r=6bd100da844d8d2c191680a4792610467ce9052


搭建环境

我选用的服务器是Ubuntu12.04,64位。以下内容均基于该环境描述。

拿到了主机IP,你就算拿到了新房的钥匙,但是离入住还远着呢,因为你那个主机现在就是个毛坯房,除了进去看看,什么都不能干。好,下面我们做一下简装修。

1、创建用户

第一次登录需要root用户,什么是root?root就是整个Linux操作系统最牛逼的主,他想干嘛就干嘛,他想删谁就删谁,他是光他是电他是唯一的神话,他就是我朝就是我D,所以非常危险,你们懂的。如果用root执行一下rm -rf,那整个锡安就会被抹掉,尼奥也拯救不了,如果root愿意,他可以抹掉你曾经存在过的所有痕迹。所以,我们不能没事就用root进去耍,为了解决这个问题,我们必须要建立一个agent,平时是普通用户,关键时刻充当root的角色。

具体操作如下:

首先用root登录系统

ssh root@x.x.x.x

创建一个新用户,用户名随你喜欢,比如叫做mactalk

adduser mactalk

按照提示信息输入密码和相关信息,就可以完成操作。完成之后系统就会自动建立/home/mactalk路径。

然后是授权,输入

visudo

在编辑器中找到如下内容:

root    ALL=(ALL:ALL) ALL

在下面加一行

mactalk    ALL=(ALL:ALL) ALL

通过ctrl+x保存退出即可。然后就可以退出root,用mactalk重新登录(ssh mactalk@x.x.x.x),登录进来默认目录在/home/mactalk下,当你想行使root权限时,请在命令之前增加sudo,按照系统提示输入密码即可执行操作。

2、选择shell

用户建好了,下面我们为用户选择一种shell,估计小白看到这个又毛了,啥是shell?

shell就是Linux的一个外壳,你理解成衣服也行。它负责外界与Linux内核的交互,接收用户或其他应用程序的命令,然后把这些命令转化成内核能理解的语言,传给内核,内核是真正干活的,干完之后再把结果返回用户或应用程序。比如你对shell说,「你好」,shell就跑到内核那说,「老大,有人问候你呢」,内核就不耐烦的说,「有事说事,我特么忙着呢」,shell就把这条信息反馈给你,大致就是这样。以前讲Mac技巧的时候,经常跟大家说在终端里输入一些命令,那就是Mac的shell,都是一脉相承的。

Linux提供了很多种Shell,你要问我为什么要有这么多,我只能告诉你,你为毛同类型的衣服有那么多件?花色,质地还不一样。写程序比买衣服复杂多了,而且程序员是不惮于把事情搞复杂的,牛程序员看到不爽的shell,就会自己重新写一套,慢慢形成了一些标准,常用的shell有这么几种,sh、bash、csh、zsh等,想知道你的系统有几种shell,可以通过以下命令查看:

cat /etc/shells

这些shell我就不解释了,维基百科和百度百科都写的很清楚,总之,坊间流传,普通程序员用bash,文艺程序员用zsh,XX程序员直接用原生的sh,我建议大家文艺一点,用zsh好一些,功能也最强大。目前各个版本的Linux默认的shell都是bash,如果你想用zsh,需要安装一下,如下:

sudo apt-get install zsh

具体的配置我就不介绍了,感兴趣的读者,可以参考

http://leeiio.me/bash-to-zsh-for-mac/

3、通用工具

介绍几个简单的工具,建站必备。

  • wget,命令行下载工具,安装sudo apt-get install wget,使用方式后面会介绍。

  • tmux,一个优秀的终端复用软件,类似GNU Screen,但来自于OpenBSD,采用BSD授权。使用它最直观的好处就是,通过一个终端登录远程主机并运行tmux后,在其中可以开启多个控制台而无需再「浪费」多余的终端来连接这台远程主机。好吧,这句话有点绕,简单说就是用tmux打开的会话可以一直驻留在服务器上,下次去看时还是上次来的样子。就像你是某个酒店的VIP客户,住完之后不会人走茶凉,也不会断电,下次去时茶还热着,灯也亮着,就这样。

    安装方式sudo apt-get install tmux,对使用方式感兴趣的读者去查一下吧,中文介绍很多,记住,热键是ctrl+b。

  • vim,在Linux上少不了编辑文件,我推荐Vim和Emacs,一个是编辑器之神,一个是神的编辑器(或者是伪装成操作系统的编辑器),我是Vim党,目前在学习Emacs。我之前写过一个Vim系列,有兴趣的可以去看:

    http://www.cnblogs.com/chijianqiang/tag/vim/

    从原理到配置、使用都有非常详细的介绍,那也是个大坑,还没写完,但写了MacTalk就变成顾此坑失彼坑了。

差不多就这几个,其他的工具随用随装吧。


域名和DNS

服务器和环境构建都写完了,今天介绍一下域名和DNS的那点事儿,稍微复杂一点的软件部分放在最后说。

域名是什么东西呢?就是一个网站的标识和入口,由「.」分隔开的字符串构成,洋名叫Domain Name,比如苹果公司网站的域名就是apple.com,在浏览器地址栏输入这个域名,就可以访问苹果的网站了。为什么要有域名呢,有了公网IP,不就可以访问网站了么?

咳,这么说吧,如果有人说找个地方聚聚,你说,咱们经度116.46、纬度39.92,不见不散!地方倒是对,但是估计实名菜刀和无名臭鞋就飞过来了。IP地址就是你的服务器在互联网世界的经纬度,域名就是对应IP的门牌号码,就像人们能记住门牌号记不住经纬度一样,在网络世界里,大家都是记域名的。与现实世界不同的是,门牌号和实际地址正常情况都是一对一的,而域名和IP地址是多对一的,也就是说,只要你有一个公网IP,就可以申请多个域名,对应多个应用,非常方便。

现在你知道了吧,要建站,必须要有域名。能够提供域名的厂商很多,国内外都有。不过我强烈推荐大家购买国外厂商的域名,免去提交材料和备案之苦,国外动动鼠标和小手分分钟搞定的事情,国内要提交各种材料、备案、定期监管balabala……具体差异大家看看www.apple.com.cn和www.apple.com两个网站的底部知道了,苹果中国的底部有「京公安网安备 11010500896|京ICP备10214630」,再看看米帝的网站,毛都没有,都是自己的网站信息,我们只能说,米帝的监管制度太不健全了,真为他们捉鸡!

国外的域名厂商推荐www.godaddy.com和www.name.com,都不错。我使用的是Godaddy。

Godaddy是全球最大的域名注册服务商,全球市场占有率超过30%,一般情况下不会被我朝屏蔽。如果屏蔽了Godaddy,会导致在大陆无法访问全球近三分之一的网站,所以相对安全,相对,你懂的。另外Godaddy开始支持支付宝了,对我朝臣民来说付费变得方便无比。

在域名选择上,最好满足这几点要求:有意义、好记、简短,另外尽可能使用com(通用顶级域名)。申请步骤也很简单,访问www.godaddy.com,在搜索框输入你想要购买的域名,点击搜索,你会看到这个域名的具体信息,是否被使用,相关域名,价格等信息,域名后缀一般有com、net、me、us、info等,建议选com,不建议选info,据说info结尾的网站大部分是垃圾网站,会被搜索引擎屏蔽。

选好域名后,点Add,加入购物车,如果不需要其他服务,一路Continue即可,最后设置支付信息,支付宝在最后一列,然后「Place Your Order」,根据提示注册和支付即可。价格与域名信息相关,一般几美元到10几美元不等。

购买完成之后,进入Godaddy的域名管理控制台,找到你购买的域名,把域名和你的IP地址绑定起来,就可以通过域名访问你的网站了。这里就涉及到DNS了。

DNS的洋名一般说成Domain Name System,就是给域名提供服务的。光有域名没用,还得有相关的服务能够把域名解析成IP地址才行,DNS就干这事。DNS的扩展性非常好,不依靠单一的巨型主机索引,而是通过分布式系统提供服务,全球能够提供DNS服务的服务器多如牛毛数不胜数,但大哥级别的根服务只有13台,目前的分布是:主根服务器美国1个,设置在弗吉尼亚州的杜勒斯;辅根服务器美国9个,瑞典、荷兰、日本各1个,旗下是各个级别的域名服务器。

DNS的工作方式挺复杂,有兴趣的直接去Google吧,我简单描述一下,大致的场景是这样的,比如小明是个DNS服务器,有一天你想访问macshuo.com,就问,「小明啊,我想去听听MacTalk,怎么走呢?」,作为忠诚的DNS战士,小明的服务态度是值得赞赏的,如果他知道的话,就会立刻告诉你地址,比如从这个街区左转左转左转再左转balabala……如果丫不知道也没关系,他会反馈给上级主管,说「最近有人新建了个MacTalk网站,我这还没记录地址,你晓得不?」,上级部门如果知道就会把地址发给小明,说「你丫长点记性,把这地址记下来行不?别特么老问了,最近自媒体网站可真多啊,哎……」,这样小明就会把地址告诉你,并且用心的把这个地址记到自己的小本本上,下次有人再问,就直接告诉人家答案了。如果上级部门也不知道,那就继续问,直到反馈到根服务器为止,反正只要你注册了,总能找到。差不多就这样吧。

Godaddy默认提供了DNS服务,点击DNS Manager,在弹出的设置面板中设置你的网站IP即可,具体的图文教程网络上很多,我就不费那事了。但是我的使用结果是,Godaddy提供的DNS在国内访问不太稳定,时不时就不能访问了,具体为啥我也不清楚。因为购买了Linode服务,我最后采用了Linode的DNS,具体的做法是:

  1. 登录linode.com,点击DNS Manager标签,进入管理控制台
  2. 选择Add a domain zone
  3. 填写域名、邮件地址和IP
  4. 点击Add a Master Zone,就算完成了

最后一步就是在Godaddy的控制台里设置一下Linode的DNS服务器,很简单就不描述了。


应用程序和部署

经过前面三篇系列文章的介绍之后,我们现在房子也有了,做了简装修,还申请了地址和门牌号,最后一步就是入住,也就是部署你的应用程序。

针对网站提供的服务不同,需要不同的技术选型,我的需求就是做个风格简约的博客,用来存放MacTalk的文章,同时有个地方能够随意发表一些个人观点,就这么简单,所以针对这个需求进行选择即可。大家将来建站的时候也是一样,明确自己的需求,不要为未来买单,尽量搞的轻量级一些,最忌讳给的是龙套的钱,您自个却按照男猪脚进行角色扮演,不提倡。

搭建轻量级的博客不建议使用.Net或JavaEE的技术,这些技术都比较重,必要性不大。Php、Python、Ruby相关的框架都是可选的技术。因为我对Python相对熟悉一些,最初想找个开源的Python Blog框架,不过后来综合对比了一下,发现在个人博客领域,WordPress基本上无出其右,技术成熟、安装方便、性能稳定、插件众多,实在是居家建站、个人扯淡之必备良药,就是它了。

在确定了基本需求和工具之后,我们看看涉及到哪些技术:

1、Nginx Nginx是一款高性能的HTTP服务器软件,由俄罗斯的一位大牛Igor Sysoev开发的,源代码以类BSD许可证的形式发布。Nginx的设计非常轻量级,由内核和模块组成,内核微小简洁,模块功能强大,静态编译。Nginx做的事情简单来说就是,接收客户端(浏览器)的HTTP请求,然后通过映射机制把不同类型的请求交给不同的模块去处理,比如html、图片、css等可以交给静态资源模块处理,还可以做压缩、缓存等,php、python等类型的请求则交给FastCGI模块去处理,完成业务逻辑。

什么是FastCGI呢?这玩意就等于是HTTP服务器和动态脚本语言通信的接口,就像一个粘合剂一样把HTTP请求和动态脚本处理整合在一起,顾名思义,处理速度非常Fast!

Nginx可以说是HTTP服务器软件市场的新贵,目前国内很多大型网站都采用了Nginx作为默认的web服务器,比如阿里、腾讯、新浪等等,国外就更多了。当然,在Nginx未涉足江湖之前,这个领域的大哥叫做Apache,那时候几乎所有的HTTP Server都是清一色的Apache,一时之间风头无两。但是这哥们大哥做久了就不思进取,跟国内很多大佬一个德性,没竞争对手时就特么不知道改进,直到Nginx出来抢了丫半壁江山,现在知道努力了,当初干嘛去了?

那么Nginx比Apache优秀在哪呢?

  • Nginx的所有模块都是全静态编译的,启动Nginx后,Nginx的模块被自动加载,静态库执行效率更高。

  • Nginx支持epoll(Linux系列)和kqueue(BSD系列)I/O事件通知机制。完,又特么出现两个名词!这让人情何以堪、文何以完啊?简单说说epoll吧。epoll是Linux2.6正式引入的提高网络I/O的处理方法,它的几个优点是:单一进程打开的FD(文件描述符)数量仅受限于操作系统,1GB内存的机器上大约是10万左右,这一点大大提升了处理海量请求的能力;采用共享内存的模式避免内存拷贝;随着打开FD的数量增加,I/O效率不会线性下降。总之,大家知道epoll很牛逼就是了。

  • Nginx支持多进程的工作方式,Nginx启动后会有一个master进程,多个worker进程。worker进程一般对应服务器的CPU数量,你有个8核的CPU,最好把worker设置为8。master负责接收外界信号,并向worker发送信号,监控worker的运行状况,当worker挂掉的时候,启动新的worker。写到这我发现,这特么活脱脱就是一个地主老财打压长工的模式啊!
    尤其是Nginx的不中断重启机制,当系统配置变化需要重新启动Nginx时,我们就给地主(master)发个消息,说这批长工(worker)太老了,都得换掉,你看着办。地主收到消息后就开始偷偷雇佣新的长工(worker),然后假惺惺的告诉老长工,把手头的活干完就行了,别太累了,啊。这时候如果有新的请求,就会交给新长工干,等所有的老长工把活都干完了,就直接fire,绝不留情。这样,整个服务无中断重启过程就完成了,就特么一个字,黑!
    当然长工(worker)也不是省油的等,他们干活的过程非常复杂,会用到我们上文中提到的epoll机制,如果有人感兴趣,以后再讲吧,这么写下去这个系列就没完了。

Nginx功能非常强大,一本书也写不完,我简单就说这么几句。老话,有兴趣的,用Google百度一下!

大概了解了Nginx的工作机制,下面安装就比较简单了,Nginx可以编译安装,也可以在线安装,对于普通用户来说,使用apt-get在线安装即可,省得自己去找依赖关系。

#安装
sudo apt-get install nginx
#启动
sudo service nginx start

如果安装和启动都没有问题,我们再调整几个参数就可以了。

找到/etc/nginx/nginx.conf,做以下几个改动:

  • 把worker_processes设置为服务器的CPU核数
  • 在event里增加use epoll
  • 把worker_connections的值设置大一点,如果是1G内存,不要大于100000/worker_processes。

其他的采用默认值即可,然后重新加载参数:

sudo nginx -s reload

好,Nginx就算妥了,后续在安装PHP和WordPress时还要做一些配置。

我有时候觉得,当我们在计算机领域遇到问题的时候,总会出现一些技术神山上的神人,他们时不时会俯视一下凡人的IT世界,高兴了就顺手解决几个bug,发明几个新玩意,epoll和Nginx就是这些玩意,我们用好就已经心满意足袅。

2、MySQL

MySQL是应用最为广泛的开源数据库,这个没什么可说的,非常成熟的技术,直接安装即可:

sudo apt-get install mysql-server

安装过程中,MySQL会提示你设置root密码(root的作用参考之前介绍的,把操作系统换成数据库即可)。如果安装时没设置密码,等MySQL起来后用mysqladmin改也行,用sql改也行,简单不啰嗦。

3、PHP

WordPresss是基于PHP开发的,所以我们得为WordPress准备好环境,安装PHP。

sudo apt-get install php5
sudo apt-get install php5-fpm

php5-fpm是PHP FastCGI的实现之一,能够更好的管理PHP进程,控制内存使用,平滑重载等,现在我们都用它!

下面做一点简单配置,打开php.ini文件:

sudo vim /etc/php5/fpm/php.ini

找到cgi.fix_pathinfo=1这一行,把1改为0。 值为1时,php的解释器会尽可能的去解析客户端请求的文件各种类型,这会引发一些安全漏洞,设置为0时,解释器只会去解析特定的文件类型,设置为0是一种相对安全的处理策略。

修改www.conf:

sudo vim /etc/php5/fpm/pool.d/www.conf

listen = 127.0.0.1:9000 修改为 listen = /var/run/php5-fpm.sock,前者是走TCP socket,后者是Unix domain socket,如果服务都在同一台机器上,建议使用后者,效率更好一些。

重新启动PHP,这部分的配置就算完成了:

sudo service php5-fpm restart

4、WordPress

好的,我们从后场断球后左冲右突,盘过对方和我方的所有进攻和防守队员,来到球门前面,发现就差最后一关:WordPress。下面我们看看如何安装和配置WordPress。

首先下载WordPress的最新版本,我用了中文版,下载和解压缩:

wget http://cn.wordpress.org/wordpress-3.5.1-zh_CN.tar.gz
tar -xzvf wordpress-3.5.1-zh_CN.tar.gz 

在MySQL中为WordPress创建用户和数据库,这部分很简单就不描述了。我们设定数据库为wordpress,用户名为mactalk,并且把数据库编码改为UTF-8。

在解压好的wordpress文件夹下,执行:

cp wp-config-sample.php wp-config.php
vim ~/wordpress/wp-config.php

按照文件内容注释填写数据库名称、用户名、密码、数据库编码使用UTF-8,然后保存退出。

为wordpress创建www文件夹,并且把完整的wordpress目录复制到www文件夹下,并设置相关权限:

sudo mkdir -p /var/www

sudo cp -r ~/wordpress/* /var/www

cd /var/www/

sudo chown www-data:www-data * -R 

sudo usermod -a -G www-data username

安装php的MySQL驱动

sudo apt-get install php5-mysql

设置虚拟主机:

在/etc/nginx/sites-available下创建文件wordpress

sudo vim wordpress

内容如下:

server {
    listen   80;

    root /var/www;
    index index.php index.html index.htm;

    #根据 IP 或域名自定义
    server_name 3.3.3.3;

    location / {
        try_files $uri $uri/ /index.php?q=$uri&$args;
    }

    error_page 404 /404.html;

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
          root /usr/share/nginx/www;
    }

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9$
    location ~ \.php$ {
        #fastcgi_pass 127.0.0.1:9000;
        # With php5-fpm:
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
    }

}

这个文件的作用就是把Nginx和WordPress粘合在一起,接收客户端的请求并反馈响应结果。有几点要注意的是,root设置为/var/www/,index部分增加index.php,fastcgi_pass对应之前设置的unix socket:unix:/var/run/php5-fpm.sock。

为wordpress文件建立软连接:

sudo ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/wordpress

最后重新启动nginx和php5-fpm,就算大功告成了:

sudo service nginx restartsudo 
service php5-fpm restart

如果一切正常的话,访问你的域名或者公网IP,就可以看到wordpress的提示页面,根据信息提示初始化数据库,创建管理员,基本框架就算建好了,之后就是完善和优化,比如性能优化、主题选择、配置信息、插件选择、扩展开发等等,大家慢慢体会吧。

这个系列就算完结了,我发现写这种文章想做到好玩好看、还能言之有物把事说清楚,挺难也挺累,好在结了。


第一个十年我才华横溢,「贼光闪现」,令周边黯然失色;第二个十年,我终于「宝光现形」,不再去抢风头,反而与身边的美丽相得益彰;进入第三个十年,繁华落尽见真醇,我进入了「醇光初现」的阶段,真正体味到了境界之美。——台湾作家林清玄


文章内容来自微信公众账号:MacTalk
· 微信号:sagacity-mac
· 回复 m 可以查阅所有历史文章和Mac Tips
· Web站点:macshuo.com

如果希望持续看到MacTalk,点击{阅读原文}对作者进行小额赞助

Mac评——交流、阅读和音乐类App在iOS7的体验

appsonios7

今天是端午节,祝大家节日快乐,多吃粽子多长肉,俗话说每逢佳节长三斤么!

本来今天想休息一天,后来想到前天MacTalk节日无休的承诺,还是随便说两句吧。今天简单说说几个常用的iOS App在iOS 7上的体验。

iBook:与iOS 6上的体验并无二致,非常稳定,但是由于iBook不是iOS的原生应用,目前依旧充满了拟物风情,或者叫愤青更合适一些。那张木纹大脸充满了上一代iOS的愤怒和悲情,还有那张大书架,哎,风萧萧兮易水寒,多看一眼是一眼。


Kindle:体验了大厂风范,在iOS7上表现优秀,图标和控制台风格既不拟物,也不扁平,保持了Amazon的风格,所以说,不跟风的后果,最终结果要么死掉,要么形成自己的风格。Amazon是个低调的巨人,虽然实际上一直在与苹果分庭抗礼,但常常隐藏在茫茫海洋中,仅露出冰山一角,似乎不那么时尚,但一直在高速成长。


微信:微信4.5在iOS7上变现不尽如人意,UI方面没什么可说的,主要是功能问题,还不少:

1、有一些长文本消息会丢信息,无论是点对点还是还是公众平台群发都存在这个问题。 2、朋友圈没法选中图片,也就是说如果你升级了iOS7,就只能通过照相方式在朋友圈分享图文消息。 3、朋友圈分享文字消息时,文字输入框错位。 4、微信的API似乎也有些问题,比如我想通过虾米分享音乐到朋友圈而不可得。

就写这么多吧,微信4.5在iOS7上勉强达到可用程度,让我们期待5.0早日到来。


多看:多看阅读目前在iOS7上基本没法用,控制中心和书城都是html和javascript,估计用了不少web技术,出现了兼容问题,不过多看阅读的开发经理立刻给我反馈「下个版本就会修正,已经在等待审核了」,这效率,估计其他阅读类厂商要狠狠感受一下。


豆瓣:我常用的豆瓣App是豆瓣阅读和豆瓣FM,这两个App的UI设计已经非常贴合iOS7了,所以没有任何突兀的感觉,尤其是新版的豆瓣FM3.0,基本上形成了豆瓣风格的小清新和扁平化设计,绿、蓝是基本色系,配合深浅不同的红色点缀,让人一看就是豆瓣的作品,操作简洁,风格典雅,如果能够增加分享到微信的功能就更好了。

经过读者提醒,发现豆瓣有分享到微信朋友圈的功能,但是比较隐蔽,需要单击专辑图片,出现歌词界面,右上角才会出现分享图标,有点过于难找了。

新版的豆瓣阅读(iPhone版)抛弃了原来的排版引擎,启动了全新的引擎和UI设计,可以直达商店购买书籍,整体操作也更为流畅,但是目前的新版没有书签功能,多手势基本上没发挥作用,我觉得完全可以通过多手势实现目录导航、商城和阅读切换等。希望这个版本尽快登录iPad。目前的多看阅读在iOS7上偶尔闪退。


字节社:起步很早的阅读App,最早叫做唐茶,我在字节社也买了一些书,阅读体验还不错,不过目前在iOS7上基本上没法用,书籍同步倒是没问题,但一打开就闪退,估计下个版本应该会解决这个问题。


云中书城:不知道什么时候在App Store下架了,似乎很久没更新,在iOS7上可用,偶尔闪退,也许是iOS7的问题?最近盛大起点出走的问题,给云中书城带来了很多不确定性,大家还是把书先看完再说吧。


在线音乐类:虾米和Jing。除了豆瓣FM,我常用的两个在线音乐App还有虾米和Jing,目前在iOS7上表现都不错,Jing的设计把拟物和扁平进行了完美的结合,因为它的封面是一个扁平的唱片(太帅了),有质感又非常扁(哈哈),根据你的情绪选择音乐。虾米的设计中规中矩,既不拟物也不扁平,走的是讨巧的路线,但是歌多质量好,结合在线网站,用户也不少。尤其是离线和分享,挺好。但问题就出在分享上,目前分享与iOS7不太兼容,不过估计改起来不困难,等下个版本吧。

不写了,没想到这玩意也写了这么多,最近已经堕落到写字比写代码快了,我要检讨一下。

我的iOS App不少,但主要的用途是交流、阅读和听音乐,所以就说这几个吧,期待它们的新版本。

祝大家晚安。


文章内容来自微信公众账号:MacTalk · 微信号:sagacity-mac · 回复 m 可以查阅所有历史文章和Mac Tips · Web站点:macshuo.com

如果文章对你有价值,点击{阅读原文}对作者进行小额赞助

不要,在乎,这些,细节——闲谈WWDC

ios7

昨天凌晨WWDC正式开幕,白天一天都是苹果的消息,北京下午还非常罕见的下了鸡蛋大的冰雹,然后我发现了一篇神文,在这样一个欢乐的日子里,咱就别苦逼的写建站文章了,随便扯几句,大家就洗洗睡吧。

今年的WWDC貌似是第一次视频直播,以前都是各大媒体和频道通过图文直播,为了这个第一次,我老人家决定像个神经病一样熬夜看直播,基本上给的是世界杯决赛的待遇。于是我等家里大小领导都沉沉睡去之后,在月黑风高的夜晚,准备好干粮和茶点,打开了苹果官网和新浪微博(微信是不能指望的,那个点连个犬吠都没有),结果发现了少许70后,大批80后,一些90后已经等在那里,开始叽歪「怎么1点了还没开始?」「不是说WWDC的App可以看直播么?骗纸」「我特么是来看iOS 7的,怎么先说OS X」,我很开心,随即加入了战团,一直happy到3点多,才满意的睡去了,我特么还很年轻哇!

今天则是铺天盖地的报道,关于OS X、Mac系列、iOS7等等,具体信息我就不重复了,好这口的估计也都读好几遍了,我说几点自己的感受吧,核心是「不要,在乎,这些,细节」。

1、OS X系列不再以大猫为名称命名,一代大猫传奇终结,让我非常伤心,俺是从豹-雪豹-狮-山狮一路用上来的,现在特么起了个Mavericks,至今不知道具体啥意思,有人说叫小牛,有的说是地名,以后会以地名命名了,你特么能想像用地名命名操作系统么?总之,我的大猫没了,伤感。

2、苹果的技术能力相当强悍,虽然大家开完转身就把开发者网站搞死了,但视频直播一直非常流畅,算是为这次直播做了精心准备的。

3、OS X的亮点是镜像全屏、iBook、Finder的tab、Tags、iCloud钥匙串(1Password)、地图,当然还包括后端技术的改进,大家届时体会一下。

4、关于iOS 7,大家看一下今天的配图,那是我升级后的截屏,大家感受一下。我个人接受新事物能力比较强,觉得还不错,很多人认为这是亮点,或者是槽点,我觉得「不要,在乎,这些,细节」,反正你们迟早会喜欢上它的:)

5、iOS 7这次基本上是颠覆了原来的整套UI,我非常钦佩苹果的勇气,大家想想,之前的UI已经用了很多年了,如果不是苹果公司这个大牌子撑着,估计早被骂出翔来了。虽然目前大部分人非常怀念和喜欢,但还能持续多久,再美好的东西都会疲劳(娶了女神的感受下),与其让用户抛弃,不如自己抛弃,不破不立,现在这套UI虽然毁誉参半,但相信会不断进步,一家有勇气的公司值得钦佩。

6、我说,「大家都平坦的时候,Apple拟物了,现在都拟物了,Apple又扁平了。锤子怎么办?」有人说,「锤子可能要锤子了。」

7、我说,「这二年苹果干的事就是缩小了iPad,拉长了iPhone,最后砸扁了iCon」有人说,「据说这次iOS7扁平化是为了iPhone6做准备的,iPhone6厚度将只有1毫米,如果iOS不扁平化,手机里的图标就装不下了」

8、再看一眼iOS6吧,让我们满怀惆怅的截屏保存原有的记忆,把那些充满了拟物情节和细节的精美图标留给历史,也许十年后会拟物风尚再起,那时让我们再对比这些十年前的设计,看孰优孰劣!

9、不建议非开发者升级iOS 7,目前这套操作系统还不够稳定,而且很多程序不兼容。大家还是好好用iOS 6,等待秋天降临。

最后,给大家推荐一篇神文,文章描述的是一部神奇的电影「富春山居图」,我给这篇文章的起了个名字就叫做「不要,在乎,这些,细节」,大家欢乐一下吧。

点击{不要,在乎,这些,细节}查看。

文章内容来自微信公众账号:MacTalk
· 微信号:sagacity-mac
· 回复 m 可以查阅所有历史文章和Mac Tips
· Web站点:macshuo.com

如果文章对你有价值,点击{Donate}对作者进行小额赞助

法律与娃

guardian

感谢所有赞助和持续订阅的读者,贴一个读者的反馈:

自从在图灵上看到你写的mac技巧文章,非常喜欢。后来订阅了微信公共平台,就一直用微信看,现在又有网站了,读起来也更方便了。看到你加了无负担小额捐助链接,我个人觉得非常好,好文就该捐助,一直只在国外网站上看到类似的donate链接,国内比较少见,我想从根本上来说还是思维习惯上的原因,我们不那么重视别人的知识产权。加这个链接也算是一个很好的开始,希望以后国内的这种意识能慢慢培养起来。

说的挺好,我希望在中国,持续创造有价值内容的作者也能得到应有的donation。关于赞助,大家记住「无负担」和「小额」这俩关键词,别看高兴了一哆嗦把10敲成100,不提倡!

另,想问一下我的读者里有没有UI设计师?能否帮MacTalk设计一个Logo,有朋友反映macshuo.com的顶部太空旷袅。有热心人可以联系我,联系邮箱:chijianqiang@outlook.com。

再另,有读者反馈想看建站相关的技术内容,这样的文章技术性较强,枯燥,写起来也没有扯淡那么愉快,也不知道有多少人喜欢看。So,想看的就说一声,反馈人多再动笔。


每周周末看几集美剧算我的娱乐活动之一,前一阵子追的几个美剧都结束了,比如生活大爆炸、福尔摩斯演绎法、斯巴达克斯、超感警探等,有的是当季结束,有的彻底完结,不知道大家在追什么美剧?

一个习惯养成之后突然中止是很痛苦的,所以这两天有事没事就网上扒拉扒拉,找个新美剧来填坑,结果发现了一部超感警探男猪脚西蒙·贝克在2001年主演『法外情真』,挺有意思。西蒙·贝克是我很喜欢的美剧演员,来自澳洲,表演风格独具魅力,风格迷人,有粉丝称「春风再美也比不过西蒙·贝克的笑容和蓝色眼睛」,戏谑、傲气、慵懒、温柔、阳光、忧伤,这些词汇都可以用在超感警探里的那个派翠克·简身上。超感警探的英文名称叫做The Mentalist,所以江湖人称西蒙·贝克为馒头叔,就取自这个谐音。

既然馒头叔在2001年就演美剧了,那一定要看下。结果发现这部2001年首播的美剧还是挺有意思的,首先馒头叔十多年前是个馒头兄弟,非常年轻非常「海瑟姆」,让人感慨时间就是杀猪刀。其次馒头叔在『法外情真』里扮演的是个天才律师,在他老爹创办的律师事务所任职,基本上属于高帅富之流(又一个励志拼爹案例,兄弟们,为了下一代,我们要努力成为好爹!),但是天有不测风云,由于有一次馒头叔搞party嗑药被抓了(米帝似乎是个人就嗑过药,怕怕),结果被判做社区服务,为一家儿童法律援助站担任问题儿童的辩护律师,同时还得负责律师事务所的案子,剧情就在高帅富和贫苦穷之间兜兜转转……

我看了几集有这么几点感触:

  1. 米帝的法律涉及方方面面,繁文缛节,细致到令人发指的程度,想了解米国的那些法,建议听一下《晓说》的第九期。
  2. 在米帝犯事了,有些可以选择通过提供社区服务服刑,就像『法外情真』的男主,他必须要免费为儿童提供法律服务,直到刑满为止。这多好,不用羁押不用住宿不用管饭,还能为社会创造财富。
  3. 孩子是属于国家的,而不是父母的。你生了娃,就要承担抚养的责任,换句话说你有孩子的监护权,一旦你不具备监护权资格了,孩子就会被毫不留情从你身边带走。各位看官如果有一天去了米帝生了娃,一定要对娃好一点。你要是下雨天打孩子被邻居发现了,你就完蛋了,没准孩子屁股还没红,警官就到了,那时候抱大腿也没用,哭闹上吊也没用,警察叔叔会坚定的把孩子带走交给有关组织,你必须在限期内证明木有虐待儿童,有各种资质各种资格,才能把娃要回来,否则就会被法官判定收容领养balabala……
  4. 想让孩子成为一个诚实的人,先做到自己不撒谎。教育孩子唯一理性的方式就是自己做个榜样!如果您是个正直的人,你的下一代也差不到哪去。如果您欺上瞒下鬼话连篇,那孩子也会学的惟妙惟肖。
  5. 不要过早的强调孩子之间的竞争,功利化的代价是让我们的孩子失去和谐的精神和赖以生存的文化。

总之,这是一个关于法律、教育、娃和馒头叔的故事,如果你是馒头叔的粉儿,可以去看看,如果想了解米帝的法律与娃,也可以看看。

文章内容来自微信公众账号:MacTalk
· 微信号:sagacity-mac
· 回复 m 可以查阅所有历史文章和Mac Tips
· Web站点:macshuo.com

如果文章对你有价值,点击{Donate}对作者进行小额赞助

MacTalk网站上线

今天MacTalk的Web站点正式上线,网址:https://macshuo.com ,大家久候。

原本想申请mactalk.com域名,查了一下发现这个域名已经被占用了,为了保证能够使用dotcom,短网址,好记,最后采用了现在的域名:macshuo.com,还是Mac君随便说说的意思哈。

目前发现联通默认的dns解析mactalk.com时好时坏,如果访问有问题,可以在网络设置中增加8.8.8.8的DNS Server.

整体网站采用了简洁的风格,顶部菜单有三个:首页、全部文章、关于我,都是顾名思义。左侧有全文检索、近期10篇文章、标签云等功能;支持移动设备的自适应,保证在手机上访问macshuo.com毫无压力(注意流量)。愿意通过Web方式留言的,可以去macshuo评论和交流,我同样会定期回复。目前网站内容完成了90%左右,后续会增加更多功能和细节完善,大家先去感受下罢。

另外,MacTalk从今天开始接收无负担小额赞助,支付宝账户是:jackychi@gmail.com。如果大家觉得MacTalk自有价值,并希望持续获得高质量内容,可以访问macshuo.com首页点击{无负担小额赞助}对作者进行小额赞助,也可以直接点击文章底部的{阅读原文}对作者进行小额赞助。

之前写付费还是免费的文章的时候,很多读者给我建议说,可以通过捐助的方式实现文章自愿付费。关于这种方式,我其实很早就给自己设定了两个要求,第一个是文章过百,第二个是建立Web站点,尤其是第二个,除了时间还需要费用投入。当着两个要求满足了,就可以接受赞助了。

So,就是今天!


本来今天想和大家谈一谈苹果公司的另一位联合创始人,史蒂夫·沃兹的有趣故事,但有事写不了了,做为明天的预告吧。

最近想到了一系列有趣的话题,后续给大家写出来看看。

这是一个忙碌的周末,很累,大家晚安吧……