2调试条在登台服务器上没有显示,即使使用了允许的dip 's入口


Yii2 debug bar not showing on staging server even with allowedIP's entry

我正试图让Yii2的调试栏显示在我的登台服务器上,但由于某种原因它没有显示。

下面是我的web.php配置文件中的代码:

if (YII_ENV_DEV) {
    // configuration adjustments for 'dev' environment
    $config['bootstrap'][] = 'debug';
    $config['modules']['debug'] = [
                                   'class' => 'yii'debug'Module',
                                   'allowedIPs' => ['127.0.0.1','::1','123.45.67.89']
                                   ];
    $config['bootstrap'][] = 'gii';
    $config['modules']['gii'] = 'yii'gii'Module';
}

123.45.67.89显然只是服务器真实IP的一个例子。

我得到服务器的IP:

$host = gethostname();
$server_ip = gethostbyname($host);

如果我尝试通过以下命令访问调试页面:

http://www.example.com/debug/default/index

我得到消息:您不允许访问此页

我确信我有这个工作之前,但现在它不工作的某种原因,我不知道为什么!?

我知道有调试数据文件(不确定它们是否会包含关于为什么我看不到它的任何信息),但我不确定如何正确查看数据?

AllowedIPs参数应该包含您的ip,检查$_SERVER['REMOTE_ADDR']并将其设置为AllowedIPs。查看gii如何检查访问

我知道这是旧的,但它可能会帮助现在的人,因为这不是很清楚在网络上的任何地方。

我们过去在部署到测试和开发服务器时经常遇到这个问题。将其添加到main-local.php

if (!YII_ENV_TEST) {
    // configuration adjustments for 'dev' environment
    $config['bootstrap'][] = 'debug';
    $config['modules']['debug'] = [
        'class' => 'yii'debug'Module',
        'allowedIPs' => ['*']
    ];
    $config['bootstrap'][] = 'gii';
    $config['modules']['gii'] = [
    'class' => 'yii'gii'Module',
    ];
}

不要在生产服务器!!!!上这样做

检查frontend/web/index.phpapp/web/index.php

你需要

<?php
  defined('YII_DEBUG') or define('YII_DEBUG', true);
  defined('YII_ENV') or define('YII_ENV', 'dev');

如果您有自定义布局,请确保在</body>标签之前调用<?php $this->endBody() ?>

确保你的[yii-app-folder]/runtime/debug文件夹是可写的http服务器(Apache, nginx等)

的例子:

sudo chown www-data: ./runtime/debug/ -R

如果你运行的是nginx &php-fpm,我必须重新启动服务。

sudo service php-fpm restart

你可以检查你的/backend/runtime/目录,确保它是可写的