Windows2008R2 安装 PHP7.4.30 必须 LocalSystem 启动应用程序池 不然500错误 FastCGI 进程意外退出

之前也是 Windows2008R2 安装 PHP7.3 很顺利,
Win2008 IIS7.5安装配置PHP7.3.2步骤:https://www.cnblogs.com/kjcy8/p/10782839.html

 

这次是一样系统,换了一台机器

安装好命令行测试 php --version

提示缺少 "xxxx.dll" ,根据之前的经验应该是缺少VC++运行库,下载 Microsoft Visual C++ 2017 Redistributable 装上顺利解决。

配完IIS站点,浏览器访问报 500 错误

开启详细错误后,能显示具体的错误信息:500 FastCGI 进程意外退出

百度后找到解决方法,应用程序池-高级设置-进程模型 中的选项“标识”中,默认是"ApplicationPoolIdentity" 切换成"LocalSystem" 顺利解决。

但是 LocalSystem 权限太高了,估摸着是权限配置问题,继续百度了一圈 谷歌了一圈 没有搜到有用的信息。

试着换低版本,PHP7以下版本都没问题 不需要 LocalSystem 权限,之前PHP7.3一点问题没有,系统也是Windows2008R2,VC++运行库也装了,php --version 也没问题,怎么就不行了呢

后面看到这篇 https://www.php.cn/topic/php7/483973.html 说:
PHP 7.4 (包括PHP7.4.5)是使用 Visual Studio 2019 建立的,那就需要VC++ 2019的运行库

就装了这个 2015-2022的合集,https://docs.microsoft.com/zh-CN/cpp/windows/latest-supported-vc-redist?view=msvc-170

顺利解决。

 

我去官网确认

VC15是 Visual Studio 2017 编译,VC15和VS16版本需要安装Visual C++Redistributable for Visual Studio 2015-2019

早期版本确实是 Visual Studio 2019 编译的,现在已经切回 Visual Studio 2017,那我安装 Visual C++ 2017 Redistributable 应该就够了。

现在虽然问题解决了,还是没搞明白,为什么以 LocalSystem 权限启动应用程序池就没问题?

 

posted @ 2022-07-02 17:23  kjcy8  阅读(405)  评论(0编辑  收藏  举报