Windows, XAMPP, PHP 7 и opcache

Я установил последний сервер XAMPP с PHP 7 (обновление: проверено также PHP 7.1) (в моей системе Windows 10). Хотел использовать opcache, поэтому я включил его в php.ini.

[opcache]
zend_extension=php_opcache.dll
opcache.enable=1
opcache.enable_cli=0
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000

Теперь с этим изменением и почти при каждом обновлении страницы я получаю эту ошибку от Apache:

AH00428: Parent: child process 3748 exited with status 3221226356 -- Restarting.

Итак, страница загружается и загружается... в ожидании запуска Apache. Когда я выключаю opcache (установив opcache.enable=0), Apache не перезагружается и все работает нормально (конечно, пропуская более медленную тему веб-приложения).

Все отлично работает при загрузке приложения на XAMPP с PHP 5.6 с включенным opcache.

ОБНОВЛЕНИЕ (добавлено GIF-изображение):
Как видите, иногда страница обновляется, как и должно быть. Но иногда он обновляется гораздо дольше, и в этот момент Apache перезапускается.

enter image description here

EDIT:
Если честно, я отказался от этого приложения и работал с PHP на Windows (работал над ним около 10 лет с PHP & lt; = 5.6). Очень трудно/невозможно (пока) заставить работать PHP 7.x на этой ОС (с Opcache). Решил использовать Ubuntu и сервер, созданный с помощью Docker. Все проще настроить (особенно с Docker) и работает быстрее. Всем советую поступить так же;).

Ответ 1

Ваш php_opcache.dll путь кажется неправильным, вам нужно написать его, как показано ниже, он работает для меня.

[opcache]
zend_extension=C:\xampp\php\ext\php_opcache.dll
opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=256
opcache.max_accelerated_files=2000

Подробнее

Если ваш XAMPP поставляется с PHP 5. 5+ по умолчанию, opcache уже включен в комплект, вам просто нужно включить его. Чтобы включить расширение:

  1. Откройте php.ini (по умолчанию он должен находиться здесь: C:\xampp\php\php.ini).

  2. Добавьте эту строку в конец файла: zend_extension=C:\xampp\php\ext\php_opcache.dll

  3. Перезапустите сервер Apache.

Ответ 2

открыть файл php.ini file

  1. Измените ; opcache.enable = 1 на opcache.enable = 1
  2. Добавить путь к opcache dll в конце файла zend_extension = "C:\xampp\php\ext\php_opcache.dll"
  3. Перезапустите apache

для получения дополнительной информации проверьте это видео https://www.youtube.com/watch?v=GvWrNoRDjUY

Ответ 3

Если честно - не используйте xammp. Прямо сейчас у нас есть немного лучший технический стек для запуска PHP на серверах Linux. докер https://docs.docker.com/docker-for-windows/

Vagrant: https://www.vagrantup.com/

Оба они основаны на Linux-системах, где большинство проблем xammp не будет иметь места.

Ответ 4

В случае Xampp просто поместите следующие строки рядом с [opcache]

zend_extension="C:\xampp\php\ext\php_opcache.dll"
opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=256
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1

Ответ 5

Контейнерный каталог с соответствующими разрешениями и настройкой его работы php.ini!

opcache.file_cache=d:\xampp\htdocs\opcache

Ответ 6

ThreadStackSize 8388608 

Помог мне в аналогичном случае. Это опция httpd.