标签归档:Windows-OS

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

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名称,确定后,独立服务器会尝试跟域控制器进行联系,并要求输入域账号和密码,重启完成。
(本人很懒,没有截图,权当启发)