Windows PHP 수동 설치 및 환경 설정
이 문서에서는 Windows 운영체제에 전용 설치 프로그램(Wizard)을 사용하지 않고, 사전 컴파일된 압축 바이너리 파일(zip)을 활용해 가볍고 완벽하게 PHP 구동 환경을 수동 조립하는 법을 알아봅니다.
1. Windows PHP 경로 탐색 및 로드 구조
아래 흐름도는 윈도우 터미널에서 php 명령을 입력했을 때, 시스템이 실행 파일(php.exe)을 어떠한 순서로 탐색하고 이에 연동된 환경 설정 파일(php.ini)을 어떻게 읽어 들이는지 단계별 과정을 나타냅니다.
2. 패키지 다운로드 및 압축 해제
- 다운로드 페이지 접속: Windows용 PHP 공식 빌드 다운로드 사이트(windows.php.net/download)에 접속합니다.
- 버전 선택: 최신 안정 버전(예: PHP 8.3.x)의 VS16 x64 Non-Thread Safe 항목을 찾은 뒤 하단의 Zip 링크를 클릭해 내려받습니다. (이유는 NTS vs TS 선택 가이드 참조)
- 폴더 생성 및 압축 풀기:
- 파일 탐색기를 열어 로컬 디스크 C 최상위에
php라는 이름의 빈 폴더를 생성합니다. (C:\php경로 권장) - 내려받은
.zip파일의 압축을 풀어 모든 파일이C:\php경로 내부로 들어가도록 복사합니다.
- 파일 탐색기를 열어 로컬 디스크 C 최상위에
압축을 풀면 폴더 구조 내부에 실행 엔진인 php.exe, 웹 게이트웨이 모듈 php-cgi.exe, 환경 설정 템플릿인 php.ini-development, 그리고 확장 드라이버들이 보관된 ext 폴더 등이 포함되어 있습니다.
3. 시스템 환경 변수(Path) 등록 절차
Windows는 실행 명령어가 접수되면 현재 작업 디렉터리를 먼저 찾은 뒤, 파일이 없으면 OS 시스템 전역 경로 목록에 등록된 경로들을 차례대로 뒤집니다. C:\php 경로를 윈도우의 Path 시스템 변수에 등록하면 터미널 어디서든 바로 php 명령어를 사용할 수 있습니다.
- 키보드의
Windows 키 + R을 눌러 실행 창을 띄운 뒤,sysdm.cpl을 입력하고 엔터를 쳐서 [시스템 속성] 창을 켭니다. - 상단의 [고급] 탭을 클릭한 후 하단의 [환경 변수(N)…] 버튼을 누릅니다.
- 아래의 [시스템 변수(S)] 목록에서
Path항목을 찾아 선택하고 [편집(I)…]을 누릅니다. - 변수 목록 오른편의 [새로 만들기(N)] 버튼을 누르고 PHP 압축이 풀린 경로인
C:\php를 입력합니다. - 열린 모든 대화 상자의 [확인] 버튼을 눌러 설정을 영구 저장합니다.
- 확인: 열려있던 모든 명령 프롬프트(cmd) 창을 닫고, 새로운 창을 열어 아래 명령어를 입력합니다.
php -v성공적으로 버전 출력이 나타난다면 OS 차원의 환경변수 경로 설정이 완전히 완료된 것입니다.
4. 환경 설정 파일(php.ini) 복사 및 최적화
압축 해제 초기 상태에는 실 작동용 php.ini 설정 파일이 보이지 않습니다. 템플릿 파일을 이용해 새로 생성해 줍니다.
C:\php폴더에서 개발 모드 환경 템플릿인php.ini-development파일을 복사하여 같은 디렉터리에 붙여넣고 이름을php.ini로 바꿉니다.- 텍스트 에디터(VS Code, 메모장 등)로
php.ini를 열고 다음 설정을 변경합니다.
1) 확장 모듈 라이브러리 경로 명시
Windows 환경에서 PHP 확장 드라이버(.dll)들을 탑재해 쓰기 위해 주석을 해제하고 실제 물리 드라이브 기준의 모듈 폴더 경로를 활성화해 줍니다.
; 수정 전
;extension_dir = "ext"
; 수정 후 (앞의 세미콜론 ';' 제거하여 활성화)
extension_dir = "ext"
2) 필수 모듈 활성화
데이터베이스 연동 및 멀티바이트 문자열 처리에 필수적으로 사용되는 모듈들을 로드합니다. 각 줄 앞에 붙어 있는 세미콜론;(주석 기호)을 제거하여 활성화합니다.
; MySQL PDO 계층 데이터베이스 연동용 확장 모듈
extension=pdo_mysql
; 구식 MySQL 전용 커넥터가 필요한 경우
extension=mysqli
; 한글 등 다국어 처리를 위한 인코딩 필수 모듈
extension=mbstring
; 외부 API 호출 및 통신 모듈
extension=curl
; 이미지 그래픽 동적 처리 모듈
extension=gd
수정을 마친 후 저장합니다. 이후 명령행 환경에서 데이터베이스 연결이나 API 호출 시 오류 없이 확장팩 기능들이 완벽하게 동작하게 됩니다.