Назад | Перейти на главную страницу

Как взаимодействовать с Apache, PHP7 и SQL Server

Я запускал небольшую базу данных (MySQL) с самодельной «CMS» на окнах, и меня попросили перенести ее на законный сервер (MS SQL Server) и лучшую CMS. Я занимался разработкой CMS в Drupal 8 против базы данных MySQL.

Теперь я начинаю устанавливать все на SQL Server, и это ОЧЕНЬ медленно. Я использовал Apache2.4 и PHP7.1, но использовал поточно-ориентированную версию PHP7. Должен ли я использовать версию, не ориентированную на многопоточность? В руководстве «Drupal для Windows» предлагались определенные настройки для 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, mod_fcgid для Apache и wincache. У меня все работает, но все равно медленно. Есть ли идеальный способ взаимодействия Apache с SQL Server? Когда я говорю «медленно», я имею в виду, что установка модуля drupal вставляет одну запись в секунду. Моя установка MySQL выполняла 4000 записей за пару секунд. в конечном итоге он умрет с ошибкой:

[fcgid: warn] [pid 2668: tid 940] (OS 109) Канал был завершен. : [client :: 1: 56937] mod_fcgid: получить ошибку результата перекрытия,

Сервер Mysql находился на том же портативном компьютере, что и сервер Apache, в то время как этот сервер SQL Server находится на расстоянии половины штата.