В подавляющем большинстве случаев причина заключается в отсутствии разрешения доступа к этим компонентам с текущего IP-адреса.
Исправляется это указанием разрешенных адресов в параметре «allowedIPs» при конфигурации этих компонентов, вот так:
Корневая_директория_проекта / config / web.php// ... if (YII_ENV_DEV) { $config['bootstrap'][] = 'debug'; $config['modules']['debug'] = [ 'class' => 'yii\debug\Module', 'allowedIPs' => ['*'], ]; $config['bootstrap'][] = 'gii'; $config['modules']['gii'] = [ 'class' => 'yii\gii\Module', 'allowedIPs' => ['*'], ]; } // ...
Символ «*» разрешит пользователю с любого IP-адреса видеть эти компоненты. Если вам необходимо запустить эти компоненты в «опасной среде», например, на боевом сервере, то стоит указывать только свой IP-адрес или целые подсети.
Конкретные адреса'allowedIPs' => ['111.222.333.444', '555.666.777.888'],
'allowedIPs' => ['111.222.333.*'],
На заметку. У модуля отладки (yii\debug\Module) есть возможность настроить дополнительные условия для доступа к нему в свойстве «checkAccessCallback» — оно принимает callback-функцию, которая должна возвращать true (для разрешения доступа) или false (для запрета доступа). Как работает этот механизм стоит смотреть в тут: КОРНЕВАЯ_ДИРЕКТОРИЯ_ПРОЕКТА \ vendor \ yiisoft \ yii2-debug \ src \ Module.php.
// ... if (YII_ENV_PROD) { $config['bootstrap'][] = 'debug'; $config['modules']['debug'] = [ 'class' => 'yii\debug\Module', 'allowedIPs' => ['*'], 'checkAccessCallback' => function () { return false; // Доступ закрыт для всех. }, ]; } // ...
Если же проблема не решилась, то стоит посмотреть лог ошибок. По умолчанию он находится тут: КОРНЕВАЯ_ДИРЕКТОРИЯ_ПРОЕКТА / runtime / logs / app.log. Там, скорее всего, и обнаружится проблема.
Примеры сообщений:
«Access to Gii is denied due to IP address restriction. The requested IP is…»
«Access to debugger is denied due to IP address restriction. The requesting IP address is»…
Добавить комментарий
Для отправки комментария вам необходимо авторизоваться.