Warning: curl_exec() has been disabled for security reasons in /pub/host/sunboyu/sunboyu/www/wp-includes/http.php on line 1022
其他 一个程序猿 孙小一,孙小二,PHP,MYSQL,LINUX,APACHE,原创技术,扯淡

wordpress在不同webserver下的重写规则和配置

作者 : admin 于 2009年04月07日, 21:22:07
2009
04-7

apache下

  1. #.htaccess
  2. RewriteEngine On
  3. RewriteBase /
  4. RewriteCond %{REQUEST_FILENAME} !-f
  5. RewriteCond %{REQUEST_FILENAME} !-d
  6. RewriteRule . /index.php [L]
  7. #httpd.conf
  8. Options ExecCGI FollowSymLinks
  9. AllowOverride All
  10. Order allow,deny
  11. allow from all

nginx下

  1. #nginx.conf
  2. location / {
  3.         if (!-f $request_filename){
  4.             rewrite (.*) /index.php;
  5.         }
  6.     }

虚拟化产品市场分析

作者 : admin 于 2009年04月04日, 13:13:41
2009
04-4

我这里分析的虚拟化产品,主要是和IDC相关的一些虚拟产品。

我们常见的产品,比如虚拟主机(空间),VPS,服务器合租等。这类产品目前在市场上发展比较成熟,而且随着互联网发展,这类产品市场前景逐渐看好。

这点,从万网的发展路线就可以看出,中小企业越来越重视自己信息化的建设,而从百度的销售业绩也能看出,企业的投入逐渐从传统媒体转向了互联网。另外,各大IDC机房内,也有相当的托管机器是用在中小网站上。

而这些产品的基础构建,管理,对于不管是企业还是个人,都是一个问题。对于国内做虚拟主机产品的老大们,万网,新网都有自己的管理系统,而对于一些小型用户,一些开源的管理软件足矣,无非是增加点人力。

目前虚拟主机应用主流平台就是windows,linux,freebsd,windows系统首先有自己完善的管理机制和可供开发人员使用的API,对于unix相关系统,开源界更是提供了数不尽的资源。而这些产品更大的问题就是:他们只考虑了去如何管理一个系统,而并没有更多的考虑如何去运营这个系统,如何把产品更快投入商业生产中。

我熟知的成熟商业系统主要有cpanel系统,在整个产业都很出名的,因为美国很多主流虚拟主机提供商都使用这个系统。国内很出名的是创值立信,他们的产品可以算上国内老大了,据说他们的开发团队是从万网跑出来的一伙人,所以在经验和技术积累上很成熟。

但这两个系统都有致命的缺点,就是高昂的价格,不能被大众尤其是中小型的客户甚至个人所接受。

再说其他的一些产品。国产的蓝芒主机管理系统,也是行业内的佼佼者,它们的系统支持国内完善的业务流管理,跨平台的系统支持,可谓非常完善的产品。而再有一些小型的产品,基本都工作在windows下,而无法实现对windows/*nix混合集群的支持,这样就造成了部分客户的流失。

而一些开源的虚拟主机管理,其功能之强令人震撼,比如webmin主机管理平台,还有一些windows下的免费软件基本能实现对整个操作系统虚拟化的管理,但一旦涉及商用,就有很大的问题,其欠缺的不仅是支付,业务流,财务等,更难以实现的是对整个运营流程的管理。

而目前国内此市场上,或者产品功能的欠缺,或者价格的昂贵,对于一些初创的公司或者个人都是一个门槛,无法达到成本低廉化。

所以,我认为国内此类虚拟化管理软件还有很大的市场潜力,只要是能够适应市场的产品,会在如此大的市场份额中再分一杯羹。

做完数据库抽象层,可能要做一个通用的缓存层

作者 : admin 于 2009年03月07日, 14:17:49
2009
03-7

数据抽象层实现了Mysql和SQLite的兼容,基本也就够用了,基本所有的PHP环境现在都支持sqlite(起码我配的环境是),而且扩展的过程证明了这个规则是可以通用的。

低下要做个通用的缓存层,基本就是 key value 这种简单映射的就足够。这种缓存目前实现主要有本地文本,bdb,memcache几大系列。本地文本异常灵活,方便迁移,不依赖其他组件,直接用PHP的文件读写函数就可以。缺点是,未有大规模系统使用,因为PHP本身效率问题。小的应用还是可以使用的,phpx上也有个三德子写的通用文本缓存类。

bdb就非常不错了,嵌入式的数据库,支持简单的key value模式,而且本身非常小,但效率高,支撑非常大的数据量。

memcache就不用说了,太通用了,很多大型的系统都在应用,优缺点不再重复。

抽象层兼容这几个就行了,能实现无缝迁移即可。

计划下周末开工。

购买新书两本

作者 : admin 于 2009年02月22日, 20:02:06
2009
02-22

http://www.douban.com/subject/2171797/

s3069021

http://www.douban.com/subject/3024665/

s30690211

我们应该信任谁

作者 : admin 于 2009年01月22日, 11:03:14
2009
01-22

最近几个服务器频频出事,虽然不是自己的服务器,经验还是值得学习的。

在做高可靠性方案的时候,我们应该信任谁,是个问题。

首先是域名。一般域名都是委托给idc,或者专业做dns的,作为网站的入口,交给他们就等于绝对的信任他们,没有备份方案。如果带有些许的不信任,可以设置备用dns为自己的dns服务器。dns一般没太大的问题,但一旦有问题就是大问题,万网新网好像都发生过dns服务器大规模故障,全国各地大面积瘫痪,不能不说,对域名的信任存在问题。

链路,说到链路,这是个大问题,也许也包含了域名的问题。

从dns,网关,路由,响应,各个节点负载,都需要经过详细测试。

一般销售推销带宽,只是简单让测试ping值,但实际是不科学的,因为在用的时候,我选择的带宽ping值的确很好,但实际应用效果缺不理想,没有那个系统是靠ping值来保障的,域名服务器,网关速度,交换,路由的处理能力都是硬指标。很多服务器ping值好,但数据一流起来可就没那么好了。承诺给你大的带宽,可带宽要局限在一个固定的环境中,无异于局域网应用。

我们需要的是优秀的广域网应用,所以,最好的测试还是把服务架上,实际去跑一阵应用服务,才能最终确定带宽和链路的质量。

中间跳了很多环境,涉及了宽带提供商,运营商,代理,现场技术,用户等很多环节,保证每个环境的通路才是最终的通路。任何一个环节都可能成为瓶颈和以后应用的隐患。

但在中国的网络环境中,我们应该信任谁?

传说中的千万数据量优化

作者 : admin 于 2008年12月30日, 22:10:51
2008
12-30

平时看别人招聘,动不动来个“有千万数据量优化经验”。我还的确没有这个经验,中小网站来个几万几十万的数据就了不得,一些涉及数据多的顶多也来个百万,因为超百万我就分表了,而且设计的时候尽量使用主键索引,避免使用模糊搜索和一些复杂的搜索。
基本百万数量级以下的简单应用,一般的服务器没什么问题,只要程序够不垃圾就行。
今天突然奇想,尝试下千万数据什么样子,花半个小时生成了一堆随机的数字,一千万整,当然还有其他的一些数据,主要测试从千万级的数据中捞少量数据是什么样子。
我用的MSSQL2005,使用存储过程生成数据,半个小时,Mysql没实验过。结果,从千万数据用where捞几万条数据,用单一的where条件,果然很慢,能达到20几秒。后仔细查看索引和语句,发现没有很好的索引供sql语句使用,根据where语句建立索引,速度提升到10秒左右。因为只是取出几个字段,后又想使用覆盖索引,加上那几个字段,速度大为提高。
经过跟踪测试,在覆盖索引的使用后,取数据已经达到了相当迅速,但大量的时间消耗在了数据库连接和数据的传输上。因为本系统必须操作大量数据,而拆分数据后又增加了创建数据库连接的成本,速度反而变慢。其实,只要php不超时,已经达到了可用的程度。
总结:索引这玩意真的不错,但设计数据表要尽量简单,简单不是指字段简单,而是使sql语句取数据简单,必要时中间要增加矢量的冗余数据,用空间换取时间。

购得一本新书:《Python网络编程基础》

作者 : admin 于 2008年12月08日, 23:04:44
2008
12-8

过分迷信PHP是不行的,做事还得找专长

IIS安全机制详解

作者 : admin 于 2008年11月04日, 18:11:33
2008
11-4

2005年前后曾经风靡过一阵旁注入侵,其利用的原理是所有的iis站点使用了统一的进程账户,而对所有站点设置了同样的权限,因此,当你有一个站点的权限的时候,就等于拥有了所有站点的权限。

在虚拟主机上,这么设置,那生意真的是没法做了,因此,基于iis的虚拟主机都用了独立的iis进程账户进行权限的隔离。

现简述安全原理:

现有 site1,site2,site3 三个站点,三个站点目录结构如下

D:\WWW\site1  D:\WWW\site2   D:\WWW\site3

默认会使用 IUSR_SUN 这个账户作为Internet来宾账户,而 IIS_WPG作为IIS工作进程组。那么会在D:\WWW 这个文件夹上使IUSR_SUN有用读写执行脚本的权限,而三个站点的的匿名访问用户均为IUSR_SUN。这样,虽然脚本(asp,php等)运行在D:\WWW\site1目录下,但对D:\WWW\site2   D:\WWW\site3都是有读写权限的。

如果服务器上的站点是一个公司的,那样还好,如果是给不同的用户来用,问题不言而喻。

因此,我们要用独立的账户和权限来运行三个站点。

我们设置三个用户 IUSR_SUN_1  IUSR_SUN_2   IUSR_SUN_3 ,只归入guests组(如果属于多个组,windows会按照权限的交集来计算)三个用户分别作为 D:\WWW\site1  D:\WWW\site2   D:\WWW\site3的匿名访问用户。然后分别给 D:\WWW\site1 IUSR_SUN_1用户读写等权限,依次设置。

这样,每个网站的用户权限被禁锢在自己的文件夹(站点)下,就保证了站点权限的隔离。

------附录------

在设置一个站点的时候,我按照最严格的权限进行设定,但发现一个问题,有些PHP的脚本不能执行。后来发现,当使用require(”./a.php”),这种linux风格的路径的时候,会出问题。后查资料发现,这样访问的时候,脚本需要对本层目录的上一层拥有读的权限,所以,我们在独立设置对上层有个读的权限,这样问题就可以解决。

这个问题发生在ThinkSNS程序中,他们大量使用了linux风格的路径包含方式,因此在权限严格的iis上就跑不动了。而discuz的程序大都不使用这种方式,在兼容性上下了很大功夫。

UML2.0学习指南

作者 : admin 于 2008年10月21日, 09:11:44
2008
10-21

书还不错,虽然有点看不懂。中小型公司很少有做项目前期建模的,我来试试。

CSS注释兼容性测试

作者 : admin 于 2008年08月28日, 00:21:34
2008
08-28

调试CSS差点调吐了,ff说啥都不认。后来起到html注释有兼容性,进行了一下测试。

风格1:手误的一种注释  <!– *** –>这本是html的注释,一不小心写了出来,结果,firefox不认,差点没调吐。

风格2:标准的注释 /* &&&&&   */ ie6,firefox都兼容的。

另外写注释,注释跟两边边界空出一点,会好点,降低错误率。

 Page 2 of 3 « 1  2  3 »