개발 환경을 왜 먼저 만드는가
PHP는 글로만 배우기 어렵습니다. 코드를 한 줄 바꾸고, 브라우저를 새로고침하고, 결과가 어떻게 달라지는지 직접 확인해야 감이 잡힙니다. 그래서 이번 장의 목표는 단순합니다. 내 컴퓨터에서 PHP 파일을 만들고 실행할 수 있게 만드는 것입니다.
앞 장에서 PHP는 서버에서 실행된 뒤 HTML을 브라우저에 보낸다고 했습니다. 이 장에서는 그 서버 역할을 내 컴퓨터가 잠시 맡습니다. 실제 서비스 서버를 준비하는 것이 아니라, 학습용 로컬 환경을 만드는 단계입니다.
이번 장이 끝나면 다음 일을 할 수 있어야 합니다.
터미널에서 PHP 버전을 확인한다.
PHP 파일을 명령줄에서 실행한다.
PHP 내장 웹 서버를 켜고 브라우저에서 PHP 페이지를 연다.
코드 편집기에서 PHP 파일을 편하게 작성한다.
php.ini가 무엇인지 이해하고 에러 표시 설정을 확인한다.
AI 생성 이미지
PHP 8.x 설치하기
이 책은 PHP 8.x 기준으로 진행합니다. PHP 7.x 이하에서도 많은 예제가 동작할 수 있지만, 지금 새로 배우는 독자라면 PHP 8.x로 시작하는 것이 좋습니다. 최신 문법과 타입 처리 방식, 오류 메시지, 라이브러리 생태계가 PHP 8.x를 기준으로 움직이고 있기 때문입니다.
설치 방법은 운영체제마다 조금 다릅니다. 여기서는 "터미널에서 php 명령을 실행할 수 있는 상태"를 만드는 것을 목표로 합니다.
Windows
Windows에서는 보통 두 가지 방법 중 하나를 선택합니다.
첫째, PHP 공식 배포 파일을 내려받아 원하는 폴더에 풀고, 환경 변수 PATH에 PHP 폴더를 추가하는 방법입니다. 이 방식은 PHP 자체가 어디에 설치되고 어떻게 실행되는지 이해하기 좋지만, 처음에는 설정이 조금 번거로울 수 있습니다.
둘째, XAMPP, Laragon 같은 통합 개발 환경을 사용하는 방법입니다. PHP, 웹 서버, 데이터베이스가 함께 들어 있어 시작이 쉽습니다. 다만 이 책의 초반부에서는 PHP 내장 웹 서버를 주로 사용할 것이므로, 어떤 도구를 쓰더라도 터미널에서 php 명령이 실행되도록 만드는 것이 중요합니다.
설치 후에는 새 명령 프롬프트나 PowerShell을 열고 다음 명령을 실행합니다.
php -v정상이라면 다음과 비슷한 결과가 나옵니다.
PHP 8.3.0 (cli) ...여기서 중요한 단어는 cli입니다. CLI는 Command Line Interface의 줄임말로, 터미널에서 명령어로 프로그램을 실행하는 방식을 뜻합니다. 즉 php -v는 브라우저가 아니라 터미널에서 PHP를 실행한 것입니다.
만약 설치했는데도 php 명령을 찾을 수 없다고 나오면, PHP가 설치된 폴더가 PATH에 제대로 등록되었는지 확인하세요. 환경 변수를 수정한 뒤에는 기존 터미널을 닫고 새로 열어야 반영되는 경우가 많습니다.
macOS
macOS에서는 Homebrew를 많이 사용합니다. Homebrew가 설치되어 있다면 다음처럼 PHP를 설치할 수 있습니다.
brew install php설치가 끝나면 버전을 확인합니다.
php -v만약 command not found: php가 나온다면 PHP가 설치되지 않았거나, 설치된 PHP 경로가 터미널에 연결되지 않은 상태입니다. Homebrew가 설치 후 안내하는 PATH 설정 문구를 확인하고, 필요하면 터미널을 새로 열어 다시 실행해 보세요.
Linux
Linux에서는 배포판의 패키지 관리자를 사용합니다. Ubuntu 또는 Debian 계열이라면 보통 다음 흐름으로 설치합니다.
sudo apt update
sudo apt install php그다음 버전을 확인합니다.
php -v배포판과 버전에 따라 기본 저장소에서 제공하는 PHP 버전이 다를 수 있습니다. 이 책을 따라가는 데에는 PHP 8.x면 충분합니다. 만약 설치된 버전이 너무 낮다면 해당 배포판에서 PHP 8.x를 설치하는 방법을 따로 확인해야 합니다.
터미널에서 첫 PHP 실행하기
먼저 브라우저 없이 PHP만 실행해 봅시다. 원하는 위치에 학습용 폴더를 만듭니다.
mkdir php-textbook
cd php-textbook그 안에 hello.php 파일을 만들고 다음 코드를 입력합니다.
<?php
echo "안녕하세요, PHP!";PHP 코드는 보통 <?php로 시작합니다. 이것은 "여기부터 PHP 코드입니다"라고 알려주는 표시입니다. 예전 코드에서 <?처럼 짧은 시작 태그를 볼 수 있지만, 설정에 따라 동작하지 않을 수 있으므로 이 책에서는 항상 <?php를 사용합니다.
이제 터미널에서 실행합니다.
php hello.php결과는 다음처럼 나옵니다.
안녕하세요, PHP!이 방식은 PHP 코드를 빠르게 확인할 때 유용합니다. 나중에 문법, 조건문, 반복문, 함수처럼 브라우저가 꼭 필요하지 않은 예제는 CLI로도 충분히 연습할 수 있습니다.
여기서 CLI 실행과 웹 실행의 차이를 잠깐 짚고 넘어가겠습니다. CLI 실행은 터미널에서 PHP 파일을 바로 실행하는 방식입니다. 반면 웹 실행은 브라우저가 서버에 요청을 보내고, 서버가 PHP를 실행한 뒤 결과를 브라우저에 돌려주는 방식입니다. 같은 PHP 코드라도 실행되는 환경이 다를 수 있다는 점을 기억해 두세요.
PHP 내장 웹 서버로 브라우저에서 실행하기
이제 브라우저에서 PHP 파일을 열어 보겠습니다. PHP에는 학습과 개발에 사용할 수 있는 간단한 내장 웹 서버가 있습니다. Apache나 Nginx 같은 별도 웹 서버를 아직 몰라도 PHP 페이지를 실행할 수 있습니다.
먼저 php-textbook 폴더 안에 index.php 파일을 만듭니다.
<!doctype html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>첫 PHP 페이지</title>
</head>
<body>
<h1>첫 PHP 페이지</h1>
<p>
<?php echo "PHP가 HTML 안에서 실행되었습니다."; ?>
</p>
</body>
</html>터미널에서 index.php가 있는 폴더로 이동한 뒤 다음 명령을 실행합니다.
php -S localhost:8000-S는 내장 웹 서버를 실행하라는 뜻입니다. localhost는 내 컴퓨터 자신을 가리키는 주소이고, 8000은 브라우저가 접속할 포트 번호입니다. 포트는 한 컴퓨터 안에서 여러 서버 프로그램을 구분하기 위한 번호라고 생각하면 됩니다.
이제 브라우저 주소창에 다음 주소를 입력합니다.
http://localhost:8000화면에 "첫 PHP 페이지"와 "PHP가 HTML 안에서 실행되었습니다."가 보이면 성공입니다.
주의할 점이 있습니다. PHP 내장 웹 서버는 학습과 개발용입니다. 실제 서비스를 운영하기 위한 서버가 아닙니다. 실제 배포 단계에서는 Apache, Nginx, PHP-FPM 같은 구성을 배우게 됩니다. 지금은 "내 컴퓨터에서 PHP가 어떻게 실행되는지 확인하는 도구"로 이해하면 충분합니다.
서버를 멈추고 싶다면 내장 웹 서버를 실행한 터미널에서 Ctrl + C를 누릅니다.
HTML 안에 PHP 넣기
PHP는 HTML 전체를 대신 쓰는 언어가 아닙니다. 필요한 부분에 PHP를 섞어 동적인 값을 만들 수 있습니다.
예를 들어 현재 시각을 출력해 봅시다.
<!doctype html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>현재 시각</title>
</head>
<body>
<h1>현재 시각</h1>
<p>이 페이지는 PHP가 만든 HTML입니다.</p>
<p>현재 서버 시각: <?php echo date('Y-m-d H:i:s'); ?></p>
</body>
</html>브라우저를 새로고침하면 시각이 바뀝니다. HTML 파일만으로는 이런 값을 자동으로 만들 수 없습니다. PHP가 서버에서 date() 함수를 실행하고, 그 결과를 HTML 안에 넣어 브라우저로 보낸 것입니다.
조금 더 읽기 쉽게 변수도 사용해 보겠습니다. 변수는 값을 담아 두는 이름표입니다. PHP 변수는 $로 시작합니다.
<?php
$name = 'PHP 학습자';
?>
<!doctype html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>변수 출력</title>
</head>
<body>
<h1>환영합니다</h1>
<p><?php echo htmlspecialchars($name); ?>님, 첫 PHP 페이지에 오신 것을 환영합니다.</p>
</body>
</html>여기서 htmlspecialchars()는 출력할 문자열을 HTML에 안전하게 넣기 위한 함수입니다. 지금은 "브라우저에 값을 출력할 때는 안전한 형태로 바꿔 주는 습관" 정도로 이해하면 됩니다. 사용자 입력을 화면에 보여줄 때 이 습관이 보안의 기본이 됩니다.
코드 편집기 준비하기
메모장으로도 PHP 파일을 만들 수는 있습니다. 하지만 오타를 찾기 어렵고, 파일 구조를 관리하기도 불편합니다. 코드 편집기를 사용하는 것이 좋습니다.
VS Code
VS Code를 사용한다면 다음 설정을 권장합니다.
PHP 파일의 확장자를
.php로 저장한다.UTF-8 인코딩을 사용한다.
들여쓰기는 공백 4칸 또는 탭 중 하나로 통일한다.
PHP 문법 강조와 자동 완성을 지원하는 확장을 설치한다.
저장 시 파일 끝에 불필요한 공백이 남지 않게 설정한다.
초반에는 많은 확장이 필요하지 않습니다. 문법 색상이 잘 보이고, 괄호 짝을 확인할 수 있고, 파일 탐색이 편하면 충분합니다.
PHPStorm
PHPStorm은 PHP 개발에 특화된 통합 개발 환경입니다. 프로젝트 생성, 코드 자동 완성, 오류 표시, 디버깅 기능이 강력합니다. 다만 처음 배우는 단계에서는 기능이 많아 복잡하게 느껴질 수 있습니다.
PHPStorm을 사용한다면 설정에서 PHP 실행 파일 경로를 지정해야 합니다. 보통 Settings 또는 Preferences에서 PHP CLI Interpreter를 추가합니다. 정상적으로 연결되면 IDE 안에서도 PHP 버전이 표시됩니다.
어떤 편집기를 쓰든 핵심은 같습니다. 파일을 저장하고, 터미널에서 실행하고, 브라우저에서 결과를 확인할 수 있어야 합니다.
php.ini는 무엇인가
php.ini는 PHP의 설정 파일입니다. PHP가 실행될 때 어떤 규칙으로 동작할지 정하는 파일이라고 생각하면 됩니다. 예를 들어 다음과 같은 설정이 들어갑니다.
에러를 화면에 표시할지 여부
업로드할 수 있는 파일 크기
사용할 시간대
활성화할 확장 기능
메모리 사용 한도
현재 PHP가 어떤 설정 파일을 읽고 있는지 확인하려면 다음 명령을 실행합니다.
php --ini결과에는 Loaded Configuration File 항목이 나옵니다. 여기에 표시된 파일이 현재 터미널에서 실행하는 PHP가 읽는 php.ini입니다. 나중에 Apache나 PHP-FPM 같은 별도 실행 환경을 사용하면 읽는 설정 파일이 달라질 수 있지만, 지금처럼 내장 웹 서버와 CLI로 학습할 때는 이 명령으로 확인하는 흐름을 익혀 두면 됩니다.
학습 환경에서는 오류를 숨기지 않는 것이 좋습니다. 오류가 보여야 원인을 찾고 고칠 수 있습니다. php.ini에서 다음 설정을 확인할 수 있습니다.
display_errors = On
error_reporting = E_ALLdisplay_errors는 오류를 화면에 보여줄지 정합니다. error_reporting = E_ALL은 가능한 많은 수준의 오류를 보고하겠다는 뜻입니다.
단, 실제 서비스 환경에서는 오류를 그대로 화면에 보여주면 안 됩니다. 파일 경로, 서버 구조, 내부 변수 같은 민감한 정보가 노출될 수 있기 때문입니다. 개발 환경에서는 자세히 보고, 운영 환경에서는 로그로 남기고 사용자에게는 일반적인 안내만 보여주는 방식이 안전합니다. 이 내용은 오류 처리와 보안 장에서 다시 다룹니다.
간단히 현재 설정을 웹에서 확인하고 싶다면 info.php 파일을 만들 수 있습니다.
<?php
phpinfo();브라우저에서 http://localhost:8000/info.php로 접속하면 PHP 설정 정보가 표시됩니다. 확인이 끝나면 이 파일은 삭제하세요. 설정 정보가 자세히 노출되므로 실제 서버에 남겨 두면 위험합니다.
실습 과제
다음 과제를 직접 해 보세요.
php -v를 실행해 PHP 8.x가 설치되어 있는지 확인합니다.hello.php를 만들고 터미널에서 실행합니다.index.php를 만들고php -S localhost:8000으로 내장 웹 서버를 켭니다.브라우저에서
http://localhost:8000에 접속합니다.date()함수를 사용해 현재 날짜와 시간을 화면에 출력합니다.$name변수에 자신의 이름을 넣고 HTML 안에서 출력합니다.php --ini를 실행해 현재 사용 중인php.ini위치를 확인합니다.
자주 발생하는 오류 점검
php 명령을 찾을 수 없다고 나올 때
PHP가 설치되지 않았거나, 설치 경로가 PATH에 등록되지 않은 상태입니다. 설치가 끝난 뒤에도 기존 터미널은 변경된 설정을 모를 수 있으므로 새 터미널을 열어 다시 실행해 보세요.
브라우저에 PHP 코드가 그대로 보일 때
파일을 더블클릭해서 열었을 가능성이 큽니다. PHP는 서버를 통해 실행해야 합니다. 주소가 file:///.../index.php처럼 시작하면 PHP가 실행되지 않습니다. 반드시 내장 웹 서버를 켠 뒤 http://localhost:8000으로 접속하세요.
localhost:8000에 접속되지 않을 때
내장 웹 서버가 실행 중인지 확인하세요. 터미널에 php -S localhost:8000을 실행한 창이 열려 있어야 합니다. 이미 다른 프로그램이 8000번 포트를 사용 중이라면 다음처럼 다른 번호를 사용해도 됩니다.
php -S localhost:8080그때는 브라우저 주소도 http://localhost:8080으로 바꿔야 합니다.
한글이 깨질 때
HTML의 <head> 안에 다음 태그가 있는지 확인합니다.
<meta charset="UTF-8">또한 편집기에서 파일 인코딩이 UTF-8인지 확인하세요.
코드를 고쳤는데 화면이 바뀌지 않을 때
파일을 저장했는지 먼저 확인하세요. 그다음 브라우저를 새로고침합니다. 그래도 바뀌지 않는다면 현재 브라우저가 보고 있는 파일과, 편집기에서 수정한 파일이 같은 위치에 있는지 확인합니다.
이번 장에서는 PHP를 실행할 수 있는 최소 환경을 만들었습니다. 이제부터는 문법을 배울 때마다 직접 파일을 만들고 실행해 볼 수 있습니다. 다음 장에서는 변수, 자료형, 연산자처럼 PHP 코드의 가장 기본이 되는 문법을 다룹니다.
이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.