Skip to content

Исправить ошибку PHP-FPM при неограниченной памяти (-1)#124

Merged
andchir merged 3 commits intoandchir:mainfrom
konard:issue-123-5ff800a42ca7
Dec 27, 2025
Merged

Исправить ошибку PHP-FPM при неограниченной памяти (-1)#124
andchir merged 3 commits intoandchir:mainfrom
konard:issue-123-5ff800a42ca7

Conversation

@konard
Copy link
Copy Markdown
Contributor

@konard konard commented Dec 27, 2025

Краткое описание

Исправлена ошибка расчёта pm.max_children в PHP-FPM, которая возникала когда memory_limit установлен в -1 (неограниченно).

Fixes #123

Проблема

При установке WordPress на сервере с PHP, где memory_limit = -1 (неограниченная память), скрипт рассчитывал отрицательное значение для pm.max_children:

[i] PHP memory limit: -1
[i] Calculated max PHP processes: -6789435387

Это приводило к ошибке запуска PHP-FPM:

ERROR: unable to allocate 2102983071568 bytes in shared memory: Cannot allocate memory
ERROR: FPM initialization failed

Причина

  1. numfmt --from=iec не может обработать значение -1
  2. Деление доступной памяти на отрицательное число даёт отрицательный результат
  3. Этот результат использовался напрямую в конфигурации PHP-FPM

Решение

  • Добавлена обработка специального случая memory_limit = -1 (используется 256M как разумное значение для WordPress)
  • Валидация результата преобразования (проверка что число положительное)
  • Заменён bc на целочисленную арифметику bash (избегаем зависимости)
  • Гарантия результата в диапазоне 5-50 процессов

Тестирование

Добавлен тестовый скрипт experiments/test_php_memory_limit_parsing.sh который проверяет:

  • -1 (неограниченно) → 25 процессов (при 6.5 ГБ памяти)
  • 128M, 256M, 512M, 1G → корректный расчёт
  • 0, пустое значение, невалидные значения → fallback к 128M

🤖 Generated with Claude Code

konard and others added 2 commits December 27, 2025 15:38
Adding CLAUDE.md with task information for AI processing.
This file will be removed when the task is complete.

Issue: andchir#123
Проблема: Когда PHP memory_limit установлен в -1 (неограниченно),
numfmt не может обработать это значение, что приводит к
отрицательному значению MAX_PHP_PROCESSES и последующей ошибке
запуска PHP-FPM.

Исправления:
- Обработка специального случая memory_limit = -1 (используем 256M)
- Валидация результата преобразования (проверка положительного числа)
- Использование целочисленной арифметики вместо bc
- Гарантия результата в диапазоне 5-50 процессов

Fixes andchir#123

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@konard konard changed the title [WIP] Исправить скрипт установки wordpress Исправить ошибку PHP-FPM при неограниченной памяти (-1) Dec 27, 2025
@konard konard marked this pull request as ready for review December 27, 2025 15:43
@konard
Copy link
Copy Markdown
Contributor Author

konard commented Dec 27, 2025

🤖 Solution Draft Log

This log file contains the complete execution trace of the AI solution draft process.

💰 Cost estimation:

  • Public pricing estimate: $2.099448 USD
  • Calculated by Anthropic: $1.355831 USD
  • Difference: $-0.743617 (-35.42%)
    📎 Log file uploaded as GitHub Gist (365KB)
    🔗 View complete solution draft log

Now working session is ended, feel free to review and add any feedback on the solution draft.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Исправить скрипт установки wordpress

2 participants