我一直在 Windows 机器上运行一个小型数据库 (MySQL) 和一个自制的“CMS”,有人要求我将其迁移到合法服务器 (MS SQL Server) 和更好的 CMS。我针对 MySQL 数据库在 Drupal 8 中完成了 CMS 开发工作。
现在我开始在 SQL Server 上安装所有内容,但速度非常慢。我运行的是 Apache2.4 和 PHP7.1,但运行的是线程安全版本的 PHP7。我应该使用非线程安全版本吗?“Windows 上的 Drupal”指南建议对 realpath 和 opcache 进行某些设置:
opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
realpath_cache_size=5M
realpath_cache_ttl=1800
我遵循的其中一条说明是安装 wincache。但是,wincache 仅适用于非线程安全的 PHP。我设法通过注释掉两行调用 wincache 函数的代码来解决这个问题,Drupal 确实安装了,但速度很慢。缺少 wincache 会不会是导致我性能问题的根源?
我下载了非线程安全的 PHP7、Apache 的 mod_fcgid 和 wincache。我让所有程序都运行起来,但速度仍然很慢。有没有一种理想的方式将 Apache 与 SQL Server 连接起来?我说的慢,是指安装 drupal 模块每秒插入一条记录。我的 MySQL 设置在几秒钟内处理了 4000 条记录。它最终会因以下错误而死机:
[fcgid:warn] [pid 2668:tid 940](OS 109)管道已结束。:[client ::1:56937] mod_fcgid:获取重叠结果错误,
Mysql 服务器与 Apache 服务器位于同一台笔记本电脑上,而这台 SQL Server 服务器则位于半个州之外。