服务器配置篇━━iis7配置php出现fastcgi的500错误,LocalSystemL。。。遇到的问题及解决办法:
最近在IIS7上配置PHP,但总是提⽰500错误,以往是因为 framework版本弄错,但这次不是,到这篇⽂章《》
错误提⽰
修改该⽹站所对应的应⽤程序池
进程模型 -> 标识 修改为:LocalSystem
这⾥是简单粗暴的解决办法,即把权限交给最⾼标识 LocalSystem ;
但如果你希望标识维持 ApplicationPoolIdentity ,那么可以参考下⾯知识点第⼀条中的 4.ApplicationPoolIdentity(应⽤程序池标识) ,到相关⽬录配置⼀个应⽤程序池对应的账号,再对该账号授权。
知识点
参考本⽂《》
* 标识说明
1.Local System(本地系统)
该账户具有相当⾼的权限。
⾸先,该账户也⾪属于本地Administrators ⽤户组,因此所有本地Administrators⽤户能够进⾏的操作该账户也能够进⾏。
其次,该账户还能够控制⽂件的权限(NTFS ⽂件系统)和注册表权限,甚⾄占据所有者权限来取得访问资格。如果机器处于域中,那么运⾏于Local System账户下的服务还可以使⽤机器账户在同⼀个域林中得到其他机器的⾃动认证。
⽹上版本域林都写成了森林,搞了半天没搞明⽩,现在看来应该是指域林,学习参考:《》,《》
最后⼀点就是运⾏于Local System下的进程能够使⽤空会话(null session)去访问⽹络资源。⽽且,
其他⼀些Windows ⽤户模式下的核⼼组件也运⾏于该账户下,例如 等。需要注意的是,运⾏于此账户下的进程使⽤的是HKEY_USERS/.Default 账户配置,因此它不能够访问其他账户的配置。
举例来说,以LocalSystem账户运⾏的服务主要有:WindowsUpdate Client、Clipbook、Com+、DHCP Client、Messenger Service、Task Scheduler、Server Service、Workstation Service,还有Windows Installer。
2.Local Service(本地服务)
Local Service账户是预设的拥有最⼩权限的本地账户,并在⽹络凭证中具有匿名的⾝份。
运⾏于此账户下的进程和运⾏于Network Service账户下的进程的区别在于运⾏于Local Service账户下的进程只能访问允许匿名访问的⽹络资源。运⾏于Local Service下的账户使⽤的配置⽂件是HKU/S-1-5-19和Documents and Settings/LocalService。
举例来说,以Local Service账户运⾏的服务主要有:Alerter、Remote Registry、Smart Card、SSDP,还有WebClient。
3.Network Service(⽹路服务)
该账户也是为了使⽤机器账户在⽹络上的其他计算机上认证⽽设定的。但是他没有Local System那么多的权限。它能够以计算机的名义访问⽹络资源。以这个账户运⾏的服务会根据实际环境把访问凭据提交给远程的计算机。
运⾏于此账户下的进程使⽤⽹络账户配置⽂件HKEY_USERS/S-1-5-20和Documents and Settings/NetworkService。
举例来说,以Network Service账户运⾏的服务主要有:Distributed Transaction Coordinator、DNS Client、Performance Logs and Alerts,还有RPC Locator。
4.ApplicationPoolIdentity(应⽤程序池标识)php的工作流程
参考:《》
ApplicationPoolIdentity – 默认情况下,选择“应⽤程序池标识”帐户。启动应⽤程序池时动态创建“应⽤程序池标识”帐户,因此,此帐户对于您的应⽤程序来说是最安全的。
也就是说"ApplicationPoolIdentity"帐号是系统动态创建的“虚拟”帐号(说它是虚拟的,是因为在⽤户管理⾥看不到该⽤户或⽤户组,在命令⾏下输⼊net user也⽆法显⽰,但该帐号⼜是确实存在的)
IIS7.5的虚拟帐号设计确实很棒,想想传统IIS6的时候,为了把同⼀服务器上的各站点权限分开(以防⽌⽊马捣乱),不得不创建⼀堆iuser_XXX,iwam_XXX帐号并指定密码,再⼀个个站点分配过去,累死⼈!⽽虚拟帐号设计则让这类管理轻松多了,也不⽤担⼼密码过于简单或过期问题。
* IIS 和内置帐户
以下是 IIS 使⽤的内置帐户、IIS 特定的帐户及其关联的⽤户权限的列表。
名称内容
本地系统内置帐户,该帐户具有较⾼的访问权限级别。如果⼯作进程标识作为“本地系统”帐户运⾏,则该⼯作进程具有整个系统的完全访问权限。
⽹络服务内置帐户,该帐户的系统访问权限⽐“本地系统”帐户少,但仍能通过⽹络与计算机帐户的凭据进⾏交互。对于 IIS 6.0,建议以“⽹络服务”帐户的⾝份运⾏为应⽤程序池定义的⼯作进程标识。默认情况下,该⼯作进程标识以“⽹络服务”帐户的⾝份运⾏。
默认⽤户权限:
- 替换进程级令牌 (SeAssignPrimaryTokenPrivilege)
- 调整进程的内存配额 (SeIncreaseQuotaPrivilege)
- ⽣成安全审核 (SeAuditPrivilege)
- 忽略遍历检查 (SeChangeNotifyPrivilege)
- 从⽹络访问此计算机 (SeNetworkLogonRight)
- 作为批处理作业登录 (SeBatchLogonRight)
- 作为服务登录 (SeInteractiveLogonRight)
- 允许本地登录 (SeInteractiveLogonRight)
本地服务内置帐户,该帐户的计算机访问权限⽐“⽹络服务”帐户少,并且该帐户的⽤户权限仅限于本地计算机。如果⼯作进程不需要访问所在服务器之外的地⽅,则可以使⽤“本地服务”帐户。
默认⽤户权限:
- 替换进程级令牌 (SeAssignPrimaryTokenPrivilege)
- 调整进程的内存配额 (SeIncreaseQuotaPrivilege)
- ⽣成安全审核 (SeAuditPrivilege)
- 忽略遍历检查 (SeChangeNotifyPrivilege)
- 从⽹络访问此计算机 (SeNetworkLogonRight) - 作为批处理作业登录 (SeBatchLogonRight)
IIS_WPG IIS 组帐户,只给该帐户指派了在 Web 服务器上启动和运⾏⼯作进程所需的最低权限和⽤户权限。
默认⽤户权限:
- 忽略遍历检查 (SeChangeNotifyPrivilege)
- 作为批处理作业登录 (SeBatchLogonRight)
- 从⽹络访问此计算机 (SeNetworkLogonRight)
IUSR_computername 具有 IIS 匿名访问权限的 IIS 帐户。默认情况下,当⽤户访问⼀个设置为匿名验证的⽹站时,就会将该⽤户映射到IUSR_comptername 帐户。⽤户具有与该帐户完全相同的⽤户权限。
默认⽤户权限:
- 从⽹络访问此计算机 (SeNetworkLogonRight)
- 忽略遍历检查 (SeChangeNotifyPrivilege)
- 作为批处理作业登录 (SeBatchLogonRight)
- 允许本地登录 (SeInteractiveLogonRight)
IWAM_computername 可在 IIS 5.0 隔离模式下启动进程外应⽤程序的 IIS 帐户。
默认⽤户权限:
- 替换进程级令牌 (SeAssignPrimaryTokenPrivilege)
- 调整进程的内存配额 (SeIncreaseQuotaPrivilege)
- 忽略遍历检查 (SeChangeNotifyPrivilege)
- 从⽹络访问此计算机 (SeNetworkLogonRight)
-
作为批处理作业登录 (SeBatchLogonRight)
ASPNET ⽤于在 IIS 5.0 隔离模式下运⾏ Microsoft ASP.NET ⼯作进程的内置帐户。
默认⽤户权限:
- 从⽹络访问此计算机 (SeNetworkLogonRight)
- 作为批处理作业登录 (SeBatchLogonRight)
- 作为服务登录 (SeInteractiveLogonRight)
- 拒绝本地登录 (SeDenyInteractiveLogonRight)
- 拒绝通过终端服务登录 (SeDenyRemoteInteractiveLogonRight)
名称内容
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论