Win2012+IIS安装WordPress过程记录

一、配置环境

1、操作系统:Windows Server 2012
2、IIS 8.5,系统自带
3、PHP:7.4.33-nts-Win32-vc15-x64
4、MySQL:8.0.31
5、wordpress:6.1

二、官方指导书

腾讯云:手动搭建WordPress个人站点(Windows)
注意,所有教程都很完美,除了一条:请勿按教程安装x86(32位)的php!请安装x64版本的php!原因见后文。

三、遇坑及解决方案

1、请安装php的64位nts版本,32位版本已确认会遇到strtotime()函数位数不一致问题,症状表现为非常迷惑人的500 error。
2、不要使用Windows Server 2012自带的IE浏览器,否则安装主题、插件各种出错。应安装最新版本的Chrome来测试。
3、php.ini中,不要忘记将:

extension=mysqli
extension_dir = "ext"
这两行前面的;去掉。
4、重视WordPress的站点健康功能。默认情况下,php没有勾选必要的extensions,将导致安装所有插件失败。请根据站点健康提示,将php.ini中的:
extension=curl
extension=fileinfo
extension=gd2
extension=intl
extension=mbstring
extension=exif
extension=openssl
这些插件都打开。
5、如何安装imagick插件?简便的方式是访问:php-windows-imagick下载地址,找到对应php版本的压缩包,解压缩后,按说明将php_imagick.dll拷贝到php\ext文件夹,再将其他dll文件拷贝到php根目录。之后,请在php.ini的一大堆extension=xxx后面增加一行:extension=php_imagick.dll
6、如何测试imagick正常运行?在wordpress网站目录中新建test.php,内容如下:

<?php
$image = new Imagick();
$image->newImage(1, 1, new ImagickPixel('#ffffff'));
$image->setImageFormat('png');
$pngData = $image->getImagesBlob();
echo strpos($pngData, "\x89PNG\r\n\x1a\n") === 0 ? 'Ok' : 'Failed';

访问该页面看到“OK”说明插件安装成功。
7、选用经典编辑器后,无法上传图片。请赋予c:\windows\temp文件夹对everyone的“修改”权限。
8、WordPress提示无法自动更新某些文件。请赋予WordPress文件夹相应的安全权限。