教你如何建立自己的网站

2013/06/20 25111

website-edit-2

@池建强 写了一部分,发现内容太多了,最后是分几次完成的。虽然是技术文章,但我会尽量把这件事搞的轻松一点,大家读起来也更有趣。最后会在macshuo.com上形成一篇完整的文章。

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!

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

我选的是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小时,效率还可以。


搭建环境

我选用的服务器是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 Mater 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创建用户和数据库,这部分很简单就不描述了,后续会在macshuo.com网站上补充。我们设定数据库为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

具体的文件内容就不贴了,后续会整合到machuo.com网站上,这个文件的作用就是把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的提示页面,根据信息提示初始化数据库,创建管理员,基本框架就算建好了,之后就是完善和优化,比如性能优化、主题选择、配置信息、插件选择、扩展开发等等,大家慢慢体会吧。

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

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


推荐两个公众账号:
左林右狸,由雷锋网创始人林军、笨狸维护,负责互联网业界八卦和无厘头,偶尔卖萌偶尔深沉,我最喜欢的一篇文章是「那年夏天」。
微信ID:Left-Right-007
公众帐号:厉哥说,上次说的「戏里戏外」又一次半血复活,凤凰涅磐,这两天正挑车呢,大伙去看看吧。
微信ID:roytalk

原文地址:http://macshuo.com/?p=547
作者:@池建强

非特殊说明,本文版权归原作者所有,转载请注明出处
本文地址:http://www.uisdc.com/create-web-site

素材 界面设计 交互设计师 好文 UI 设计流程 转场动效 用户体验设计 设计师专访 设计师 排版布局 扁平化设计 素材下载 视觉设计 职场 设计规范 产品设计 配色 web前端开发 设计趋势 海报设计 AI教程 字体下载 设计理论 动效设计 神器下载 图标设计 psd下载 logo设计 神器推荐 ICON 职场规划 App设计 酷站推荐 字体设计 交互设计 ui设计 用户体验 设计师职场 优秀网页设计 酷站 ps技巧 PS教程 网页设计 经验分享
wechat

优设官方微信

50万设计师关注

微信号:youshege

把好文章收藏到微信

打开微信,扫码分享
学设计 优设网 在这里