Включение mod_status в Apache 2 для Docker

По умолчанию, в официальном docker hub apache php mod_status включен и настроен, но к нему нужно открыть доступ.

Для этого нужно зайти в контейнер и включить server-status

docker exec -it container_name /bin/bash
nano /etc/apache2/mods-available/status.conf

В блоке server-status нужно закомментировать Require local.

После нужно обновить конфиг

service apache2 reload

Если используется .htaccess нужно добавить правило RewriteCond %{REQUEST_URI} !=/server-status. Например:

RewriteEngine on
RewriteCond %{REQUEST_URI} !=/server-status
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php [L]

Внимание! После всех операций нужно вернуть как было, дабы не публиковать серверную информацию.

PHP stacktrace

Порой для отладки необходимо получить stacktrace до текущего состояния, в php для этого есть много штатных средств, но у всех есть недочеты. Изящным трюком является создание исключения без его выброса, но получения заветного stacktrace:

echo (new \Exception('Доп. данные при желании'))->__toString();