Windows PHP 설치 및 개발 환경 개요


과거에는 PHP가 리눅스 서버 중심의 특성을 지녀 Windows 환경에서의 직접 설치가 복잡하게 느껴지는 경우가 많았습니다. 그러나 최근에는 사전 빌드된 압축 바이너리 배포와 원클릭 통합 설치 도구(APM 패키지)들이 다양하게 성숙하여 초보 개발자도 몇 분 내에 완전한 PHP 구동 환경을 가동할 수 있습니다.

Windows 환경에서 PHP 환경을 구축하는 방법은 크게 두 가지로 분류할 수 있습니다.


1. Windows PHP 설치 방식 비교


1) 수동 다운로드 및 실행 파일 구성

  • 특징: 인스톨러 프로그램 없이 컴파일된 파일들을 다운로드해 지정 폴더에 압축을 풀고 경로(Path)를 직접 등록하는 방식입니다.
  • 장점: 시스템 리소스가 매우 가볍고, 여러 PHP 엔진 버전을 직접 제어하는 등 세부 구조와 확장 모듈을 이해하는 데 큰 도움이 됩니다.
  • 적합 대상: PHP CLI 스크립트 실행, 빠른 문법 학습, Docker 또는 WSL2를 주로 쓰면서 가볍게 윈도우 로컬에서도 구동하려는 경우.
  • 수동 설치 및 설정 배우기

2) 원클릭 통합 패키지 설치 (WAMP / APM)

  • 특징: 웹 서버(Apache/Nginx), 데이터베이스(MySQL/MariaDB), 그리고 PHP 컴파일러를 하나의 응용프로그램 패키지로 묶어 마법사 형태로 한 번에 설치해 주는 APM 도구입니다.
  • 장점: 복잡한 포트 매핑이나 가상 호스트(VirtualHost), 데이터베이스 계정 생성을 통합 UI를 통해 마우스 조작만으로 완벽 처리할 수 있습니다.
  • 적합 대상: Windows 상에서 실제 동작하는 웹 포털 및 데이터베이스 연동형 모던 웹 개발을 풀스택으로 시작하려는 경우.
  • XAMPP 통합 패키지 설치 학습하기


2. 전역 명령 실행을 위한 경로 설정과 주의사항


어떤 설치 방식을 택하든, 윈도우 명령 프롬프트(CMD)나 파워셸(PowerShell) 등에서 PHP를 수월하게 부르려면 운영체제가 실행 파일의 위치를 바로 파악할 수 있도록 경로를 알려주어야 합니다. 이를 환경 변수(Environment Variables) 설정이라고 부릅니다.

경로가 지정되지 않으면 파일이 설치된 폴더 밖에서는 php라는 명령어를 사용할 수 없습니다.

[!WARNING] 환경 변수 변경 후 터미널 창 재실행 필수 윈도우에서 시스템 환경 변수 Path를 추가한 후, 기존에 켜져 있던 명령 프롬프트나 VS Code 터미널 창에서 바로 php -v를 입력하면 환경 변수가 반영되지 않아 오류가 납니다. Windows는 터미널 프로세스가 구동될 때 부모 프로세스(Explorer)로부터 환경 변수를 복사해 오기 때문입니다. 반드시 기존 터미널 창을 완전히 닫고 새 창을 열어 명령을 실행해야 합니다.


3. Git Bash 쉘 연동 및 대화형 모드(winpty) 설정 팁


윈도우 환경에서 Git을 설치하면 리눅스 터미널 명령어를 다룰 수 있는 Git Bash 터미널을 주로 쓰게 됩니다. 환경 설정을 제어했음에도 Git Bash에서 php 명령어가 정상 인식되지 않거나 엉뚱한 이전 버전을 실행하는 경우에는 홈 경로에 에일리어스(Alias)를 추가해 지정합니다.

  1. Git Bash를 엽니다.
  2. 사용자 홈 경로의 설정을 엽니다. (파일명: ~/.bashrc 또는 ~/.bash_profile)
  3. 파일 끝에 아래와 같이 설치된 PHP의 실행 파일 전체 물리 주소를 별칭으로 입력해 줍니다.
    # 예시: C드라이브 아래 php8.3 폴더 내의 php.exe로 고정 매핑
    alias php='/c/php8.3/php.exe'
    
  4. 저장 후 source ~/.bashrc를 가동해 변경 내역을 터미널에 반영합니다.

[!TIP] Git Bash에서 대화형 쉘(php -a) 실행 시 먹통 현상 해결법 Git Bash(MinTTY 윈도우) 내부 버그로 인해 그냥 php -a를 입력하면 Interactive shell 프롬프트가 뜨지 않고 화면이 멈추거나 키 입력이 먹지 않는 현상이 자주 발생합니다. 이 경우 가상 TTY 제어용 프리픽스winpty를 붙여 실행해야 합니다.

  • 임시 실행: winpty php -a
  • 영구 단축어 설정: ~/.bashrc 파일에 아래 별칭을 추가해두면 평소처럼 php -a 입력 시에도 정상 동작합니다. alias php="winpty php"


4. Windows PHP 설치 시 3대 빈번 오류 해결 방안 (Troubleshooting)


1) VCRUNTIME140.dll (또는 MSVCR120.dll) 누락 에러

  • 원인: 수동 다운로드한 PHP.exe가 작동하는 데 필요한 C++ 런타임 공유 라이브러리가 윈도우 OS에 깔려있지 않아서 발생합니다.
  • 해결책: Microsoft 공식 지원 페이지에서 Visual Studio 2015-2022용 Visual C++ 재배포 가능 패키지(VC++ Redistributable)를 다운로드하여 설치합니다. (반드시 PHP 아키텍처와 일치하는 vc_redist.x64.exe 다운로드 권장)

2) APM 통합 서버 구동 시 포트 80 충돌 오류 (Apache 서비스 실행 불가)

  • 원인: 윈도우 웹 IIS 서비스나 Skype, 혹은 Windows 기본 HTTP 드라이버 서비스(http.sys)가 80번 포트를 미리 선점하고 있어 아파치 웹서버의 실행이 거부된 상태입니다.
  • 해결책:
    • Windows 기능 켜기/끄기에서 인터넷 정보 서비스 (IIS) 항목을 체크 해제하여 끕니다.
    • 관리자 권한 명령 프롬프트에서 net stop http 명령을 수행하여 윈도우 내장 HTTP 드라이버 가동을 중지시키거나, 비트나미 설정에서 웹 포트를 8080이나 81로 변경하여 실행합니다.

3) 확장 프로그램 DLL 로드 실패 경고 (PHP Warning: PHP Startup: Unable to load dynamic library...)

  • 원인: php.ini 내부 설정 중 모듈이 들어있는 디렉터리 경로 지시어(extension_dir)가 비활성화되어 있거나 오타가 난 경우입니다.
  • 해결책: php.ini 파일을 열고 extension_dir = "ext" 라인 맨 앞의 주석 세미콜론(;)이 완전히 지워졌는지 확인하고 저장한 후 서버 프로세스를 다시 시작하십시오.
서브목차