问题杂编 ━━ windows2016安装php8.1及mysql8出现的问题汇总简直就是*#*o#

本以为按照正常程序走就完了,结果遇到各种各样的问题,最终只能妥协用低版本成交。这里把所有问题的出现和解决整理出来,避免下次再遇到类似问题。

安装mysql8失败

安装mysql8之后,提示service无法启动,删了重装多次都不行,最终只能安装mysql5解决。。。
而且原因并未找到,log提示尝试无密码连接失败

mysql备份恢复失败

恢复备份时只恢复了表结构,表数据并未恢复,需要找到php.ini,将max_allowed_packet值变大

# The maximum size of one packet or any generated or intermediate string, or any parameter sent by the
# mysql_stmt_send_long_data() C API function.
max_allowed_packet=50M

安装php8.1.9失败

*#*o#

难得那么火大,一个简单的包,本机8.1.3还没问题,8.1.9遇了鬼了,这里一个个说来。

正常安装方法见文章:PHP开发日志 ━━ IIS7安装PHP8.0及多个版本如何同时存在一台服务器

fastcgi崩溃

这个问题竟然在2年前就写过文章,但因为近2年没遇到这个问题,所以给忘了~~~

在这里插入图片描述

首先排除.net framework版本不正确。
其次把程序池的进程模型 -> 标识 修改为:LocalSystem

具体分析见文章
服务器配置篇 ━━ iis7配置php出现fastcgi的500错误,LocalSystem/LocalService/NetworkService/ApplicationPoolIdentity
iis + php 遇到问题:php-cgi.exe - FastCGI 进程意外退出

php8.1组件gd出错

  • 与原代码不兼容的地方太多,比如浮点32.142857142857146到int的隐式转换将丢失精度不再支持对整个 $GLOBALS 数组的写访问mt_srand()不为必须等;
  • 问题也太多,连gd组件都会出错,提示函数imagecreate()不存在。

那就不用多说了,这个版本肯定不能使用,为了求稳,最终选择了php8.0版本使用

PHP Deprecated: Implicit conversion from float xxx to int loses precision
从 PHP 8.1.0 起,不再支持对整个 $GLOBALS 数组的写访问

删除某些windows角色和功能后各功能崩溃,提示缺少mscoree.dll

因为在各种配置测试的时候安装了一些不需要的Windows功能,所以在使用mysql5和php8.0网站能正常打开后,决定把自认为不需要的功能都给删了重启试试,其中包括.net framework 3.5和4.5,结果。。。

powershell服务器管理器IIS启用或关闭Windows功能等等都打不开,提示缺少mscoree.dll

在这里插入图片描述

唉,自作孽不可活啊。

网上找了各种版本的mscoree.dll复制到c:\windows\system32目录里都无法正常启动,后来找到这篇文章才成功
运行Windows终端(PowerShell)提示由于找不到mscoree.dll无法继续执行代码》。

在这里插入图片描述

  • 方法一(本机测试失败):

1、首先新建一个文本文档,打开新建文本文档,将下面代码复制进去:

start /w pkgmgr /iu:Microsoft-Windows-NetFx3-OC-Package
start /w pkgmgr /iu:Microsoft-Windows-NetFx4-US-OC-Package
start /w pkgmgr /iu:Microsoft-Windows-NetFx3-WCF-OC-Package
start /w pkgmgr /iu:Microsoft-Windows-NetFx4-WCF-US-OC-Package

2、点击“文件”–“另存为”;

在这里插入图片描述

3、将保存类型修改为【所有文件】,然后将文件名修改为“.bat”,点击【保存】;
4、右键 .bat -选择“以管理员身份运行”即可!

等待命令框读取完成后重启一次计算机就可以完成修复了!

  • 方法二(可行):

使用cmd,依次运行以下命令:

dism /online /enable-feature /featurename:netfx3 /all
dism /online /enable-feature /featurename:WCF-HTTP-Activation
dism /online /enable-feature /featurename:WCF-NonHTTP-Activation

有可能在运行第二第三条命令时会提示需要先安装父功能

即使用 dism /online /enable-feature /featurename:WCF-HTTP-Activation /alldism /online /enable-feature /all /featurename:WCF-HTTP-Activation 都可以

在这里插入图片描述

那么此时依次执行的命令为:

dism /online /enable-feature /featurename:netfx3 /all
dism /online /enable-feature /featurename:WCF-HTTP-Activation /all
dism /online /enable-feature /featurename:WCF-HTTP-Activation
dism /online /enable-feature /featurename:WCF-NonHTTP-Activation

如果第一步命令执行后就去打开IIS等,很可能已经不再提示缺少.dll,而是提示需要NET FRAMEWORK V 4.0.30319启用,但安装时又可能提示不能安装~~

我在第一步命令后成功下载安装过.net framework 4.8,但并没有什么用。

如何使用DISM命令行工具修复Windows 10映像
NET FRAMEWORK V 4.0.30319 to download
Microsoft .NET Framework 4 KB2468871
Microsoft .NET Framework 3.5 Service pack 1 (Full Package)

相关文章

学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习...
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面...
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生...
Can’t connect to local MySQL server through socket \'/v...
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 ...
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服...