分类目录归档:Windows-OS

Win2003系统不能安装PostgreSQL 8.x的问题解决

PostgreSQL 8.4.2发布了,于是去官方下载了Win版本做测试,
在Win2003上面怎么也安装不上,提示错误为:
Problem running post-install step
Installation may not complete correctly
The database cluster initialisation failed

安装了很多遍,依然如故,百思不得其解,只好求助Google。
Google告诉我,在Postgre官方社区上有很多跟我同样的问题,
看了看大意,无非是让去/tmp中找一个长得像bitrock_installer.log的日志文件,
然后根据详细错误信息作进一步判断。

好吧,我去找,但/tmp是Linux的临时目录,Win2003的应该是Temp吧,
经过了我很暴力的查找手段,果然找到了bitrock_installer_xxxx.log文件,
在日志文件中找到那么一段记录:
initializing pg_authid … FATAL: database locale is incompatible with operating system
DETAIL: The database was initialized with LC_COLLATE “Chinese_Peoples Republic of China.936”, which is not recognized by setlocale().
HINT: Recreate the database with another locale or install the missing locale.
child process exited with exit code 1
initdb: removing contents of data directory “C:/Program Files/PostgreSQL/8.4/data”
Failed to initialise the database cluster with initdb
Script stderr:
Program ended with an error exit code
Error running cscript //NoLogo “C:ProgramFilesPostgreSQL8.4/installer/server/initcluster.vbs” “postgres” “postgres” “test” “C:Program FilesPostgreSQL8.4” “C:ProgramFilesPostgreSQL8.4data” 5432 “DEFAULT” : Program ended with an error
exit code
Problem running post-install step. Installation may not complete correctly
The database cluster initialisation failed.

看来是database locale设置问题,不能选default了,我选择了Chinese,选C也行,
剩下的一切顺利。

Postgres非常棒,有很多MySQL没有的高级特征,很多地方像Oracle,
与PHP使用也 很方便,在MySQL命运未知的情况下,PostgresSQL成了低成本高性能的首选.

在IIS下安装配置ISAPI Rewrite 3,实现URL重写

首先去http://www.helicontech.com/download.htm 或者
http://www.helicontech.com/download-isapi_rewrite3.htm
下载最新版本的ISAPI Rewrite 3 ,有商业完整版和免费Lite版两种。
完整版的支持每个站点根目录自定义httpd.ini文件,可以免费试用45天。
Lite版的只能配置全局httpd.conf,不能对每个站点做单独配置,可以免费使用。
在这里我使用Lite版(ISAPI_Rewrite 3 Lite installation package)。
下载后安装到任意位置,并确定安装目录有可读写权限,
安装过程没什么好说的,疯狂的点Next就好。

安装完成进行配置的步骤,打开 Internet信息服务(IIS)管理器 ,
在需要URL Rewrite的站点上点击右键->属性->ISAPI筛选器->添加,
筛选器名称任意填,我填写的是ISAPI Rewrite,
可执行文件里面选择ISAPI Rewrite 3安装目录下的ISAPI_Rewrite.dll文件。

最后一步是要编辑ISAPI Rewrite安装目录下的httpd.conf文件,
在开始菜单中也可以通过运行ISAPI_Rewrite Manager来编辑它。

举个例子,
我要把 domain.com/view.php?id=test 重写为 domain.com/view-test.html
可以这样写:
RewriteRule /view-([0-9,a-z]*).html /view.php?id=$1 [L]

详细的写法我会在以后的文章中具体说明,明天就过年啦,出去玩去喽。
祝大家新年快乐,Happy 牛 Year ! 🙂

20100522:
grick那里看到IIRF,一个可以替换掉ISAPI Rewrite的东西,免费,可以支持多站点。
下载地址:http://iirf.codeplex.com/releases/view/14394
仔细看官方文档,说明很详细。

Windows Server 父目录权限问题

今天在本机做Drupal测试,按以往经验本以为一帆风顺风雨无阻安装完毕,
哪知浏览install.php安装却出现以下致命错误:

Warning: require_once() [function.require-once]: Unable to access ./includes/install.inc in D:wwwdrupalinstall.php on line 4

Warning: require_once(./includes/install.inc) [function.require-once]: failed to open stream: No error in D:wwwdrupalinstall.php on line 4

Fatal error: require_once() [function.require]: Failed opening required ‘./includes/install.inc’ (include_path=’.;C:php5pear’) in D:wwwdrupalinstall.php on line 4

按理说我从官方下载的Drupal源程序应该不会有什么问题,
打开install.php看了下第4行的内容为:require_once ‘./includes/install.inc’;
这条语句本身没有任何问题,更何况Drupal经过上万人的测试也不可能有这么低级的BUG,
于是首先怀疑此乃服务器配置不当造成,
检查了权限均无问题,父路径早已开启,可问题依然存在,
根据错误字面上的意思是不能访问到install.inc这个文件,但此文件确实存在,
根据偶N年经验+感觉,判断出此应为找不到路径问题,
于是尝试修改源文件require_once ‘./includes/install.inc’;
为require_once ‘includes/install.inc’;( 去掉了./ )
问题果然解决。
看来虽然开启了IIS的父路径但程序仍然不认父路径,
知道了原因,带着疑问baidu了一下,发现不少Discuz用户也有类似错误出现,
但观其错误提示均有几个共同点:
1.大多为Windows用户
2.大多为本机环境测试
3.大多把Discuz安装在网站根目录
经过分析得出:
1.其中Windows环境没什么好评价的,Windows本来就麻烦。
2.大多为本机环境测试,说明此类问题已被服务器专业技术人员所熟知,只是个人用户缺乏经验设置不当造成。
3.第三条比较可疑,程序安装到网站根目录,那么网站根目录的父目录就是IIS权限以外的目录了,
Discuz是这个道理,Drupal也必定是,
于是尝试修改网站根目录Drupal文件夹的父目录www的权限为 Internet来宾用户可读,问题果然解决。
总结:
1.在通常情况下,我们配置IIS目录权限都是只设置网站的根目录及其子目录的权限,往往忽略网站根目录的上级目录。
2.以后遇上这种情况要么修改网站根目录的上级目录权限为可读,要么把此类需要父目录读权限支持的程序放到网站根目录的子目录中。
3.Drupal和Discuz这种国际知名的开源软件有待提高环境兼容性,因为我看到很多其他知名开源软件的require_once路径并没有加上 ./ 。

解决Win2003不能安装SP2的问题

上午重做Win2003的WEB服务器,安装到SP2的时候,提示:
Windows Server 2003 Service pack 2 无法安装。
用来安装Microsoft Windows的产品密钥可能无效。
Google了一下,原来Windows Server 2003 是SP1 且是盗版光盘,无法升级到SP2。
解决方法:将下面内容复制保存为以*.reg为扩展名的文件,双击写进注册表里,就OK了!

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersion]
"ProductId"="69713-640-9722366-45198"

[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersion]
"CurrentBuild"="1.511.1 () (Obsolete data - do not use)"
"InstallDate"=dword:3f6c976d
"ProductName"="Microsoft Windows Server 2003"
"RegDone"=""
"SoftwareType"="SYSTEM"
"CurrentVersion"="5.2"
"CurrentBuildNumber"="3790"
"BuildLab"="3790.srv03_rtm.030324-2048"
"CurrentType"="Uniprocessor Free"
"ProductId"="69713-640-9722366-45198"
"DigitalProductId"=hex:a4,00,00,00,03,00,00,00,36,39,37,31,33,2d,36,34,30,2d,
39,37,32,32,33,36,36,2d,34,35,31,39,38,00,5a,00,00,00,41,32,32,2d,30,30,30,
30,31,00,00,00,00,00,00,00,00,e5,3f,e9,6a,2c,ed,25,35,12,ec,11,c9,8d,01,00,
00,00,00,00,37,03,6d,3f,44,22,06,00,00,00,00,00,00,00,00,00,00,00,00,00,00,
00,00,00,00,00,00,00,00,00,00,00,31,32,32,32,30,00,00,00,00,00,00,00,dc,0f,
00,00,bf,4a,94,6c,80,00,00,00,15,18,00,00,00,00,00,00,00,00,00,00,00,00,00,
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,34,79,ca,d7
"LicenseInfo"=hex:71,84,c7,56,a0,d6,10,6e,70,b4,9f,e9,10,1a,1e,7a,01,a4,41,09,
25,20,0e,80,83,80,1f,31,27,86,64,1f,31,dc,22,af,f7,7d,aa,e4,2a,b9,e5,e3,6c,
e2,01,69,85,70,91,be,a7,9f,95,e5

让你的键盘说话-讲述人

🙂 也许您不知道,
Windows2000 / XP 系统自带一个“讲述人”小程序,
它是一个将文字转换为语音的实用程序,
可以读取您键入的文本 以及显示在屏幕上的内容。
遗憾的是,它目前仅支持英文,并不能阅读中文。
大概很多朋友会认为它没有用,发音难听,说话啰嗦。
不过,幸好,我发现了它的价值所在,
至少在写代码时我不会输入错误的字母了,
那么您呢?
有了“讲述人”的语音提醒,您还会不小心输入错误的字符吗?
:mrgreen:
其实我也很啰嗦,下面才是正题:
使用方法很简单,在 运行 中输入 narrator 命令,就会弹出 MicroSoft讲述人了。
Enjoy it!

Windows Server 的域和活动目录

Windows Server 中的域是一个独立的管理单位,有独立的帐户和组策略,域也是一个逻辑概念,与网络的物理拓扑无关,可以小到只有一台域控制器DC,也可以大到包括世界各地的计算机。而活动目录则是由至少一个域组成的集合,或者说,域是活动目录的分区单位。从Windows2000开始,MS引入了活动目录的概念,DC通过活动目录AD来提供目录服务,例如维护AD数据库、审核用户账户和密码、将AD数据库复制到其它的DC等。AD库的核心文件是winntntdsntds.dit文件。组策略的具体设置值,并不存在这个文件中,而是保存在winntsysvolsysvol这个共享夹下,用于向其它DC复制,传播给域成员,来生效。正是由于所有域成员计算机和域用户都共用这个域的目录服务数据库,域管理员因此可以进行集中管理、共享资源等。目录服务为管理员提供从网络上任何一个计算机上查看和管理用户和网络资源的能力。目录服务也为用户提供唯一的用户名和密码,用户只需一次登录,即可访问本域或有信任关系的其它域上的所有资源,而不需要多次提供用户名和密码登录,非常方便。

建立域控制器:
升域方法很简单,点击 开始->运行dcpromo命令,弹出Active Directory安装向导界面,选择 新域的域控制器->创建一个新的在新林中的域->输入一个DNS全名的FQDN->指定数据库和日志存放路径->安装并配置DNS->几分钟后重启完成。

建立附加域控制器:
以本机管理员身份登录,DNS指向已有DC所用DNS服务器,启动AD安装向导,选择 现有域的额外域控制器->输入域管理员帐号->输入域名->指定数据库和日志存放路径->几分后重启安装完成。

将计算机加入到域:
设置DNS,打开 系统属性,点击 计算机名 选项卡,再点击 更改,在 隶属于 区域中选择 域,填入该计算机将要加入域的DNS名称,确定后,独立服务器会尝试跟域控制器进行联系,并要求输入域账号和密码,重启完成。
(本人很懒,没有截图,权当启发)