2014-03-04 5 views
5

누군가 도움을 줄 수 있는지 궁금합니다.Laravel 4 작동하지 않는 환경

환경 설정을 통해 Laravel 4를 실행했지만 작동하지 않는 것 같습니다. 내 MAMP 설정에서

, 내 Bootstrap-에서 내가 너무

$env = $app->detectEnvironment(array(
    'local' => array('protected.dev') 
)); 

나는 '현지'디렉토리를 만든 것처럼 내 로컬 URL을 가질> start.php을

호스트 protected.dev 생성 표준 database.php 파일에 복사 된 app-> config 디렉토리를 수정 한 다음 'local'디렉토리의 database.php 파일을 수정했습니다. 내가 시도하고 사이트를 표시 할 때

, 난 표준 config-> database.php 파일에있는

Access denied for user 'root'@'localhost' 

얻을.

어떤 이유로 든 로컬 환경을 감지하지 못하는 것 같습니다.

도움을 주시면 감사하겠습니다.

건배,

답변

16

hostname 

더는 enviroments에가로하지, 컴퓨터 이름으로 설정됩니다 리눅스에서, 당신은 터미널에서 다음 명령을 실행하여 컴퓨터의 호스트 이름을 찾을 수 있습니다 웹 서버 URL.

호스트 이름을 확인하려면 hostname terminal 명령을 사용하십시오.

터미널에 호스트 이름을 입력하고 (이 방법은 Linux와 Mac에서 작동 함) 로컬 변수의 start.php 파일에 결과를 잘라내어 붙여 넣기 만하면됩니다.

예 :

angoru의 @ 천사 - 산 : ~ $ 호스트 이름

더 설명은 천사 - 산

내 start.php

$env = $app->detectEnvironment(array(
    'local' => array('angel-mountain'), // Change this to your local machine hostname. 
    'staging' => array('your-staging-machine-name'), 
    'production' => array('your-production-machine-name'), 
)); 

: Environment Configuration

+0

그게 그 문제를 해결합니다 ... 고마워요! ... 내 app.php를 'url'로 설정해야합니까? – BigJobbies

+0

사이트가 작동 할 필요는 없지만 장인 작업을 실행할 때 사이트가 필요합니다. – angoru

+0

의미가 있습니다 ... 환경을 사용하여 로컬 또는 프로덕션을 자동으로 검색하는 경우 URL을 어떻게 설정해야합니까? – BigJobbies

3

Laravel 4는 더 이상 작업 환경을 감지하는 가상 호스트에 의존하지 않습니다. 이제는 컴퓨터의 호스트 이름을 사용하여 작업을 수행합니다. 따라서 protected.dev을 컴퓨터의 호스트 이름으로 변경해야합니다. laravel 4 년이 http://laravel.com/docs/configuration#environment-configuration

1

여러 개발자가있는 환경에서는 각 호스트 이름이 start의 'local'배열에 호스트 이름을 추가 할 수 있습니다.PHP :

경우
$env = $app->detectEnvironment(array(
    'local' => array('user1-hostname','user2-hostname'), // Developers local hostnames 
    'staging' => array('your-staging-machine-name'), 
    'production' => array('your-production-machine-name'), 
)); 
0

당신은 로컬 호스트의 도메인 또는 점없는 다른 가상 호스트를 (난 보통 무엇을), bootstrap/start.php에 같은 코드를 사용하는 것이 도움이 될 수있는 사용 Laravel 프로젝트를 테스트 :

$env = $app->detectEnvironment(function(){ 
    if (strpos($_SERVER['HTTP_HOST'],'.') === false) { 
     return 'local'; 
    } 
    return 'production'; 
}); 

후 :

$app = new Illuminate\Foundation\Application; 

이 심지어 점없이/다른 가상 호스트 다른 디렉토리에 코드를 이동하거나 다른 컴퓨터로 이동하는 것이 있습니다, 당신은 기계 남를 추가 할 필요가 없습니다 전자 local 기계.

필요하다면 당연히 더 많은 규칙을 추가 할 수 있습니다 (127.0.0.1 또는 .dev의 호스트를 포함하십시오).

관련 문제