新版本的Nginx中提供了很多功能,而且在生产服务器中表现也相当不错。可惜VPS上用的是Debian 6,而在apt源中提供的Nginx版本太低,只有0.7。我能想到的升级办法有3个:1、更换其他的源;2、自己重新编译;3、使用测试版本。前2种方式都比较麻烦,更何况本人对于第三方源所提供的软件感觉不正统,也不是很信任。所以第三个方法就成了最适合我的选择。更新步骤很简单,流水记录如下:
1、安装apt-spy
apt-get install apt-spy
2、测试速度最快的源地址,并切换到测试版。部分参数说明:
-a 选择镜像服务器区域。VPS在美国,所以这里使用North-america。如果在中国使用Asia
-d 选择部署版本:stable稳定版、testing测试、unstable不稳定版本
-t 服务器相应时间,默认15
apt-spy -d testing -a North-america -t 10
3、更新apt的packages list
apt-get update
4、重新安装nginx
apt-get install nginx
如果之前修改了nginx的配置文件,那么重新安装的过程中会给予是否备份的提示。当然手动备份还是最保险的~
标签:PHP
PHP的ntohl网络字节序函数及相关知识
最近项目中使用到了PHP与C服务器的socket通信,在做数据转换的时候,PHP没有提供对应将网络字节序和机器字节序相互转换的程序,但是根据函数的意义,我们可以做相应的转换来实现这一函数:
function ntohl($str){ $arr = unpack('I', pack('N', $str)); return $arr[1]; }
函数的意义
程序的作用是将网络字节序和机器字节序进行相互转换。在C/C++、Python、Delphi中都提供了相应的函数“ntohl”和“htonl”,如果是short类型就是“ntohs”和“htons”。下面是这些函数的意义:
ntohl()--"Network to Host Long" htonl()--"Host to Network Long" htons()--"Host to Network Short" ntohs()--"Network to Host Short"
什么是主机字节序
不同的机器字节序不相同,这与使用的CPU有关。不同的CPU在处理高位字节时所存储的顺序是不同的。
例如Intel x86结构下, short型数0x1234表示为34 12, int型数0x12345678表示为78 56 34 12
如IBM power PC结构下, short型数0x1234表示为12 34, int型数0x12345678表示为12 34 56 78
网络字节序
正是由于每个主机的处理顺序有可能不同,所以在网络协议中规定数据从高到低顺序存储,目的是在不同架构的主机中可以正常通信,避免兼容性问题。
SOAP通用接口笔记
很久之前做数据对接,对方要求使用SOAP协议,我们作为server提供接口。但当时遇到一个很麻烦的问题,就是对方使用.NET开发,必须要提供WSDL文件才能调用。但是使用ZDE生成的WSDL文件不能被.NET识别,使用NuSoap生成的也失败了。针对这种情况,我们准备对一个.NET生成的WSDL文件进行了改写,所以要求我们的类库越简单通用越好。总体来讲就是只提供一个名为action的接口,我们把所有具体的操作都放到action的参数当中。这样在WSDL文件中描述action的时候就变得非常方便了。
程序共分为3个文件,假设给对方提供的接口地址:http://example.com/interface/server.php 服务类名称:AbcSoapService 函数:action
(更多…)