2015-11-09 40 views
1

当我在我的本地服务器(由php artisan serve运行)我收到以下错误上运行php artisan migrate未定义指数:REMOTE_ADDR而Laravel迁移

[ErrorExeption] 
Undefined index: REMOTE_ADDR 

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

[InvalidArgumentExeption] 
Database [db_name] not configured. 

我的应用程序/配置/本地/ 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,但是当我执行echo $_SERVER["REMOTE_ADDR"];在php交互模式(php -a)我得到一个通知:Undefined index: REMOTE_ADDR

+0

传递给migrate命令的数据库参数应该具有数据库连接的值,而不是数据库名称:'php artisan migrate --database mysql'。 – Bogdan

+0

谢谢,但不起作用,输出是:'未定义索引:REMOTE_ADDR' – mineroot

+0

看看.env文件(在应用程序根目录中)。也许你会在那里找到它。 – Amarnasan

回答

1

当你得到一个artisan错误,该错误可能已无关,与目前试图与artisan运行的命令,但也有一些其他的编码错误,您最近。在代码中搜索最近提到的REMOTE_ADDR

1

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

$_SERVER['SERVER_ADDR']; 

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

PHP.net

There is no guarantee that every web server will provide any of these; servers may omit some, or provide others not listed here.

+0

谢谢,请参阅UPD2 – mineroot