建站手记
写在前面: 由于答应了另外一个nerd朋友写下我全部的建站过程,博主特决定在此跟大家分享我建立这个网站的经过和一些经验。 1、从零开始 刚拿到服务器root权限的时候无比激动,果断ssh连接服务器。因为此前没有任何建站经验,除了玩过xampp。而xampp的“罪恶”之处就在于他把什么都给你配置好了,自己什么都不用管。。。。但是他是以最开放模式来配置的,也就是最不安全,但是功能最全面的模式。在真正的服务器上面,必然是不能这样的,除非你这个服务器是用来给大众娱乐的。。。。 废话少说,刚拿到的Ubuntu服务器是纯净的,纯净到连编译器都没有。幸好我们有apt-get apt-get update apt-get install gcc 第一步更新apt软件源缓存,第二部安装gcc。这里特别注意apt-get参数update和upgrade的区别,前者更新软件源缓存,后者则是根据当前软件源和已安装软件检查是否有更新。 如果你喜欢的话,可以接着安装g++,方便以后编译C++程序。 由于后面我们要添加对php5的支持,而php5需要libxml2才能运行,这里建议安装libxml2。打开http://xmlsoft.org/downloads.html下载libxml2并解压。 ./configure make make install 安装过程跟大多数针对linux开发的开源软件大同小异。 2、菜鸟上路 由于木有那么多钞票,我买的空间没有附带任何文件管理,不支持FTP。。。。于是除了学会使用wget命令下载,还要有个更方便顺手的工具来帮助我们配置服务器。这里我使用的webmin,可以前往官方网站下载最新版。(注意是用wget命令下载到服务器上,不会用wget的朋友请自己man之,学无止境) 建议下载tar包,因为是ubuntu,rpm神马的用起来就会比较麻烦。用tar -xvf webmin.tar.gz命令解压(请替换webmin.tar.gz为真实的文件名)进入解压出来的文件夹,执行一键安装脚本 sh setup.sh 安装程序会问你几个问题,大多数保持默认就可以了。port不建议使用默认的10000,因为容易被别人猜到。后面还有设置登录用户名密码什么的,按照自己情况写就行。安装完成之后,就可以通过在浏览器输入IP:port登录了。webmin提供非常丰富的服务器配置功能,甚至可以自动帮你安装MySQL。(我就是这么装的,在webmin主页选择severs->MySQL会提示没有安装MySQL,同时有安装选项) apt-get拉了我第一把,但是提供的软件源却很少。接下载我们要换用另外一个软件安装程序,aptitude。 3、渐入佳境 输入apt-get install aptitude来安装aptitude。 由于我买的VPS自带了apache2,(这点很令我惊异啊,连gcc都没有居然有apache)这里我就不详述apache2的安装过程了。安装命令是aptitude install apache2
Interprocess Communication
问得最多的问题: What is message boundary? Message boundary应用于UDP通讯(datagram model),是因为UDP通讯不保证从一个端口送出的前后两个数据包会发送到同一个目的地。因而发送数据也不需要connect()。所以每次发送数据,我们都要把数据包的收件人写进去,这个就是message boundary。TCP通讯(stream model),在传输数据之前需要connect(),从一次connect之后发送的数据一定会发送到跟你connect的地方。 为什么说TCP是可靠的,一个原因就是因为连接可以保证整个数据传输通道是两个end-point processes独享的,数据是怎么发出去的,就是怎么接到的。而UDP每次发出的数据都是独立的,而网络设备(网卡,路由器。。。)在同时接收到两个数据包的时候,会随机选择发送顺序。也就是说,你发出数据包的顺序(包括两个数据包发送时间的间隔)不一定会是对方接收到的顺序(或时间间隔)。