PHP는 웹 개발에서 가장 널리 사용되는 서버 사이드 스크립트 언어 중 하나로, 동적인 웹사이트와 애플리케이션을 개발하는 데 필수적인 도구입니다. 특히 Windows 환경에서 PHP를 설치하고 설정하는 것은 많은 개발자들에게 중요한 과정입니다.
이 가이드에서는 Windows 환경에서 PHP를 설치하고, 환경 변수를 설정하며, Apache 또는 Nginx 웹 서버와 연동하는 방법을 단계별로 설명합니다. 또한, php.ini 파일을 구성하여 PHP의 동작을 조정하는 방법과 설치 후 정상적으로 작동하는지 확인하는 방법도 다룰 것입니다.
이 문서를 따라 진행하면 Windows 환경에서 PHP를 원활하게 실행할 수 있도록 설정할 수 있습니다.
Windows에서 PHP 설치 시 고려해야 할 주요 설정
설정 항목 | 설명 | 설정 방법 |
---|---|---|
PHP 버전 선택 | Windows에서 사용할 PHP 버전을 선택해야 합니다. | PHP 공식 사이트에서 최신 버전을 다운로드합니다. |
환경 변수 설정 | PHP를 명령 프롬프트에서 쉽게 실행할 수 있도록 설정 | Windows 환경 변수에 PHP 설치 경로 추가 |
php.ini 설정 | PHP의 다양한 기능을 활성화 및 설정 조정 | php.ini 파일을 열어 필요한 확장(extension) 활성화 |
웹 서버 연동 | Apache 또는 Nginx와 PHP 연동 설정 | Apache(httpd.conf) 또는 Nginx(nginx.conf) 파일 수정 |
PHP 실행 테스트 | PHP가 정상적으로 실행되는지 확인 | 웹 서버 루트 디렉터리에 info.php 파일 생성 후 phpinfo() 실행 |
필요한 확장 모듈 활성화 | MySQL, GD 등 추가 기능 사용 | php.ini 파일에서 extension=mysqli 등 확장 모듈 활성화 |
오류 표시 설정 | 디버깅을 위해 오류 메시지 표시 여부 설정 | php.ini에서 display_errors = On 으로 변경 |
보안 설정 | 불필요한 기능 제한 및 기본 보안 강화 | php.ini에서 expose_php = Off, disable_functions 설정 |
최적화 설정 | 성능 향상을 위해 메모리 및 캐시 설정 | php.ini에서 opcache 및 memory_limit 조정 |
기타 설정 | 시간대 설정 등 추가적인 설정 조정 | php.ini에서 date.timezone 설정 변경 |
PHP 다운로드 및 설치 파일 준비
Windows 환경에서 PHP를 사용하려면, 먼저 공식 웹사이트에서 최신 버전의 PHP를 다운로드해야 합니다. 아래 단계에 따라 진행하세요:
- PHP 공식 다운로드 페이지에 접속합니다: https://www.php.net/downloads
- Windows용 PHP 버전을 선택합니다. 일반적으로 Thread Safe 버전이 권장됩니다.
- 다운로드한 ZIP 파일의 압축을 풀고, 예를 들어 C:\php와 같은 디렉터리에 저장합니다.
환경 변수 설정으로 PHP 실행 가능하게 만들기
PHP를 명령 프롬프트에서 전역적으로 실행하려면, 시스템의 환경 변수에 PHP 경로를 추가해야 합니다. 다음 절차를 따르세요:
- 시작 메뉴에서 시스템을 검색하고 선택합니다.
- 시스템 정보 창에서 고급 시스템 설정을 클릭합니다.
- 시스템 속성 창의 고급 탭에서 환경 변수 버튼을 클릭합니다.
- 시스템 변수 섹션에서 Path를 선택하고 편집을 클릭합니다.
- 새로 만들기를 클릭하고, PHP가 설치된 경로인 C:\php를 입력합니다.
- 모든 창을 확인을 눌러 닫고 변경 사항을 저장합니다.
이제 명령 프롬프트를 열고 php -v
를 입력하여 PHP 버전 정보가 표시되는지 확인하세요. 만약 표시되지 않는다면, 앞서 설정한 환경 변수를 다시 확인하고, 명령 프롬프트를 재시작한 후 다시 시도해보세요.
php.ini 설정 파일 구성 및 편집
PHP의 동작을 원하는 대로 설정하려면, php.ini 파일을 구성해야 합니다. 다음 단계를 따라 진행하세요:
- C:\php 디렉터리에서 php.ini-development 파일을 찾아 php.ini로 이름을 변경합니다.
- php.ini 파일을 텍스트 편집기(예: 메모장, Notepad++)로 엽니다.
- 필요한 확장 모듈을 활성화하려면, 해당하는 extension 행의 앞에 있는 세미콜론(;)을 제거합니다. 예를 들어:
;extension=mysqli extension=mysqli
- 변경 사항을 저장하고 php.ini 파일을 닫습니다.
이러한 설정을 통해 PHP의 다양한 기능과 확장 모듈을 사용할 수 있습니다. 필요에 따라 추가적인 설정을 진행하세요.
Apache/Nginx와 PHP 연동하기
Windows 환경에서 PHP를 웹 서버와 함께 사용하려면 Apache 또는 Nginx와 연동해야 합니다. 아래는 각 서버와 PHP를 연동하는 방법입니다.
Apache와 PHP 연동
- Apache 공식 웹사이트에서 Windows용 Apache를 다운로드하고 설치합니다.
- Apache 설치 디렉터리의 httpd.conf 파일을 텍스트 편집기로 엽니다.
- 다음 라인을 추가하여 PHP 모듈을 로드합니다:
LoadModule php_module "C:/php/php8apache2_4.dll" AddHandler application/x-httpd-php .php PHPIniDir "C:/php"
- DirectoryIndex 지시어를 찾아 index.php를 추가하여 기본 파일로 설정합니다:
DirectoryIndex index.php index.html
- 변경 사항을 저장하고 Apache를 재시작합니다.
Nginx와 PHP 연동
- Nginx 공식 웹사이트에서 Windows용 Nginx를 다운로드하고 설치합니다.
- Nginx 설치 디렉터리의 nginx.conf 파일을 텍스트 편집기로 엽니다.
- 다음 내용을 추가하여 PHP 파일을 처리하도록 설정합니다:
location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
- PHP-FPM을 실행하여 PHP를 FastCGI 모드로 동작시킵니다:
php-cgi.exe -b 127.0.0.1:9000
- 변경 사항을 저장하고 Nginx를 재시작합니다.
PHP 설치 확인 및 테스트
PHP와 웹 서버의 연동이 제대로 되었는지 확인하려면 다음 단계를 따르세요:
- 웹 서버의 루트 디렉터리에 info.php 파일을 생성합니다.
- 파일에 다음 코드를 입력하여 저장합니다:
<?php phpinfo(); ?>
- 웹 브라우저를 열고 http://localhost/info.php에 접속합니다.
- PHP 정보 페이지가 나타나면 설치 및 연동이 성공적으로 완료된 것입니다.
문제 해결 및 자주 발생하는 오류 대응
PHP 설치 및 연동 과정에서 발생할 수 있는 일반적인 문제와 해결 방법은 다음과 같습니다:
1. 500 내부 서버 오류
이 오류는 PHP 스크립트 내의 문법 오류 또는 서버 설정 문제로 인해 발생할 수 있습니다. 정확한 원인을 파악하려면 PHP의 오류 표시 설정을 활성화해야 합니다.
- php.ini 파일을 열어 display_errors 지시어를 찾아 On으로 설정합니다:
display_errors = On
- 웹 서버를 재시작하여 설정을 적용합니다.
- 오류 메시지를 확인하고, 해당 내용을 기반으로 스크립트나 설정을 수정합니다.
2. PHP 파일이 다운로드되거나 코드가 그대로 표시되는 문제
이 문제는 웹 서버가 PHP 파일을 스크립트로 처리하지 못할 때 발생합니다. 서버 설정 파일에서 PHP를 처리하는 핸들러 설정이 정확한지 반드시 확인해야 합니다.
- Apache를 사용하는 경우, httpd.conf 파일에서 PHP 모듈이 정상적으로 로드되어 있는지 확인합니다.
LoadModule php_module "C:/php/php8apache2_4.dll" AddHandler application/x-httpd-php .php PHPIniDir "C:/php"
- Nginx를 사용하는 경우, nginx.conf 파일의 PHP 처리 블록이 올바르게 구성되어 있는지 검토합니다.
location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
- 웹 서버를 재시작하여 변경된 설정을 적용합니다.
- 브라우저를 새로고침하여 PHP 파일이 정상적으로 처리되는지 확인합니다.
여전히 문제가 발생한다면 PHP의 설치 경로가 올바르게 지정되어 있는지, PHP가 의존하는 라이브러리가 누락되지 않았는지 추가적으로 검토해야 합니다.
자주묻는질문(Q&A)
Q: Windows에서 PHP를 설치하려면 어떤 버전을 선택해야 하나요?
A: Windows에서 PHP를 설치할 때는 웹 서버와의 호환성을 고려하여 적절한 버전을 선택해야 합니다. 일반적으로 Apache나 Nginx를 사용하는 경우 Thread Safe 버전을 선택하며, IIS를 사용하는 경우 Non Thread Safe 버전을 선택합니다. 또한, 운영체제의 비트 수에 따라 x86(32비트) 또는 x64(64비트) 버전을 선택해야 합니다.
Q: PHP를 설치한 후 환경 변수를 설정하는 이유는 무엇인가요?
A: 환경 변수를 설정하면 명령 프롬프트나 다른 프로그램에서 PHP를 전역적으로 인식할 수 있습니다. 이를 통해 시스템 어디에서나 php
명령을 사용할 수 있어 개발과 관리가 편리해집니다.
Q: php.ini 파일은 어디에 위치하며, 어떤 설정을 변경해야 하나요?
A: php.ini 파일은 PHP 설치 디렉터리에 있으며, 기본적으로 php.ini-development 또는 php.ini-production으로 제공됩니다. 이를 php.ini로 이름을 변경한 후, 필요한 설정을 변경합니다. 예를 들어, extension_dir 경로 설정이나 date.timezone 설정 등을 수정해야 합니다.
Q: Apache와 PHP를 연동하려면 httpd.conf 파일에 어떤 내용을 추가해야 하나요?
A: Apache와 PHP를 연동하려면 httpd.conf 파일에 다음과 같은 내용을 추가해야 합니다:
LoadModule php_module "C:/php/php8apache2_4.dll"
AddHandler application/x-httpd-php .php
PHPIniDir "C:/php"
이를 통해 Apache가 PHP를 처리할 수 있도록 설정합니다.
Q: Nginx와 PHP를 연동할 때 fastcgi_pass 지시어는 어떻게 설정하나요?
A: Nginx와 PHP를 연동할 때, nginx.conf 파일의 location ~ \.php$ {} 블록 내에 다음과 같이 설정합니다:
fastcgi_pass 127.0.0.1:9000;
이는 PHP-FPM이 127.0.0.1의 9000번 포트에서 요청을 대기하고 있음을 의미합니다.
Q: PHP 설치 후 정상적으로 동작하는지 확인하려면 어떻게 해야 하나요?
A: 웹 서버의 루트 디렉터리에 info.php 파일을 생성하고, 다음 코드를 입력합니다:
<?php
phpinfo();
?>
그런 다음 브라우저에서 http://localhost/info.php에 접속하여 PHP 정보 페이지가 표시되면 정상적으로 동작하는 것입니다.
Q: PHP 파일이 브라우저에서 다운로드되거나 코드가 그대로 표시되는 경우 어떻게 해결하나요?
A: 이 문제는 웹 서버가 PHP를 제대로 처리하지 못할 때 발생합니다. Apache의 경우 httpd.conf 파일에 PHP 모듈 로드 및 핸들러 설정이 올바른지 확인하고, Nginx의 경우 nginx.conf 파일의 PHP 처리 블록이 정확하게 설정되었는지 확인해야 합니다.
Q: PHP 확장 모듈을 활성화하려면 어떻게 해야 하나요?
A: php.ini 파일을 열고, 활성화하려는 확장 모듈의 앞에 있는 세미콜론(;)을 제거합니다. 예를 들어, extension=mysqli와 같이 설정하여 해당 모듈을 활성화할 수 있습니다.
Q: PHP 설치 시 'MSVCR110.dll이 없어 프로그램을 시작할 수 없습니다'라는 오류가 발생합니다. 어떻게 해결하나요?
A: 이 오류는 Visual C++ 재배포 가능 패키지가 설치되어 있지 않을 때 발생합니다. PHP 버전에 맞는 Visual C++ 패키지를 다운로드하여 설치하면 문제가 해결됩니다.
Q: PHP를 다른 디렉터리에 설치했는데, Apache에서 PHP를 인식하지 못합니다. 어떻게 설정해야 하나요?
A: Apache의 httpd.conf 파일에서 LoadModule 및 PHPIniDir 지시어에 설정된 경로가 실제 PHP 설치 경로와 일치하는지 확인하고, 필요 시 올바른 경로로 수정해야 합니다.
Q: PHP 설치 후 명령 프롬프트에서 'php' 명령어를 인식하지 못합니다. 어떻게 해결하나요?
A: 이 문제는 환경 변수에 PHP 경로가 제대로 설정되어 있지 않을 때 발생합니다. 시스템의 환경 변수 설정에서 Path 변수에 PHP 설치 경로를 추가하고, 명령 프롬프트를 재시작하여 변경 사항을 적용해야 합니다.