Laravel迁移时未定义的索引:REMOTE_ADDR

时间:2015-11-09 11:18:48

标签: php mysql apache laravel

当我在本地服务器上运行php artisan migrate时(由php artisan serve运行),我收到以下错误:

[ErrorExeption]
Undefined index: REMOTE_ADDR

我也试过php artisan migrate --database db_name,输出是这样的:

[InvalidArgumentExeption]
Database [db_name] not configured.

我的app / config / local / database.php如下所示:

'connections' => array(
    'mysql' => array(
        'driver'    => 'mysql',
        'host'      => 'localhost', // also tried 127.0.0.1
        'database'  => 'db_name',
        'username'  => 'root',
        'password'  => 'mypassword',
        'charset'   => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix'    => '',
    )
)

我确信MySQL可以工作,我通过命令行和phpMyAdmin检查了它。

我还在HostnameLookups On内加了httpd.conf,然后重新启动了apache,但没有任何帮助。

我使用Laravel 4.2,Debian。

有什么想法吗?提前谢谢。

P.S。对不起我的英文:)

UPD: php artisan env的输出为Current application environment: local

UPD2:

我创建了简单的路线:

Route::get('/test', function() {
    return $_SERVER["REMOTE_ADDR"];
});

返回::1,但是当我在php交互模式(php -a)中执行echo $_SERVER["REMOTE_ADDR"];时,我收到通知:Undefined index: REMOTE_ADDR

2 个答案:

答案 0 :(得分:2)

如果您还没有这样做,请确保您使用$ _SERVER数组访问SERVER_ADDR以获取SERVER_ADDR的值,该值是此数组的元素。

$_SERVER['SERVER_ADDR'];

如果这不起作用,则可能意味着您的服务器无法提供该信息。

来自PHP.net

  

无法保证每个Web服务器都能提供这些服务;服务器可能会省略某些服务器,或提供此处未列出的其他服务器。

答案 1 :(得分:1)

当您收到artisan错误时,该错误可能与当前尝试与artisan一起运行的命令无关,但是您最近发生了一些其他编码错误。在您的代码中搜索最近对REMOTE_ADDR

的任何引用