Проблемы с Apache / PHP / Win, две разные системы + код.Та же проблема - PullRequest
0 голосов
/ 21 мая 2018

Я боролся с этой проблемой уже несколько месяцев.У меня есть две разные системы, каждая с разными настройками и кодом PHP, но обе имеют абсолютно одинаковую проблему.

Мой сервер выдаст ошибку 500, и журналы будут заполнены проблемами выделения памяти до перезагрузки Apache.

Система ONE

ОС: Windows server 2008

XAMPP: PHP 7.1.9 / Apache 2.4.27

База кода: AНебольшой веб-сайт Laravel Ничего особенного

Система ДВА

ОС: Windows server 2016

XAMPP: PHP 7.2.3.0 / Apache 2.4.29

Кодовая база: некоторые длительные процессы php, около 2 минут.

Ошибки Apache

VirtualFree () не удалось: [0x000001e7] Попытка получить доступ к неверному адресу.Ошибка VirtualAlloc (): [0x00000008] Недостаточно памяти для обработки этой команды.Ошибка VirtualFree (): [0x000001e7] Попытка получить доступ к неверному адресу.

Ошибки PHP

[Пн 21 мая 09: 27: 42.078308 2018] [php7: error][pid 10236: tid 12736] [клиент 43.245.8.13:1553] Неустранимая ошибка PHP: недостаточно памяти (выделено 2097152) (попытка выделить 6626884 байта) в C: \ xampp \ htdocs \ * \ vendor \ doctrine \ dbal \ lib\ Doctrine \ DBAL \ Driver \ PDOStatement.php в строке 141, реферер: http://m.facebook.com/

[Пн 21 мая 09: 28: 12.703338 2018] [php7: ошибка] [pid 10236: tid 12736] [клиент122.170.190.70:63513] Неустранимая ошибка PHP: недостаточно памяти (выделено 73400320) (попытка выделить 4096 байт) в C: \ xampp \ htdocs \ * \ vendor \ laravel \ framework \ src \ Illuminate \ Database \ Eloquent \ Model.php on line 294

[Пн 21 мая 09: 28: 14.640812 2018] [php7: error] [pid 10236: tid 12736] [client 122.170.190.70:63529] Неустранимая ошибка PHP: недостаточно памяти (выделено37748736) (попытался выделить 4096 байт) в C: \ xampp \ htdocs \ * \ vendor \ laravel \ framework \ src \ Illuminate \ Database \ Eloquent \ Model.php в строке 294

[Пн 21 мая 09: 28: 19.218972 2018] [php7: error] [pid 10236: tid 12736] [client 157.49.220.122:64984] Неустранимая ошибка PHP: недостаточно памяти (выделено 20971520) (попыталсявыделить 4096 байт) в C: \ xampp \ htdocs \ * \ vendor \ laravel \ framework \ src \ Illuminate \ Database \ Eloquent \ Concerns \ HasEvents.php в строке 161, реферер: https://www.facebook.com/

[пн21 мая 09: 28: 27.125182 2018] [php7: error] [pid 10236: tid 12704] [client 150.143.104.159:12178] Неустранимая ошибка PHP: недостаточно памяти (выделено 12582912) (попытка выделить 131072 байта) в C:\ xampp \ htdocs \ * \ vendor \ doctrine \ dbal \ lib \ Doctrine \ DBAL \ Driver \ PDOStatement.php в строке 141

[Пн 21 мая 09: 28: 27.125182 2018] [php7: ошибка] [pid 10236: tid 12704] [client 150.143.104.159:12178] Неустранимая ошибка PHP: недостаточно памяти (выделено 12582912) (попытка выделить 32768 байт) в C: \ xampp \ htdocs \ * \ vendor \ laravel \ framework \ src \Освещение \ Foundation \ Exceptions \ Handler.php в строке 451

[Пн 21 мая 09: 28: 27.125182 2018] [php7: ошибка] [pid 10236: tid 12704] [client 150.143.104.159:12178] Неустранимая ошибка PHP: Недостаточно памяти (выделено 12582912) (попытка выделить 20480 байт) в поле «Неизвестно» в строке 0

Что вызывает ошибки

Ошибки появляются случайно, но не сразу после перезапуска Apache.Тем не менее, как если бы он занимал слишком много памяти, у меня на сервере 6 ГБ свободного места по 8 ГБ.

Что я пробовал до сих пор

Различные изменения в php.ini,например, memory_limit=1200M, а также в настройках скрипта ini_set('memory_limit', -1);

Настройки конфигурации Apache

ThreadStackSize        56*1024*1024
ThreadsPerChild        150
MaxConnectionsPerChild   0
RLimitMEM 99999999999 99999999999999

Однако после перезапуска я заметил, что там написано

AH00118: RLimitMEM not supported on this platform

IЯ видел эти ошибки, разбросанные по Интернету, и никто, кажется, никогда не находил решения для них.Мне нужен PHP на Windows, я начинаю думать, что мне стоит попробовать IIS.

Есть ли другие рекомендации по настройке Apache или что еще можно попробовать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...