分类
服务器部署

解决apache内存占用过高的问题

Windows 服务器上的 Apache2.4 占用内存过高,在没有什么请求的情况下,启动服务没一会就占用300多M。

解决办法:

打开httpd.conf,把Include conf/extra/httpd-mpm.conf前面的注释掉去(如下图),重启服务即可。

去掉前面的注释

这样修改后,Apache会使用httpd-mpm.conf里面的配置,当然,也可以在里面进行更精细的调优。重启服务之后,可以看到内存占用是正常的,内存大小随负载的增高而变化。

apache内存占用恢复正常
分类
WordPress

WordPress 上传文件出错

在 IIS8.5 中运行 WordPress 时,遇到上传图片出错的问题:此响应不是合法的 JSON 响应。

按 F12 打开开发者工具看了一下,原来是在上传完成图片后返回的 JSON 头部,多一段 HTML 代码:

<head><title>文档已移动</title></head>
<body><h1>对象已移动</h1>可在<a HREF="http://www.ilinshu.cn/wp-json/wp/v2/media/448">此处</a>找到该文档</body>

真正的 JSON 数据在这段 HTML 后面。

经过多方查找资料,得知这段代码是 IIS 插入的,但是目前没有明确的方法来禁止 IIS 的这一行为。微软曾经提供过一个hotfix,但是已经不再维护了,不适用于 IIS8.5 。微软推荐的解决办法是升级到最新的 Windows 版本,使用 Windows10 或最新的 Windows Server 版本。

话是这样说,但是升级的话,硬件要求最低要2G内存才行,增加了多余的经济负担(主要还是因为穷~)。其实我早就想完全换到 Linux ,但这是不可能的,因为还有一些服务需要 Windows Server 来运行。

其实目前来说,仅有的一个方案就是切换到 Apache,Apache 反向代理 IIS ,统一提供对外的 Web 服务。IIS 只运行 ASP.NET 应用,PHP 通过 Apache 来运行。

方案是可行的,唯一的缺点就是网站的部署稍微麻烦了一点,不过还算可以接受。

参考链接:

https://core.trac.wordpress.org/ticket/46311

https://stackoverflow.com/questions/10594225/prevent-iis-from-changing-response-when-location-header-is-present

https://stackoverflow.com/questions/12074730/w7-pro-iis-7-5-overwrites-php-location-header

https://forums.iis.net/t/1234223.aspx?Python+REST+API+Status+201+Create+IIS+Adds+HTML+To+JSON+Response

2021.11.19更新:目前整个服务器按上面的进行调整部署,现在 WordPress 上传文件的问题已经解决,一切正常平稳运行!

测试了阿里云的 Windows Server 2019,内存占用太高,2G 内存不怎么够用。