修复一个 PHP 配置故障

    故障现象:

    在 Windows Server 2003+IIS6.0 环境下,原先配置好的 PHP5.0.4 可以正常工作。但在同一台机器上,Apache2.2.8+PHP5.2.5下正常运行的代码,在 IIS 下不能正确执行 exec() 函数。比如,exec(’cd’,$arr,$ret) 语句,其执行结果,$arr 数组的值应该是包含该语句的 php 文件做在的 Windows 路径,但结果却是“C:/Windows”文件夹。并且不能正确执行其他外部 exe 程序。

    诊断:

    IIS 配置里,已经开放 isapi 扩展允许。
    Windows/system32/cmd.exe 已经加过 IUSR_… 账户权限。
    要执行的外部 exe 程序,已经拷贝到 Windows/system32 文件夹下,也已经加过 IUSR_… 账户权限。
    网站所在的文件夹,已经赋予 IUSR_… 账户权限。

    怀疑是 PHP 版本过低,或哪里权限不够导致该问题。

    (1)升级 PHP5.0.4 到 5.2.5
    Windows 的全局 Path 变量配置指向 PHP5.2.5 文件夹。PHP5.2.5 的 php.ini 文件拷贝到 Windows 文件夹下。网站的 .php 映射指向到 PHP5.2.5 文件夹下的 php5isapi.dll。重启 IIS 后,打开网站,弹出一个提示框,提示需要输入用户名和密码,输入 Windows 的 Administrator 账户和密码后,仍不能打开网站。
    这时想到,给网站所在文件夹加上 User 账户的读取和执行权限试一下。执行该操作后,不再弹出要求账户和密码的对话框,可以打开网站的下级页面(这一步至关重要)。但不能打开首页,可能是因为首页调用了数据库连接的原因。这时能打开测试 exec() 函数的 php 页面,结果仍然不正确。
    这时怀疑是已经起作用的 PHP5.0.4 的文件和 5.2.5 相冲突。果然,在 Windows/system32 文件夹下发现原 5.0.4 的所有 .dll 文件,包括 PHP5.0.4 文件夹下和 PHP5.0.4/ext 下的 .dll 文件,都被拷贝到了这里!(注意,这不是必须的,是听信某些“教程”的教唆而这么做的。但既然拷贝到了这里,可能已经其作用了。)于是,把 IIS 和 Apache 服务关闭,把 PHP5.2.5 的所有 dll 文件也拷贝到这里(入乡随俗、如法炮制)。再启动机器–启动机器是因为让 Windows 重新加载最新的 .dll 文件。这时,PHP 因该是全套升级到了 5.2.5 版本了。

    启动机器后,报错“No input file specified”,看来有门,因为错误信息已经变化了,说明前述的配置在生效了。在网上搜索产生该错误信息的原因,提示“在 IIS 的 ISAPI 模式下出现‘No input file specified’信息,只要把 php.ini 里的 doc_root = ……注释掉就可以了”,照此提示,在 php.ini 里的 doc_root = …… 语句前加个分号,注释掉语句,再重新启动 IIS。全好了!

    注意, doc_root = …… 语句在 php.ini 里一般是“doc_root =”,就是值是空的。但因为我的 php.ini 文件是从与 Apache 配合的 PHP 文件夹拷贝过来的,可能在安装 Apache 时,Apache 赋了一个值。其实把该值设为空的,应该和和注释掉的效果相同。这里不是关键的地方,仅仅是一个小插曲而已。

    结论:

    问题解决了。但不能确定是因为给网站所在文件夹加上了 User 账户的权限,还是因为升级 PHP,而导致问题的解决的。总之,肯定是上述2个操作的某一把问题解决了,但不能确定是哪一个?应该不是因为2个操作同时起作用的吧,感觉不是,没有理由。

    还有一个收获,就是,Windows 很多问题是因为权限配置引起的,所以,告诫那些外行系统管理员,请不要随便加上或去除文件夹的的权限,从而引起系统的安全性降低和意外故障。再注意,配置系统也要做好记录,并及时测试该配置结果对系统的影响,不要哪天发现系统不对劲,还不知道是哪个配置引起的。

    张庆(网眼) 2009-7-3
    来自“网眼视界”:http://blog.why100000.com
    “十万个为什么”电脑学习网:http://www.why100000.com

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 31
    评论
新生报到系统的配置说明包括以下步骤: 1. 硬件配置:确保服务器具备足够的处理能力和存储空间来支持系统的运行。推荐使用高性能的服务器硬件,如多核处理器和大容量硬盘。 2. 操作系统选择:选择适合的操作系统作为服务器的基础。常见的选择有Windows Server和Linux发行版,如Ubuntu、CentOS等。 3. 数据库配置:选择并安装适合的数据库管理系统(DBMS),如MySQL、Oracle或SQL Server。配置数据库的参数和权限,确保系统能够正常访问和管理数据。 4. 网络配置:确保服务器能够与校园网或互联网连接,并配置网络参数,如IP地址、子网掩码和网关等。 5. Web服务器配置:选择并安装适合的Web服务器软件,如Apache、Nginx或IIS配置服务器的虚拟主机、端口和域名等,以便用户可以通过浏览器访问系统。 6. 安全配置:加强系统的安全性,包括设置防火墙、配置SSL证书、限制访问权限等。确保用户的个人信息和系统数据得到保护。 7. 系统软件配置:根据系统需求,安装并配置必要的软件和工具,如PHP、Python、Java等开发环境,以及邮件服务器、短信服务等。 8. 数据备份和恢复:定期备份系统数据,确保数据的完整性和可恢复性。同时,设置数据恢复的策略和流程,以应对意外情况和故障。 9. 系统测试和调试:在配置完成后,进行系统的测试和调试,确保各项功能正常运行。修复可能存在的问题和漏洞,确保系统的稳定性和可靠性。 以上是新生报到系统的配置说明的简要概括,具体的配置过程和步骤可能会因系统需求和环境而有所不同。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 31
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值