我最近发现访问 hexo+vue 博客的速度是越来越慢了,甚至往往有卡不出来页面的情况,于是心血来潮,将博客转移到了动态网站,Microsoft Azure 有 200 美元的试用期(但是后来发现 200 美元用的太快了ヽ༼⁰o⁰;༽ノ),故暂时选择了它。在配置虚拟机时因为我还有其他用途,所以我就选择了 Windows Server 服务器。
本来计划继续使用宝塔面板的,可是后来我发现 Windows 并不是很适合运行宝塔和 nignx,常常会有大大小小的报错。考虑到未来要套 Azure 的 CDN,继续折腾过于麻烦,就想起来同为微软门下的 Internet Information Services (IIS) 10!
简单的翻阅了一下它的文档,貌似在步入 10.0 版本后就进入了缓慢更新,是在 Server 2016 版本的携带的。当然,这并不重要,你可以质疑 IIS 的更新速度,但不可以质疑 IIS 的能力。
1. 配置 IIS
Windows 设备选择 “打开或关闭 Windows 功能”,Windows Server 在 “服务器管理器” 选择 “添加角色和功能”,然后勾选 Web Server (IIS) 功能,同时务必勾选其下的 CGI 模块 。
WordPress 是基于 php 开发的,所以选择以 fast-cgi 的方式运行 php 程序。在这里,我们需要准备 php 的压缩包(推荐 8.0 版本及以上)并解压,WordPress 需要的 php 插件众多,可以在 所需插件 查看。然而一个一个手动编译插件太麻烦了,我从先前的宝塔试验中“借”了一个已经配置好的 php,并打包成了压缩包,大家可以在 php 8.1.16 直接下载解压,无需再次配置文件。
接下来打开 IIS 管理器,中间窗口选择“处理程序映射”,然后最右边选择“添加模块映射”。可执行路径请选择 php 路径中的 php-cgi.exe,模块填入 FastCgiModule,请求路径为 *.php,名称任意。
若弹出了对话框,请选择“是”。
接下来返回上一步,选择 “默认文档”,然后 “添加”,名称填写 index.php 。
你正在成功!
接下来在左侧栏选择 网站,然后 添加网站。网站名称和物理路径都可以自定义,下方绑定栏暂时先不做处理,方便调试。
2. 部署网站
首先,请自行配置 MySQL 数据库,可以参阅文档:https://dev.mysql.com/doc/。
然后下载 WordPress 压缩包:https://cn.wordpress.org/download/,并解压在上文配置的文件夹中。
这时候可以在 IIS 启动并初始化网站了。
3. 后期维护
i. URL 重写
当在 WordPress 中设置 “固定链接” 时,iis 会抛出 404 错误,此时我们需要安装 URL 重写模块(https://www.iis.net/downloads/microsoft/url-rewrite,页底下载)
然后打开与 WordPress 文件位于同一目录中的web.config 文件(没有请创建),将以下 XML 部分复制并粘贴到 system.webServer 元素中:
<rewrite>
<rules>
<rule name="Main Rule" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="index.php" />
</rule>
</rules>
</rewrite>
这时候保存,然后重启网站即可。
ii. 更新
经过测试,我发现 WordPress 的更新不能很好的在 iis 上工作,可以通过以下方法更新:
解压 WordPress 安装包,删除 wp-include 文件夹,然后复制到网站目录替换已经存在的文件即可。