2015-11-09 69 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