2007/08/27 13:27
原来程序使用list.php?n=1来实现一个功能,现在需要让其自动执行。
在命令行下,cd /www/hx/;/usr/local/bin/php /www/hx/list.php
但list.php要如何获取参数呢?
通过浏览文档,PHP 的命令行模式:
http://www.itlearner.com/code/php_manual/features.commandline.html
知道了在使用命令行时,会产生$argc 和 $argv两个参数。$argc就是所有的参数个数+1,$argv则为保
存所有参数的数组。$argv[0]为脚本的名称,所以$argc是参数个数+1,$argv[1]则为第一个参数的值。
现在list.php只需要加一个参数,开始改编list.php的获取程序。
原获取程序一句话,$num = $_GET[$n];
现改为:
if($argc==2){
$num = $argv[1];
}else{
$num = $_GET['n'];
}
这样在命令行下,cd /www/hx/;/usr/local/bin/php /www/hx/list.php 1
就可以与在浏览器上输入list.php?n=1实现相同的功能了。
在命令行下,cd /www/hx/;/usr/local/bin/php /www/hx/list.php
但list.php要如何获取参数呢?
通过浏览文档,PHP 的命令行模式:
http://www.itlearner.com/code/php_manual/features.commandline.html
知道了在使用命令行时,会产生$argc 和 $argv两个参数。$argc就是所有的参数个数+1,$argv则为保
存所有参数的数组。$argv[0]为脚本的名称,所以$argc是参数个数+1,$argv[1]则为第一个参数的值。
现在list.php只需要加一个参数,开始改编list.php的获取程序。
原获取程序一句话,$num = $_GET[$n];
现改为:
if($argc==2){
$num = $argv[1];
}else{
$num = $_GET['n'];
}
这样在命令行下,cd /www/hx/;/usr/local/bin/php /www/hx/list.php 1
就可以与在浏览器上输入list.php?n=1实现相同的功能了。
2007/08/26 23:09
今天,本机(Windows2000 Server)安装Mysql5,使用自解压安装包mysql5.exe安装,前面很正常,到了Execute时,在启动服务时,提示出错,大致的意思是由于安全的因素,无法连接3306端口。怪了,以前这台机子好像安装过呀。

搜索一下,查到官方如下文档:
http://dev.mysql.com/doc/refman/5.0/en/can-not-connect-to-server.html#can-not-connect-to-server-on-windows
根据文档修改注册表,在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
添加了
MaxUserPort:65534
TcpTimedWaitDelay:30
后,重启。
重装安装MYSQL,顺利安装完成:)

搜索一下,查到官方如下文档:
http://dev.mysql.com/doc/refman/5.0/en/can-not-connect-to-server.html#can-not-connect-to-server-on-windows
根据文档修改注册表,在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
添加了
MaxUserPort:65534
TcpTimedWaitDelay:30
后,重启。
重装安装MYSQL,顺利安装完成:)
2007/08/24 13:28
今天同事问我,怎么装的ZendOptimizer不生效?他是想试一个用Zend加密过的程序时,显示一堆乱码,显然是ZendOptimizer没生效。我看了下他的版本是新装的5.23,比我半年前装的php5.16还新,然后我本机测试了下,发现自己机子上的ZendOptimizer也没生效!
看下phpinfo(),显示:
This program makes use of the Zend Scripting Language Engine:
Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies
with Zend Extension Manager v1.2.0, Copyright (c) 2003-2007
没有相应的ZendOptimizer信息。明明装了呀,本机搜索下,发现是装的是ZendOptimizer-3.0.1-Windows-i386.exe,卸载重装,问题依旧:(
后来在Error_log中看到如下提示:
PHP Warning: Zend Optimizer does not support this version of PHP - please upgrade to the latest version of Zend Optimizer in Unknown on line 0
看来是版本不行?去官方看了下,最新的是ZendOptimizer-3.3.0,下载下来:ZendOptimizer-3.3.0a-Windows-i386.exe,卸载旧版本安装新版本,装完查看phpinfo(),发现已经有了相应的说明,安装应该成功了。
This program makes use of the Zend Scripting Language Engine:
Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies
with Zend Extension Manager v1.2.0, Copyright (c) 2003-2007, by Zend Technologies
with Zend Optimizer v3.3.0, Copyright (c) 1998-2007, by Zend Technologies
运行加密过的程序,正常显示了,OK!
看下phpinfo(),显示:
引用
This program makes use of the Zend Scripting Language Engine:
Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies
with Zend Extension Manager v1.2.0, Copyright (c) 2003-2007
没有相应的ZendOptimizer信息。明明装了呀,本机搜索下,发现是装的是ZendOptimizer-3.0.1-Windows-i386.exe,卸载重装,问题依旧:(
后来在Error_log中看到如下提示:
PHP Warning: Zend Optimizer does not support this version of PHP - please upgrade to the latest version of Zend Optimizer in Unknown on line 0
看来是版本不行?去官方看了下,最新的是ZendOptimizer-3.3.0,下载下来:ZendOptimizer-3.3.0a-Windows-i386.exe,卸载旧版本安装新版本,装完查看phpinfo(),发现已经有了相应的说明,安装应该成功了。
引用
This program makes use of the Zend Scripting Language Engine:
Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies
with Zend Extension Manager v1.2.0, Copyright (c) 2003-2007, by Zend Technologies
with Zend Optimizer v3.3.0, Copyright (c) 1998-2007, by Zend Technologies
运行加密过的程序,正常显示了,OK!
2007/08/22 15:00
提示:
Warning: mysql_connect(): Client does not support authentication protocol requested by server; consider upgrading MySQL client in /www/xxxx/lib.php on line 31
Connect to mysql failed:
Client does not support authentication protocol requested by server; consider upgrading MySQL client
查了一下,官方的说明:
MySQL 5.0 uses an authentication protocol based on a password hashing algorithm that is incompatible with that used by older (pre-4.1) clients. If you upgrade the server from 4.0, attempts to connect to it with an older client may fail with the following message:
Client does not support authentication protocol requested
by server; consider upgrading MySQL client
解决方法是:
我建数据库用户时,使用了Grant All on db.* to hx identified by 'hxpass',这样密码是新的加密方式,解决的办法就是将密码重置为旧的(用OLD_PASSWORD加密的)密码。
中文参考资料:http://www.itlearner.com/article/2007/3759.shtml
Warning: mysql_connect(): Client does not support authentication protocol requested by server; consider upgrading MySQL client in /www/xxxx/lib.php on line 31
Connect to mysql failed:
Client does not support authentication protocol requested by server; consider upgrading MySQL client
查了一下,官方的说明:
引用
MySQL 5.0 uses an authentication protocol based on a password hashing algorithm that is incompatible with that used by older (pre-4.1) clients. If you upgrade the server from 4.0, attempts to connect to it with an older client may fail with the following message:
Client does not support authentication protocol requested
by server; consider upgrading MySQL client
解决方法是:
引用
Reset the password to pre-4.1 style for each user that needs to use a pre-4.1 client program. This can be done using the SET PASSWORD statement and the OLD_PASSWORD() function:
mysql> SET PASSWORD FOR 'some_user'@'some_host' = OLD_PASSWORD('newpwd');
Alternatively, use UPDATE and FLUSH PRIVILEGES:
mysql> UPDATE mysql.user SET Password = OLD_PASSWORD('newpwd') -> WHERE Host = 'some_host' AND User = 'some_user';mysql> FLUSH PRIVILEGES;
地址:http://dev.mysql.com/doc/refman/5.0/en/old-client.html
mysql> SET PASSWORD FOR 'some_user'@'some_host' = OLD_PASSWORD('newpwd');
Alternatively, use UPDATE and FLUSH PRIVILEGES:
mysql> UPDATE mysql.user SET Password = OLD_PASSWORD('newpwd') -> WHERE Host = 'some_host' AND User = 'some_user';mysql> FLUSH PRIVILEGES;
地址:http://dev.mysql.com/doc/refman/5.0/en/old-client.html
我建数据库用户时,使用了Grant All on db.* to hx identified by 'hxpass',这样密码是新的加密方式,解决的办法就是将密码重置为旧的(用OLD_PASSWORD加密的)密码。
中文参考资料:http://www.itlearner.com/article/2007/3759.shtml
2007/08/07 20:01
今天至少化了我二三个小时的时间(也化了同事的好长一段测试时间)来解决这个问题。
错误现像:
Apache的VirtaulHost中的配置
ErrorDocument 404 /404.htm
404.htm这个文件有1K多,第一句是meta跳转回首页,下面是用<p> </p>等几十行拼凑而成(为了凑足512Byte)。我自己是用IE7,在开启友好错误提示的情况下,正常跳转。但是,同事的IE6就不合作了,显示“无法找到页面”!
经过了漫长的测试(测试流程就不说了,快让人抓狂了),终于知道原因了。
第一:在UltraEdit中看到的文件字节数,不表示服务器认为的文件字节数,一般来说都会少一点。如UE中看到是1500字节,很可能在服务器上认为是1300字节(通过日志来查看)。
第二:我服务器有启用deflate压缩,一般htm文件压缩率有20%~50%。我那个文件1K多,被压缩后发送到浏览器就只有400多字节了,少于512Byte,因此显示“无法找到页面”。
第三:IE7在404错误页面被压缩后少于512Byte的情况下,仍然可以正常显示。
第四:以后设置404文件要搞大一些,呵呵!
关于为何不存在的页面不使用404 网站URL,请参阅:http://www.9enjoy.com/post/165.htm
如果你想更深入的了解404错误,请参阅:http://www.itlearner.com/article/2006/3605.shtml
错误现像:
Apache的VirtaulHost中的配置
ErrorDocument 404 /404.htm
404.htm这个文件有1K多,第一句是meta跳转回首页,下面是用<p> </p>等几十行拼凑而成(为了凑足512Byte)。我自己是用IE7,在开启友好错误提示的情况下,正常跳转。但是,同事的IE6就不合作了,显示“无法找到页面”!
经过了漫长的测试(测试流程就不说了,快让人抓狂了),终于知道原因了。
第一:在UltraEdit中看到的文件字节数,不表示服务器认为的文件字节数,一般来说都会少一点。如UE中看到是1500字节,很可能在服务器上认为是1300字节(通过日志来查看)。
第二:我服务器有启用deflate压缩,一般htm文件压缩率有20%~50%。我那个文件1K多,被压缩后发送到浏览器就只有400多字节了,少于512Byte,因此显示“无法找到页面”。
第三:IE7在404错误页面被压缩后少于512Byte的情况下,仍然可以正常显示。
第四:以后设置404文件要搞大一些,呵呵!
关于为何不存在的页面不使用404 网站URL,请参阅:http://www.9enjoy.com/post/165.htm
如果你想更深入的了解404错误,请参阅:http://www.itlearner.com/article/2006/3605.shtml







