September 8, 2010
原创:解决 cp: omitting directory
"linux下面执行cp命令时提示如下信息:\ncp: omitting directory\n可以用下面的办法来解决\ncp -r orginal_file new_file"
September 6, 2010
FORCE_PKG_REGISTER参数
"更新ports到最新,然后直接重新 (make install) 编辑安装PHP时提示出错。升级之前就想到这个问题,因为没有卸载旧版本的PHP,新版本的可能没有办法正常安装。但是卸载的话相关的几个包也都要重新安装,很麻烦也很浪费时间。google了一圈也没有结果就只能自己试了。\n提示是这样的:\n===\u0026gt; php5-5.2.6 is already installed You may wish to ``make deinstall\u0026#39;\u0026#39; and install this port again by ``make reinstall\u0026#39;\u0026#39; to upgrade it properly. If you really wish to overwrite the old port of lang/php5 without deleting it first, set the variable \u0026#34;FORCE_PKG_REGISTER\u0026#34; in your environment or the \u0026#34;make install\u0026#34; …"
September 6, 2010
[教程]FreeBSD下使用ports安装Nginx + PHP5.2.6 + Php-fpm
"钟情FreeBSD的其中一个原因就是它的方便快捷的ports软件包管理,本文在安装Nginx、PHP、Php-fpm的时候也采用ports方式安装。ports是一个非常优秀的软件包管理器,如果不希望编译安装的话,使用ports安装,几个命令就能全部搞定,这对初学者来说是很有帮助的。\n事实上,Nginx 和 PHP已经在FreeBSD的ports系统里了,只是Php-fpm没有,不过,简单几个命令就能把Php-fpm添加到FreeBSD的ports中去。下面我们来看看具体的操作步骤:\n1. 安装nginx\n# cd /usr/ports/www/nginx\n# make install\n安装过程中要选择安装模块,这里我选择如下几个模块做示范\nHTTP_MODULE HTTP_REWRITE_MODULE HTTP_SSL_MODULE HTTP_STATUS_MODULE FreeBSD下的ports安装实在是太简单、方便了,没什么可多说的,下面直接安装php。\n2. 安装php\n# cd /usr/ports/lang/php5 # make install\n安装过程中,选择如下模块: …"
September 3, 2010
vmware中freebsd系统同步时间
"先设置时区:\n# tzsetup\n再与国家授时中心服务器对时: # ntpdate 210.72.145.44\n以后自动同步:\n首先修改/etc/rc.conf添加**ntpd_enable=”YES”**到最后一行。\n然后配置对时服务器:\n# vi /etc/ntp.conf\nserver 210.72.145.44 prefer server 159.226.154.47 server 127.127.1.0 fudge 127.127.0.1 stratum 5 restrict default ignore restrict 127.0.0.0 mask 255.0.0.0 restrict 192.168.0.0 mask 255.255.255.0 noquery nopeer notrust restrict 210.72.145.44 noquery restrict 159.226.154.47 noquery driftfile /var/db/ntpd.drift\n/var/run/xntpd.pid\n# ntpd -p /var/run/ntpd.pid # …"
September 3, 2010
php中抽象类和接口的概念和区别(二)
"一个子类如果implements一个接口,就必须实现接口中的所有方法(不管是否需要);如果是继承一个抽象类,只需要实现需要的方法即可,这是抽象类的一个优点\n如果一个接口中定义的方法名改变了,那么所有实现此接口的子类显然将无法通过编译,因为它们所实现的方法名已经不存在了,这是接口的一个缺点;而抽象类就不存在这个问题,只是为子类添加了一个新的方法(接口中旧的方法)\n看前面两点,似乎抽象类要比接口有着更多的优点,但它却有着一个难以弥补的缺点:就是一个子类只能有一个父类。A extends B . 这样A就拥有了B的所有方法和功能,但当A还想拥有C的功能的时候。就不能通过 A extends C 来实现, 而需要走一些弯路。目前系统架构的趋势就是由针对抽象(借口,抽象类)而不是具体编程,并且将功能尽可能的细分。 这就需要通过实现多个接口的方式来实现,显然,抽象类无法提供这样的功能。从系统重构的角度来说,一个具体类抽象出接口是十分方便的。只需要写一个接口,里面定义具体类的所有方法,然后在为这个具体类implement这个接口就可以了。而抽象类就要复杂的多,比如说 B extends A , C …"
September 3, 2010
php中抽象类和接口的概念和区别(一)
"interface a { //接口内不可以定义属性 //所有方法必须为抽象方法(既不实现,只定义)\npublic function method1($param); protected function method2($param); }\n//接口不可被实现,例如 $instance = new a; //错误\n//接口实现类必须实现接口的所有方法,且方法参数也必须相同 //例如 class b implaments a{ //错误,封装应与接口相同 protected function method1($param) { //somecode here… }\n//错误,参数应与接口定义相同 protected function method2() {\n} }\n接口功能是实现类似C++中的多重继承的,但其语法更为明了"
September 3, 2010
PHP的接口与抽象类
"PHP的接口:为了实现特定功能而预留的类似类的一种类型。接口的主要目的:提供给类类似于模板的框架,以方便类的构建。\n在PHP****中定义接口\n在PHP中定义接口的形式如下:\nInterface interfaceName\n{\nConst 1;\n……\nConst 2;\nFunction methodName1();\n……\nFunction methodName2();\n}\nPHP****中单一接口的实现\n实现接口的语法如下:\nClass class_name implements interface_name\n例如:\nid = $id;\n}\nfunction getID()\n{\nreturn $this-\u0026gt;id;\n}\nfunction setName($name)\n{\n$this-\u0026gt;name = $name;\n}\nfunction getName()\n{\nreturn $this-\u0026gt;name;\n}\nfunction otherFunc() //这是一个接口中不存在的方法\n{\necho “Test”;\n}\n}\n?\u0026gt;\nPHP****中多重接口的实现\n在** …"
September 3, 2010
Freebsd 如何_打开_关闭_查看防火墙
"在FreeBSD服务器上调试ipfw防火墙规则的时候,有时候需要临时关闭ipfw防火墙,可以使用如下命令来进行操作:\n1)停止ipfw防火墙:\nipfw disable firewall\n/etc/rc.d/ipfw stop\n2)开启ipfw防火墙:\nipfw enable firewall\n/etc/rc.d/ipfw start\n随机器启动自动启用防火墙方法需要修改/etc/rc.conf文件,参考:第三步.\n3)如何查看ipfw是否在运行\n方法一:通过ipfw -a list 不断的去看包的数量\n方法二:sysctl -a | grep net.inet.ip.fw.enable\n如果状态是1表示是开启,0为关闭.\nipfw中文手册pdf: http://docs.haohtml.com/download/freebsd/ipfw_zh.pdf"
September 2, 2010
解决IE6从Nginx服务器下载图片不Cache的Bug
"其实这个Bug是由分两种情况的:\n1.和Nginx无关,是针对CSS背景图片的。\n一般用户不会碰到,更多的时候是开发者将自己的IE的缓存策略从默认的”自动”改为“每次访问都查询”才发生 的。特点是鼠标一旦浮动到有背景图片的地方,IE会不顾已经缓存的图片,自行去服务器再次获取图片,造成图片短暂消失。这个问题比较简单,可以通过以下脚 本解决。\n1\n2. 但是实际上更常见的原因是Nginx上打开了Gzip压缩功能。\n这个是IE6 的著名Bug,早在2002年就被人详细讨论过了,在IE7中有所改进,但微软永远也不会去修复IE6了。\n根本原因是Nginx对于启用了Gzip的http上下文,即使你在之前的配置文件里声明过 gzip_disable “MSIE [1-6].”,Nginx不再对IE6用Gzip压缩了,但是送出的http报头却仍然采用了和Gzip压缩数据包相匹配的Vary: Accept-Encoding。IE6不认识这个报头,IE6对除了Vary: User-Agent的报头外,都不查询缓存,直接去服务器申请。更绝得是,不是使用查询文件是否更新,而是强行要求一份完整文件。(IE7总算 …"
September 2, 2010
php spawn-fcgi和php-fpm
"spawn-fcgi是一个通用的FastCGI管理服务器\n她是lighttpd中的一部份,但目前已经单独成为一个项目,最新的lighttpd没有这一块(),但可以在以前版本中找到她\n在lighttpd-1.4.15( http://www.lighttpd.net/download/lighttpd-1.4.15.tar.gz )中就有她\nNote注:最新的spawn-fcgi可以到lighttpd.net网站搜索“spawn-fcgi”找到她的最新版本发布地址\n目前她的下载地址是http://redmine.lighttpd.net/news/2 最新版本是http://www.lighttpd.net/download/spawn-fcgi-1.6.0.tar.gz\ntar -zxvf lighttpd-1.4.15.tar.gz cd lighttpd-1.4.15 ./configure #编译 make #因为我不需要安装lighttp而是只需要他其中的某个文件,所以只make就可以了,不需要make install cp src/spawn-fcgi …"