LAMP还是WAMP?

LAMP--Linux+Apache+Mysql+Perl/PHP/Python,一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。

随着开源潮流的蓬勃发展,开放源代码的LAMP已经与J2EE和.Net商业软件形成三足鼎立之势,并且该软件开发的项目在软件方面的投资成本较低,因此受到整个IT界的关注。从网站的流量上来说,70%以上的访问流量是LAMP来提供的,LAMP是最强大的网站解决方案.

LAMP是基于Linux,Apache,MySQL和PHP的开放资源网络开发平台,PHP是一种有时候用Perl或Python可代替的编程语言。这个术语来自欧洲,在那里这些程序常用来作为一种标准开发环境。名字来源于每个程序的第一个字母。每个程序在所有权里都符合开放源代码标准:Linux是开放系统;Apache是最通用的网络服务器;mySQL是带有基于网络管理附加工具的关系数据库;PHP是流行的对象脚本语言,它包含了多数其它语言的优秀特征来使得它的网络开发更加有效。开发者在Windows操作系统下使用这些Linux环境里的工具称为使用WAMP。

虽然这些开放源代码程序本身并不是专门设计成同另外几个程序一起工作的,但由于它们都是影响较大的开源软件,拥有很多共同特点,这就导致了这些组件经常在一起使用。在过去的几年里,这些组件的兼容性不断完善,在一起的应用情形变得更加普遍。并且它们为了改善不同组件之间的协作,已经创建了某些扩展功能。目前,几乎在所有的Linux发布版中都默认包含了这些产品。Linux操作系统、Apache服务器、MySQL数据库和Perl、PHP或者 Python语言,这些产品共同组成了一个强大的Web应用程序平台。

随着开源潮流的蓬勃发展,开放源代码的LAMP已经与J2EE和.Net商业软件形成三足鼎立之势,受到整个IT界的关注。越来越多的供应商、用户和企业投资者日益认识到,经过LAMP单个组件的开源软件组成的平台用来构建以及运行各种商业应用和协作构建各种网络应用程序变为一种可能和实践,变得更加具有竞争力,更加吸引客户。LAMP无论是性能、质量还是价格都将成为企业、政府信息化所必须考虑的平台。

LAMP这个特定名词最早出现在1998年。当时,Michael Kunze为德国计算机杂志c't写作的一篇关于自由软件如何成为商业软件替代品的文章时,创建了LAMP这个名词,用来指代Linux 操作系统、Apache网络服务器、MySQL 数据库和PHP (Perl或Python)脚本语言的组合(由四种技术的开头字母组成)。由于IT世界众所周知的对缩写的爱好,Kunze提出的LAMP这一术语很快就被市场接受。O'Reilly和MySQL AB更是在英语人群中推广普及了这个术语。随之LAMP技术成为了开源软件业的一盏真正的明灯。事实上,LAMP,正像一盏开源明灯指引着我们前进的方向!

 

WAMP是指在Windows服务器上使用Apache、MySQL和PHP的集成安装环境,可以快速安装配置Web服务器,一般说来,大家都习惯于将Apache、MySQL、PHP架设在Linux系统下,但是,不可否认的是Windows也有其优点,就是易用,界面友好,软件丰富,操作起来非常方面,因此对新手来说在Windows平台下使用Apache、MySQL、PHP也确实是一个不错的选择。下面我将介绍几款在Windows下可以使用的WAMP集成环境。

XAMPP - XAMPP是一款具有中文说明的功能全面的集成环境,XAMPP并不仅仅针对Windows,而是一个适用于Linux、Windows、Mac OS X 和Solaris 的易于安装的Apache 发行版。软件包中包含Apache 服务器、MySQL、SQLite、PHP、Perl、FileZilla FTP Server、Tomcat等等。默认安装开放了所有功能,安全性有问题,需要进行额外的安全设定。

WampServer - WampServe集成了Apache、MySQL、PHP、phpmyadmin,支持Apache的mod_rewrite,PHP扩展、Apache模块只需要在菜单“开启/关闭”上点点就搞定,省去了修改配置文件的麻烦。

AppServ - 集成了Apache、PHP、MySQL、phpMyAdmin,较为轻量。

总的来说,无论从安全性和性能上来讲,LAMP(Linux + Apache + MySQL + PHP)都优于WAMP(Windows + Apache + MySQL + PHP),不过由于Windows具有易用的特点,WAMP也未尝不是初学者的一个不错的选择。

关于模板引擎smarty

框架

框架就像一个大楼的地基, 无论大楼怎么盖, 打造地基的方法永远都是类似的.在我们进行程序开发的过程中, 你会发现每个程序之间都要有很多类似的东西和可以重用的东西, 如果你每个项目过后都把这些类似的东西积累起来, 那么这些代码可以称为库, 当库越来越强大, 甚至连程序结构都可以重用的时候, 你就可以叫他框架了.

模板引擎

模板引擎你可以理解成施工队里刷油漆的, 他们是专业刷油漆的, 盖楼的不用管油漆怎么刷, 刷油漆的也不关注楼是怎么盖的.

其实模板引擎的主要作用还是将逻辑和显示进行分离, 最初可能是为了让程序员和美工更好的进行配合, 既然初学者, 我想你经常会把php代码和html写到一起, 你自己是可以看懂的, 但是美工不一定看得懂, 他们可能只能看懂html和css, 再者说如果美工在混合代码里加了复杂的css或者js你也一样会看不懂, 这样就给程序开发带来了很大的困难. 所以才有了模板引擎, 它将逻辑和显示完全分离, 程序员只需要关注逻辑, 在程序的最后将数据准备好然后传递给模板, 而美工只要修改模板而不需要考虑程序逻辑, 模板技术在团队开发中是经常使用的

smarty 仅是一个模版引擎,做的事情,就是把数据结合模板文件,渲染出来。
个人觉得smarty 语法古怪,硬是把很简单的事搞得很复杂。网上大把的模版类可以拿着用。当然做为一整套的体系的东西而言smarty 是做的不错的,可惜就是不好用。

框架,即framework。其实就是某种应用的半成品,就是一组组件,供你选用完成你自己的系统。简单说就是使用别人搭好的舞台,你来做表演。而且,框架一般是成熟的,不断升级的软件。 

为什么要用框架?

因为软件系统发展到今天已经很复杂了,特别是服务器端软件,设计到的知识,内容,问题太多。在某些方面使用别人成熟的框架,就相当于让别人帮你完成一些基础工作,你只需要集中精力完成系统的业务逻辑设计。而且框架一般是成熟,稳健的,他可以处理系统很多细节问题,比如,事物处理,安全性,数据流控制等问题。还有框架一般都经过很多人使用,所以结构很好,所以扩展性也很好,而且它是不断升级的,你可以直接享受别人升级代码带来的好处。
框架一般处在低层应用平台(如J2EE)和高层业务逻辑之间的中间层。

“会有点长”

**标题取名为“会有点长”是准备一直写下去,不是小说,不是情绪,不是琐事记录,算是学习记录吧。把它写起来,留点料以后看看,还能总结总结,在打字的同时顺便整理思路,想想接下来怎么做。**

好的,进入正题。这学期开始的前一个礼拜,起源于fappy bird的风行,逛“知乎”的时候,看到网上牛人贴了自己做的代码app版的和html5网页版的,于是想自己按照他的教程自己尝试尝试做出来,那几天,装了一个游戏开发引擎,按照他说的弄了几天没弄出来。没有觉得挫败,倒是燃起了一股热情,于是像饿死鬼一样的浏览各种信息,最初想知道app怎么做出来的,接着想知道网页和网站是怎么开发出来的。几天后,自己捯饬了一番,终于弄了一个demo版app到手机上,算是知道是java开发,用eclipse就能做出来,但是如果我真要做个好的有功能的app,虽然有java基础但是对于开发android应用,还是得学习语言。想起来,这将是一段多么艰辛的过程!......其实,在折腾demo版的app的时候,我还在了解另外一条线。做网站!对的。html看了一会就能看懂了,花了2个小时吧,然后从网上找了一些网站的模板,下载几个相册模板,flash的炫酷效果吸引到了我,于是下载完了之后开始改起代码,html+xml代码很好办,上手很快让我成就感,于是去网上找了一家能免费提供服务器的网站申请了子域名。改好了代码,换上了自己的相册,了解了如何上传愿代码和文件到服务器后,http://www.henryluki.comuf.com 上成了我自己的网站,并以我喜欢的内容和样式展现。

然后就开学了,到2月底的这个时候,很多idea开始萌生,尽管这些idea或者可以称为“幻想”,但是,如果这时候把学习与未来的方向感加进来,相比之前我可能更知道我想要干什么了。那几天,逛“知乎”我陆续把“web开发”“android开发”这些话题加关注,也开始更加了解前端、后端的概念,并且把一些IT社区和开源网站添加到书签。到这里,我算是才开始真正的燃起兴趣吧。

是这样的,这学期的重点在于“web开发”,android开发我就暂时不管了。两条线:第一条是JavaScript/jquery+PHP/mySQL 这是我现在这一学期主要学习的前端与后端;第二条是java web即JSP 鉴于要上这门课,于是就不是这学期自学的内容了。说到这里,解释一下为什么要做web开发,其实具体来说,是搭建一个博客系统,web2.0。经常上轻博客和之类的网站,有写文字和发布图片的这样习惯,所以想自己开发一个。这个系统和其他博客或者轻博客的基本功能要一样,当然网上有用开源的worldpress直接开博客,但是我不会用。我要自己去一步一步做完前端再做完后端来完成它。我会加上自己的设计,加上我喜欢的UI和功能。
这就是我的想法,此想法成型于3月初,具体实施时间期限为4个月,时间说长不长,说短不短,可是因为要自学很多东西,预留4个月差不多的。

(以上是背景部分)
<!--more-->

3月11日:

这两个礼拜,跟打了鸡血似的看书和用bootstrap做网页,demo版的网站界面基本成型,但是设计和UI需要进一步优化,理论知识的储备还很低,完成了html+css+javascript+jquery的基本了解,出现了这些问题:第一,css布局还有些属性未能了解;第二,javascript的基本语法已了解,但是未能自己实践,还没有自己编过程序;第三,jquery的书籍目前正在拜读,除了没看完之后,现存的问题也是还没自己编过代码。
解决方案是:①找css布局范例,进行修改,并试着自己设计,目的是了解透基本属性的用法;
②社区有demo实例和javascript源代码,理解之后自己编程实践;
③现阶段看完jquery的书籍是要务。

3月15日:

今天晚上这个时候困得不行,什么都想干的就来写写。本地服务器已经搭好了,正在构思实现动态建站的过程,这几天没有去管之前的代码,看了《Head First HTML5 Programing》,了解到两个API和动态应用的建立,但是其实没什么用,最终还是要用PHP来写,也还不知道用怎么用数据库呢。
对于网站的设计构思和功能的想法开始进入困境,找不到定位,因此设计和功能的畅想也止步了,下一步是去多看看动态网站的范例,这阵子不想去折腾前端,又得去图书馆借借书看,找点头绪了。

3月17日:

6天前要看完jquery的书,实际上就那天看了一点就一直没碰过了。是前天开始的PHP那天
从图书馆又拿过来一本HeadFirst系列的PHP&MySQL 然后就开始接触PHP了,这两天看完了四分之一吧,书不难读,但是挺厚,600来页,很想快点结束它。晚上又从图书馆借来一本PHP,应用型的,是项目开发。准备看完HF之后再接着用的,可以对照着书打打代码,很好的实践。这个礼拜应该就是好好的看书了吧。这个礼拜过去,一个月就过去了。

3月19日:

是刚刚从图书馆回来的,今天像是打了鸡血,上午两节课,一边上课一边看电子版的PHP,下午睡了一个午觉,2点醒来后,2点半就到图书馆看纸质版的PHP,下午没回宿舍,晚餐在斋区吃完后,直接去师院上马克思,除了跟小安子闲聊之外,还是在看PHP,当然下了课还是继续回到了图书馆。是担心这个礼拜看不完了吧,尽管今天解决了将近200页,但还有200多页要解决。4天,440页,有点快,但我不是在走马观花。书本来是比较通俗易懂的,代码不难理解,那本书的精髓主要在web应用的设计,功能实现,和问题解决。主要是引导思考,提出新想法并解决问题。几天下来是给了我比较多的ideas,比如:登录注销账户的实现,游客身份与会员界面的不同,还有数据库信息的存储,图像文件的上传存储,以及HTTP协议的安全认证之类的问题,所以到现在,我要创建的应用的具体问题大致知道要怎么实现了。另外一点,上午上操作系统的时候,灵感一来,想到可以做一个“分享计划”的网站,我主要想到的实现“图书分享”应用,登录注册之后,每个会员都能发布自己的图书分享内容,大致像是以书换书这样的分享,也能分享观后感之类,当然还可以分享点别的东西,具体板块也还没有想清楚。
这些日子要好好的进行知识储备吧,PHP和MySQL这一块目前是要花很多时间的了。

3月23日:

凌晨1点半没睡,本来想看视频的,可是看完估计今晚又要到很晚了。
《Head First PHP&MySQL》整整6百多页全部看完了,认真的过了一遍,手痒痒了,想要开始做项目了。明天是打算再将这本书整体过一遍,做点记录,顺便理清一下思路。下个阶段我也不知要干嘛,网站是跃跃欲试,可是还要学thinkPHP这一门框架,为此还有20多个学习视频要看,这很耗时的啊。应该设计数据库和页面以及想想具体要实现的功能了,觉得一个人可能做不下来,这毕竟是个很多工作的事情。就说这么多吧。
3月26日:

我没想到一门框架学起来会这么的吃力,框架比语言还拿学,确实是没想到。之前在优酷看兄弟连的视频,我觉得讲的东西因为出的比较早,用的版本稍微早了一点,而且讲的很基础,只是在认真看了几个之后,就放弃了那个系列。这几天找到一个后盾网的系列,因为他顺带会讲项目,而且蛮高清的就看起了这个系列,1小时之前感觉还好,看到11集的时候,觉得自己跟不上了。首先是thinkphp本身的一些语法,有些函数我之前没见多,今天讲了异步处理,我对AJAX也还没了解,甚至是一些复杂的javascript代码也看不明白了。这个礼拜是按着视频来学习的,现在出现这些情况也是没有想到的,除了今后要多次看用法手册之外看来是没有其他办法了。...真是不知道框架竟然这么难学。

4月2日:

这几天什么都没干,这几天一直都是大暴雨,天色很暗,阴郁,整个人都没激情。干了点什么?事实上,从上周五到现在,六天时间,看完三季《少狼》,呵呵,学习进度被搁下了。好歹今天算是全部结束了,今天就找点激情继续学习好了。目前一直在学框架,CI框架,上次说thinkphp框架太难学,所以就换了一个轻量级的框架CI,目前正在入门。老实说,最近这几天没用心学习。

4月19日:

来继续写吧,从4月2号到现在,就是这个网站从demo到现在上线测试所花的时间。前一个礼拜一直在做后台,可能一般人都对后台没什么概念,后台其实是动态网站的核心功能所在。纯HTML是写死的,不能更新。那样子的静态网站很好办,我只花了三台就设计成了现在前台的样子。让数据能动态更新,为此才是网站的核心功能所在。

第一个礼拜过后,后台完成了百分之60%吧,然后因为不满意前台,就花了三天设计前台,再接着,再花了几天完成了基本的后台。

然后就是部署上线了,本来一开始想自己注册域名,再去租服务器的,想到一个域名:www.nickwebsite.com,但被注册了,.cn还有,但是没想立即去注册,因为想了想,每年近200多,说多也不多说少也不少。还好之前关注过新浪、百度、腾讯云,搜了搜,新浪短期是不花钱,在我看来最好的了。于是在上周二就决定部署到新浪云sae上。

从部署到最终上线这三天,我经历了,开心,郁闷,失望,到最后兴奋的几个过程。开心的是,第一天晚上能显示出来一个界面。周三下午继续弄,修改几小处代码,为此出来了差不多所有的界面。但问题来了,后台登陆的验证码出不来,(现在也没解决,为此我没要验证码了),index.php没有隐藏,我在.hacess文件写掉了这部分,但是sae有自己的规则我的不管用,当然这也不算什么,按新规矩重写就好了。郁闷的是,重写的路由没了,现在地址栏那一长串看着真捉急,不爽。我试了好多次,到现在也没解决这个问题。接下来的问题最要命,我在代码里写了图片的上传路径,但是sae是采用storage存储的,为此先要把文件在代码上传的路径改为她的要求,官方是提供了API没错,但是那种代码是原生的php代码,我根本不知道怎么修改我用ci框架写的代码。

我当时心里捉急啊,心想:如果解决不了这个问题,gallery部分没办法实现,我的网站就会是一个半成品啊。于是我去网上搜资料,找了很久,根本就没有将文件写入storage的有用的方法。而大部分人是贴了sae的api示例,这些人,就这样子转过去算是别人访问的骗流量的吧。其实,是有一种办法,我使用是的ci框架,网上有大神修改了这个框架来适应sae叫ci for sae。我好像看到希望,觉得看懂他的示例就能通过增加我框架中没有的文件,修改一点点代码来解决让我郁闷的问题。于是花了时间看懂范例,又照着改了改我的代码,增加了它的文件,然后满怀信心的部署上去后,但是,显示的一个空白页却让我摸不着头脑。

说到这,来吐槽吐槽sae的“空白页打击”吧。就算一个符号出错,就能整页不显示,而且还没有任何提示哪里有bug。调试有多头痛写过程序的人应该都知道,而没有提示信息的这种调试更想屎。

调不了,为此我没有任何头绪,我想啊,就这样改代码绝对不对,行不通。Ci for sae 或许没问题,但问题在我的代码不能就这么搬过去。可是,我更不能用它重新写一遍我的代码啊。然后我开始失望了,是吧,明明有免费空间用,却不能,不会用,然后就不知道肿么办了。。。。。

故事到这里,其实大家都知道,这个故事卖关子的技术含量一点不高,明明你的网站现在不好好的在这了吗,最后肯定找到解决办法了。没错,我周四晚上是解决了这个问题,这让我在那天晚上,像有人白给我送钱一样特别开心。我还是再说说吧。那天,从下午到晚上我一直找解决办法,我逛社区,sae社区,ci社区,一直找呀找,找呀找,好多点进去,又关了,无头苍蝇样乱找。然后,功夫不负有心人,让我找到这么一个链接。这个链接给了我出路。在这里,要感谢不知道哪个大神,他刚好把改写的上传图片的方法和demo放在了git上面。他在上面介绍说,用ci写了项目,要部署到sae,遇到文件上传,目录无法写进这样的麻烦,他不想半途而废,为此就自己改写了ci框架的几处代码。大神不愧是大神,真厉害,他改的正是我需要的!接下来,我沉住气,其实这个时候就开始觉得有人在给我送钱了。我小心的改了一处上传路径的代码,然后慢慢调试,一开始几次没成功,再弄几次就成功了。这里插一句,本来我还能压缩图片的,但是现在压缩不了了,而为了前台图片显示加载速度快一点,我设置都限制上传图片1M以下了。然后呢,然后就修改了所有应该修改的地方,一处行,处处行咯。那时候,就觉得别人给我送的钱是越来越多。

就是这样,周四晚上熬了个小夜,解决了big big problem。这让我一下又活力四起,整个人精神百倍了。

第二天,周五7点多,我睡了不到6个小时,就爬起来,又为博客栏添加了一个内容搜素功能。从下午下课回来,就开始调试网站的整体功能。调试的时候生怕出bug,战战兢兢。是种这样的感觉,你还很小的时候去上学,你妈妈害怕你回家路上会出事的那种担心。然后,一直到8点吧,基本调试完之后,就迫不及待就把信息通过各大社交网站散出去,带着一种像是自己很腻害的,就是那种想炫耀“我很吊!”的感觉。

嗯,整件事情这是这样,诶呦,你听完了,我也写累了。话说回来,这些日子这么用功。接下来,就先给自己放几天假吧。