核心:给php安装目录赋上users组读与执行权限
环境:新安装服务器,windows2003/iis,windows安装目录C盘的权限设置很严格,很多没有必要的的用户权限都删掉了。
配置php
php文件解压缩到c:\php5;
设置系统变量:path增加c:\php5,新建一个系统变量PHPRC值为c:\php5;
拷一个配置好的php.ini文件到c:\php5;
iis站点里设置php文件映射,新增加isapi.dll的web服务扩展,并设置为启用状态;
重启windows;
然后,运行一个phpinfo.php的测试文件(文件内容为<%php phpinfo(); %>),用以检测安装是否正确。
但很奇怪的是出现“您未被授权查看该页”的错误。突然想起来,要对pho.ini设置web站点用户的读与执行权限,于是赶快给php.ini文件赋iis_web组的读与执行权限。再执行,还是看到“您未被授权查看该页”错误页。单独对iis站点用户赋权限也还是不行。
[注]iis_web组是所有web站点用户的组,没有赋什么特殊权限,只对各自iis站点目录赋相应权限。这也是“最小权限”原则。
好像之前没有遇到这样的问题。仔细分析一下,该站点下的.asp文件,html文件都可以正常运行,但就是php提示没有权限。可以肯定,这里的错误跟iis本身没关系,问题还是在于php配置。
准备一项一项的试。
首先给php.ini赋everyone读与执行的权限,不对。删除该权限(目的:尽量不多赋权限 –安全方面还是要发扬一毛不拔的精神!)
对php5目录赋everyone读与执行权限,运行,正常了,可以看到正常的配置信息。
运行是正常了,但给everyone赋了执行权限,总是感觉不大安心。于是删掉该权限,找“最小权限”。
执行phpinfo.php,还是可以正常显示信息。以为是浏览器缓存,在地址栏里加了个?sdfdsgewf还还是可以正常访问的。原因是模块安装php,php.ini只在启动时读取一次,接下来就不需要了。于是命令行里运行iisreset重启iis,再访问,果然看到“您未被授权查看该页”的消息了。
感觉php运行时,需要使用php5目录下的相关文件,需要有相关权限,于是给users组赋读与执行的权限,这下就好了。看来找到原因了,但具体是user组的哪个用户呢,查看本地用户和组里的users,里面只有如图的三个用户,到用户里找,除aspnet外两个却没有对应,看来这里是windows某个内部用户了,大概无法进一步找下去了,只好收手,保留php安装目录的users组读与执行权限。或许只给aspnet用户赋权限就可以了,但没有试,有兴趣的同学可以试试。要回去吃饭了——其实是要先吃饭再回去,都20:22了!

延伸阅读
- windows 2003 iis6 修改上传文件大小
- “常见错误 不能打开注册表关键字” 与 “Provider 错误 ’80004005′ 未指定的错误”解决手记
- web目录中文件过多或会造成iis网站访问速度严重减慢
- iis 404不用url rewrite组件也可以实现rewrite功能:原来不是很新鲜的技术
- IIS web站点流量监测监控/不借助第三方工具分别监控windows2003 IIS 6.0中每个站点的流量
- IIS配置错误"您未被授权查看该页",错误原因解析
- iis 启用gz压缩,减小网络流量,加快浏览速度
- iis 错误500.13,但web站点并没有连接数限制
- IIS多站点伪静态实现工具Ionic’s Isapi Rewrite Filter(IIRF), ISAPI Rewrite FULL的替代方案,开源免费
- PHP与Unicode签名(BOM,Byte Order Mark)
- php识别图像类型为image/pjpeg格式,pjpeg是什么?
- php程序中的编码转换
- linux下PHP 激活mbstring扩展及php.ini中相关基本设置
- 为windows下php5.2安装memcache等扩展/及扩展官方下载
- php与asp/vbscript对input表单数组的处理比较
0 条评论。