본문 바로가기

Linux Distributions

PHP에서 웹 서버의 환경 변수를 가져와서 사용하는 방법

728x90
반응형

PHP에서 웹 서버의 환경 변수를 가져와서 사용하는 방법

PHP 코드가 실행될 때 리눅스 환경 변수(.bashrc 등)를 직접 적용하는 것은 명령어 라인 환경(CLI)에서는 어렵습니다. .bashrc는 보통 셸 세션이 시작될 때만 실행되기 때문에, PHP 스크립트가 웹 서버나 다른 환경에서 실행될 때 .bashrc의 환경 변수를 가져오는 것은 복잡합니다.

웹 서버나 다른 환경에서는 웹 서버의 환경 변수 또는 설정 파일을 이용하여 환경 변수를 적용해야 합니다.

 

웹 서버의 환경 변수를 PHP 코드에서 사용하려면, 웹 서버가 $_SERVER 슈퍼 글로벌 배열에 저장하는 변수를 활용할 수 있습니다.

웹 서버 환경 변수를 PHP 코드에서 사용하는 예시

웹 서버의 IP 주소 가져오기

  • 웹 서버의 IP 주소를 $_SERVER['SERVER_ADDR']를 통해 가져올 수 있습니다.
$serverIP = $_SERVER['SERVER_ADDR'];
echo "웹 서버의 IP 주소: $serverIP";

웹 서버의 포트 번호 가져오기

  • 웹 서버가 사용하는 포트 번호를 $_SERVER['SERVER_PORT']를 통해 가져올 수 있습니다.
$serverPort = $_SERVER['SERVER_PORT'];
echo "웹 서버의 포트 번호: $serverPort";

웹 서버의 호스트 이름 가져오기

  • 웹 서버의 호스트 이름을 $_SERVER['SERVER_NAME']를 통해 가져올 수 있습니다.
$serverName = $_SERVER['SERVER_NAME'];
echo "웹 서버의 호스트 이름: $serverName";

웹 서버의 프로토콜 가져오기

  • 웹 서버가 사용하는 프로토콜 (HTTP 또는 HTTPS)을 $_SERVER['HTTPS']를 통해 가져올 수 있습니다.
$protocol = isset($_SERVER['HTTPS']) ? 'https' : 'http';
echo "웹 서버의 프로토콜: $protocol";

위와 같은 방식으로 웹 서버의 환경 변수를 PHP 코드에서 가져와서 활용할 수 있습니다. 이렇게 하면 웹 서버와 웹 애플리케이션의 환경을 분리하여 유연하게 활용할 수 있습니다.

사용자가 지정한 환경 변수를 가져오는 예시($_ENV 배열을 사용)

사용자가 직접 지정한 환경 변수를 PHP 코드에서 가져오려면, $_ENV 슈퍼 글로벌 배열을 사용하면 됩니다. 사용자가 지정한 환경 변수는 보통 PHP 스크립트 실행 환경에 따라 달라질 수 있습니다.

 

사용자가 MY_CUSTOM_VAR라는 환경 변수를 설정한 경우

// MY_CUSTOM_VAR 환경 변수 가져오기
$customVar = $_ENV['MY_CUSTOM_VAR'];
echo "사용자 지정 환경 변수: $customVar";

실제 사용자 지정 환경 변수 값을 가져와서 활용할 수 있습니다. 사용자 지정 환경 변수가 없는 경우에는 해당 변수가 없다는 경고가 표시될 수 있습니다. 이런 경우에는 isset() 함수를 사용하여 변수의 존재 여부를 먼저 확인하면 좋습니다.

if (isset($_ENV['MY_CUSTOM_VAR'])) {
    $customVar = $_ENV['MY_CUSTOM_VAR'];
    echo "사용자 지정 환경 변수: $customVar";
} else {
    echo "사용자 지정 환경 변수가 설정되지 않았습니다.";
}

이와 같은 방식으로 사용자가 지정한 환경 변수를 PHP 코드에서 가져와서 사용할 수 있습니다.

 

참고URL

- $_SERVER - PHP Server and execution environment information

- $_ENV - PHP Environment variables

 

728x90
반응형