다중 환경 설정하기
Submitted by river -
등록 10 years ago - 수정 10 years ago
개발, 스테이징, 서비스 등 Laravel 동작 환경을 여러 개로 나누고 각각의 환경에 맞게 설정을 따로 가져가는 방법을 알아보자.
1. 환경변수를 이용하는 방법
bootstrap/start.php
파일에서 환경 체크하는 소스를 다음과 같이 수정하면 LARAVEL_ENV
환경변수에 따라 환경 설정이 변경된다. LARAVEL_ENV
환경변수는 아파치 웹서버인 경우 가상 호스팅 설정 파일이나 .htaccess
파일에서 환경변수를 설정하면 된다.
bootstrap/start.php
$env = $app->detectEnvironment(function() {
// Default to local if LARAVEL_ENV is not set
return getenv('LARAVEL_ENV') ?: 'local';
});
apache를 사용하는 경우
apache의 가상호스팅 설정파일이나 .htaccess 파일
# Set local environment variable
SetEnv LARAVEL_ENV local
nginx를 사용하는 경우
nginx 가상호스팅 설정파일 수정
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param LARAVEL_ENV local;
}
2. hostname을 이용하는 방법
bootstrap/start.php
$env = $app->detectEnvironment(array(
'local' => array('hostname1'),
'production' => array('hostname2')
));
머신의 hostname
은 터미널에서 hostname
을 실행하면 알수 있다.
$ hostname
참고 : 도메인에 의한 환경 체크는 Laravel 4.1부터 지원하지 않는다.
3. 환경설정 파일과 환경변수를 같이 쓰는 방법
bootstrap/environment.php
파일을 생성하고 여기에 동작 환경을 설정한다. 이 파일은 동작 환경에 따라 변경되므로 VCS에 의해 관리되지 않도록 한다.
bootstrap/environment.php
<?php return 'local'; ?>
bootstrap/start.php
$env = $app->detectEnvironment(function ()
{
if (file_exists(__DIR__.'/environment.php'))
{
return require __DIR__.'/environment.php';
}
else if (isset($_SERVER['LARAVEL_ENV']))
{
return $_SERVER['LARAVEL_ENV'];
}
else
{
return 'local';
}
});
Stats
-
0 likes
- 3994 views