技术源于努力
努力实现梦想

IIS7站点配置完全隔离权限

在设置IIS中的php的时候,如果使用了cgi模式的模块映射,就必须要将网站的站点池改成32位,另外,php的运行是需要安装vc库文件的,5.45两个版本需要安装vc2008,5.6需要安装vc2012,7.0以上的版本需要安装vc2014_2015的版本,不然运行就会报错
IIS8中的手动建站权限设置:由于为了让所有的站点都尽可能完全隔离,所以就需要到IIS上的站点进行权限设置,但是权限设置的交叉会有很多的过程,特别注意一下过程
1、建立一个用户组clients,用来将所有的站点运行用户都设置到该clients组和IIS_IUSRS组(这是IIS运行默认用户组)中,再建立一个用户,并设置登陆密码,将其所属组设置成新建立的用户组clients和IIS_IUSRS组中
2、选择一个目录作为站点根目录,这里要注意:根目录及根目录的上一级需要特殊的权限设置,一般来说取消上一级目录的继承权限,包括下边的所有目录继承权限都取消,只将administrators组权限完全控制授予上一级目录即可,网站根目录一样,取消权限继承,只授予administrators组和运行该站点的用户以完全控制即可
3、将php所有的windows版本都设置归集到一个目录phps目录下,并将该目录设置权限administrators组、system用户 完全控制;设置一个everyone只需要读写执行权限即可(不用完全控制权限),或者设置IIS_IUSRS组为可读可写执行权限也行
在网上搜了下,如果出现了没有指定文件的报错
4、现在进入IIS中,建议一个站点:这里一定要注意三处权限设置,哪一处没有设置都不能正常加载站点:a、建立站点、在添加应用程序池的时候要选择单独的程序池程序,而不是用默认的default程序池,且在建立站点的时候选择传递身份验证的是运行该站点用户,也就是第一步建立的用户;b、建立好站点后,需要改一下本站点的身份验证,身份验证默认是IUSR用户(IIS的默认用户),但是该用户对站点根目录没有权限,所以访问站点就会报错验证错误,将其改成第一步建立的用户,这里也是需要验证用户名和密码的;c、最重要:IIS前端设置是在站点中设置的,后端程序端都是统一放到应用程序池中的,一个请求的接收和处理都是该程序在处理,如果该应用程序暂停了,访问站点就会报错503,服务不存在,而该程序池也是有运行用户的,默认情况下该程序池的标识是内置账户:ApplicationPoolIdentity ,这里是必须要改的,不然该程序池调用PHP扩展的时候,会报错没有指定文件的错误.路径是:程序–高级设置–进程模型–标识–修改成对应的站点运行用户(就是第一步建立的用户)
5、由于windows下的PHP扩展使用cgi模式,需要使用32位的兼容,所以必须要将站点池启用32位兼容,在程序–高级设置–常规–启用32位应用程序,改成true即可
站点建立后,就可以去创建一个phpinfo的探针文件,访问即可
注意:在部署PHP5.3的时候提示time区间问题,可将php.ini中的date.timezone取消注释,并设置成date.timezone =UTC即可
注意:php5.2是使用的isapi的dll映射方式,如果不使用配置环境变量,那么在php加载配置文件的时候,会出现加载不上配置文件的情况,需要在系统环境变量path中加入php5.2的根路径,同时建立一个PHPRC的变量,变量值就是PHP5.2的根路径,这样就能让php5.2加载上php.ini配置文件
一旦在系统环境变量中添加了PHPRC的变量,那么php5.2以外的其他版本都会去加载该配置文件,如果需要PHP加载自己的配置文件,那么需要在IIS的全局变量中FastCGI设置中,选择php5.2之后的版本–编辑—环境变量–添加成员–变量名是PHPRC,对应值就是对应php的根路径,这样就解决了其他版本的主机去读取系统的PHPRC变量了,而系统的phprc变量是5.2的路径,7.0之后的版本是不能加载该配置文件的。

赞(0) 感谢小主打赏
未经允许不得转载:新域软件科技 » IIS7站点配置完全隔离权限
分享到: 更多 (0)

相关推荐

  • 暂无文章

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏