⑴ php以fastCGI的方式运行时文件系统权限问题及解决方法
在IIS7.0上以FastCGI方式配置好PHP运行环境,测试可以正常运行PHP程序后,将PHP程序部署上去,导入程序原来的数据和配置信息。很快就有问题出来啦下面我们就详细记录下。
今天准备将一个php
demo放在IIS下运行,网站在IIS下的配置是这样的:
应用程序池是集成模式下的.net
framework
2.0(2.0或4.0没什么关系,因为php以fastCGI的方式在跑),
应用程序池标识配置为IIS内置的NETWORKSERVICE,
使用的认证方式为匿名身份验证。
打开本地的网站,访问php页面,
出现了500错误。
好吧,是权限问题,最简单的解决办法是把C:的权限设成Everyone,
并允许完全控制:
重新访问php页面,成功了:
上面的方法是够简单,但也太不安全了,平时本地搭个demo这样做没问题,真正上线的时候,这样做迟早出问题的。
于是重新设置,把该目录下的只读权限赋给NETWRORKSERVICE帐号再试一下
不过问题还是没有解决,访问的时候,出现了401错误
错误信息中包括显示登录用户为匿名,检查了网站下的身份验证(再点击
匿名身份验证->编辑),原来网站默认情况下,在登录方法为匿名时,使用的默认登录用户为IUSR(就是我们看到的匿名登录用户了)
那么解决办法就是:
1.
将IUSR设置为C:的读权限,类似之前对NETWORKSERVICE的设置。
2.
或选择使用应用程序池标识即可。
经试验,方法1与2都成功。
Note:NETWORKSERVICE在IIS7中隶属于iis_iusers用户组,之前对NETWORKSERVICE的设置也可以改为对iis_iusers的设置,同样也可以解决问题,只是权限被进一步放宽了而已。
以上所述就是本文的全部内容了,希望大家能够喜欢。
⑵ IIS6.0 IIS7.5应用程序池自动停止怎么办
在日志中发现IIS7.5的应用程序池自动停止,同时访问网站提示:HTTP Error 503,The service is unavailable.. 的错误,搜遍整个互联网总算是解决了问题。小编也整理了IIS6及IIS7.5遇到此类问题汇总解决方法,欢迎大家尝试。
关于IIS6的(适于IIS7)解决方法
描述:
iis6应用程序池被自动禁用问题 Service Unavailable 应用程序池 'DefaultAppPool' 被自动禁用,原因是为此应用程序池提供服务的进程中出现一系列错误。应用程序-特定 权限设置未将 COM 服务器应用程序(CLSID 为 .............
1.首先是打开IIS管理器.检查应用程序池,果然"DefaultAppPool"出错了.而且不是平常的停止的图标.
2.试着重启"DefaultAppPool"应用程序池,一浏览页面马上就关闭.
3.到了查看事件日志的时候了.发现了以下这类的日志
事件类型: 警告
事件来源: W3SVC
事件种类: 无
事件 ID: 1009
日期: 2008-6-24
事件: 16:12:33
用户: N/A
计算机: MAIL
描述:
为应用程序池 'DefaultAppPool' 提供服务的进程意外终止。进程 ID 是 '3160'。进程退出代码是 '0xffffffff'。
4.会不会是默认的程序池出问题了?于是,尝试新建一个新的程序池.将默认网站的程序池改成新的.但是问题依旧.出现相似的日志.
事件类型: 错误
事件来源: W3SVC
事件种类: 无
事件 ID: 1002
日期: 2008-6-25
事件: 14:17:04
用户: N/A
计算机: MAIL
描述:
应用程序池 'AppPool #1' 被自动禁用,原因是为此应用程序池提供服务的进程中出现一系列错误。
5.再查找事件日志另一个日志引起了我的注意.如下:
事件类型: 错误
事件来源: DCOM
事件种类: 无
事件 ID: 10016
日期: 2008-6-24
事件: 16:12:33
用户: NT AUTHORITY/NETWORK SERVICE
计算机: MAIL
描述:
应用程序-特定 权限设置未将 COM 服务器应用程序(CLSID 为
{A9E69610-B80D-11D0-B9B9-00A0C922E750}
)的 本地 激活 权限授予用户 NT AUTHORITY/NETWORK SERVICE SID (S-1-5-20)。可以使用组件服务管理工具修改此安全权限。
6.有点戏了.看看CLSID 为 {A9E69610-B80D-11D0-B9B9-00A0C922E750}是什么服务先.最后在下面的注册表项中找到它:
HKEY_CLASSES_ROOT/AppID/{A9E69610-B80D-11D0-B9B9-00A0C922E750}
7.名字刚好是"IIS Admin Service"
8.好了,找到是什么了.从"管理工具"中打开"组件服务",找到IIS Admin Service对比一下CLSID是否一致
9.确定是这个以后,接下来的就是为它增加NETWORK SERVICE权限了.
A启动和激活权限,点击"自定义"..
B.在用户列表中添加"NETWORK SERVICE",
C.并给予本地启动和激活权限,保存退出.
另外,如果还是有问题,把“IIS wamreg admin SERVICE”也这样操作一下,右健选择“属性”,找到“安全”,在“启动和激活权限”中编辑“自定义”,添加帐号
network service network service 分别给本地启动和激活权限。
2014年2月18日再补充:今日有网友向小编反馈他的解决方法,就是在Windows server 2008 R2 64位下使用PHP5.5.x版本,不用以上设置,也解决了此问题。
到此问题解决。
也有朋友提到,选项无法编辑,为灰色,应该怎么办?
这个是win2008 R2 x64的安全特性.一些核心系统组件只能允许本地帐号,TrustedInstaller有完全控制权限,而不是本地管理员组
要在Windows Server 2008 R2 上修改 “IIS Admin Service” ,你需要授予本地管理员组有注册表权限:
1.在组件管理器中查到IIS的appid
2.使用regedit,定位到HKEY_CLASSES_ROOTAppID{刚查到的ID}”
3.右键点击{刚查到的ID},选权限
4.在权限设置窗口中点高级,选择所有者标签,选中administrators为所有者
5.授予administrators组有读/写等所有权 注意:务必不要修改TrustedInstaller的权限
现在,重新执行组件管理器,可以修改权限了
⑶ iis如何运行php
1.首先
我们需要安装好IIS,默认windows2008下是iis7.0,具体的安装可以查看iis7.0安装图解
2. 安装好IIS后,默认已经支持asp,这里我们开始安装.net环境
进入系统,打开桌面左下角“服务器管理器”
点击功能->"添加功能"->勾选“.NET Framework 3.5.1功能”
点击下一步,安装完成即可。
3. 接下来配置PHP环境,从常用软件下载php5.2.6和php.ini文件
下载后,将php5.2.6解压为php,并将php.ini拷贝到php里面,这里我们将php放置在C:Program Files目录下,
并用记事本打开php.ini文件,找到extension_dir这一行,将路径修改为ext文件所在路径,我们这里为 C:Program Filesphpext
设置php文件夹目录权限:
administrators 完全控制
system 完全控制
users 读取和运行,列出文件夹目录,读取
设置系统环境变量:
Path环境变量末尾追加C:Program Filesphp
新建系统变量PHPRC变量值C:Program Filesphp
IIS设置:
A.添加应用程序池
E.将站点进程池设置到创建的php进程池内,重启IIS,在默认站点下创建一个info.php,内容如下:
<?php
phpinfo();
?>
打开localhost/phpinfo.php 查看效果:
到这里PHP环境配置完成。
额外注意:
IIS+php 运行phpMyAdmin
Cannot start session without errors, please check errors 错误解决办法
在php安装目录 找到php.ini
将php.ini中的session.auto_start的值改为1(启动),默认是0(禁用),
在你的php安装目录下找到php.ini并且在该目录下创建Temp文件夹
; where MODE is the octal representation of the mode. Note that this
; does not overwrite the process's umask.
;session.save_path = "D:/host/php/Temp"
session.save_path 这一行,设成session.save_path = “D:/host/php/Temp” (把前面分号去掉)
然后重启IIS服务器
在phpmyadmin中找到,config.sample.inc.php,改成config.inc.php,
找到 $cfg['blowfish_secret'] 将后面的赋值,加入数字和字母组合。
⑷ 服务器php怎么用iis7配置
方法一、安装使用phpmanager
1.下载安装phpmanager,
2.创建并配置php.ini。将php.ini-development文件改名为php.ini,修改date.timezone=”Asia/Shanghai”。去分号开启所需的扩展,这里不赘述。
3.打开IIS7,在主面板中双击phpmanager,然后点击其中的”Register new PHP Version”,选择你的php-cgi.exe,确定。剩下其它的配置它将给你自动设置好。
4.完成!
方法二、手动配置cgi模式(php5.3)
1.创建并配置php.ini,同上2。
2.打开IIS7,在主面板中双击处理程序映射,然后在右侧菜单中点击“添加模块映射…”,设置如下:
请求路径:*.php;
模块:FastCgiMole;
可执行文件:你php文件夹中的php-cgi.exe;
名称:php;
3.完成!
方法三、手动配置isapi模式(php5.2)
1.创建php.ini。php.ini-dist改名为php.ini,打开找到extension_dir=”/”,把路径改为你的php所在路径。
2.添加一个应用程序池,设置如下:
名称:php;
.net framework版本:无托管代码;
托管管道模式:集成
勾选立即启动应用程序池。
确定。
3.双击ispa和cgi限制。添加一个限制,设置如下:
ISAPI或CGI路径: 你的php5isapi.dll。
描述:php。
勾选允许执行扩展路径。
确定。
4.添加一个isapi筛选器,设置如下:
筛选器名称:php;
可执行文件:你的php5isapi.dll文件;
确定。
5.添加脚本映射。 双击处理程序映射, 点击右侧菜单的“添加脚本映射…”,设置如下:
请求路径:*.php;
可执行文件:你的php5isapi.dll文件;
名称:php5;
确定。
6.完成!