이번 포스팅에서는 PHP와 MySQL을 연동하는 작업에 대해 설명합니다. 기존에 설명드렸던 WAMP 서버를 설치하면 자동으로 연동해주지만, 필요한 것만 쓰기에는 무거운 프로그램이기 때문에 PHP, MySQL만 세팅하고자 합니다.
WAMP 관련 참고 포스팅: [프리랜서] 그누보드 (2) - WAMP와 VS Code에서 개발하기
LAMP Stack
LAMP 스택
은 개발자가 웹 사이트와 웹 애플리케이션을 빌드하는 데 사용하는 4가지 소프트웨어 기술(OS, WebServer, DB, Programming)의 번들입니다.LAMP는 Linux(운영 체제), Apache(웹 서버), MySQL(데이터베이스 서버), PHP(프로그래밍 언어)의 두문자어입니다.
MySQL Server
: https://dev.mysql.com/downloads/mysql/8.0.htmlMySQL Workbench
: https://dev.mysql.com/downloads/workbench/MySQL 서버 설치시 Workbench
도 포함되어 있습니다.
사용할 프로그램을 선택해줍니다.
로컬 환경에서 개발용으로 사용할 것이기 때문에 Server
, Shell
프로그램을 선택해주면 됩니다.
사용할 버전에 맞는 PHP Zip 파일
을를 다운받습니다. 압축을 해제해주고, 환경변수에 PHP Home을 등록해줍니다.
명령 프롬프트(Command Prompt, 이하 CMD)
창 혹은 기타 IDE에서 PHP 명령을 사용하려면 다음과 같이 환경변수를 등록해줘야 합니다.
Path
변수에 바로 PHP 경로를 적어줘도 되나, PHP는 여러 버전이 있을 수 있기 때문에 PHP_HOME
변수를 생성해 %PHP_HOME%
을 추가해줍니다.
CMD 창을 열어 버전을 명시하는 기본 명령어를 내려줍니다.
$php -version
만약 환경변수 등록 전이라면 아래와 같은 에러메세지가 나타납니다.
환경변수 등록을 마친 뒤라면 아래와 같이 정상적으로 버전을 명시해줍니다.
php 폴더에 있는 php.ini-production
파일을 복사해 php.ini
파일을 생성합니다.
Text Editor 추천
저는 주로 메모장을 잘 사용하지 않고 Text Editor인 NPP(
Notepad++
) 프로그램을 설치해서 사용합니다.NPP는 다음 링크에서 다운받을 수 있습니다.
확장 프로그램을 이용하기 위해 extension_dir
을 검색해 주석을 해제하고, ext 폴더를 지정해줍니다.
현재 디렉터리 밑에 ext 폴더가 있습니다.
MySQL 서비스 확장 프로그램 활성화를 위해 extension=mysqli
를 검색하여 주석을 해제합니다.
$php -version
php 명령이 잘 수행되면, 설정이 잘된 것으로 볼수 있습니다.
PHP 프로젝트에서 간단히 DB 연결 코드를 작성해봅니다.
저는 아래와 같이 Test DB를 생성해서 테스트 해보았습니다. Test 완료 후에는 삭제합니다.
# DB 생성
create database test;
# DB 삭제
drop database test;
<!DOCTYPE html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>MySql-PHP 연결 테스트</title>
</head>
<body>
<?php echo "MySql 연결 테스트<br>"; $db = mysqli_connect("localhost", "root", "password", "db");
if($db){ echo "connect : 성공<br>";
} else{ echo "disconnect : 실패<br>";
}
$result = mysqli_query($db, 'SELECT VERSION() as VERSION');
$data = mysqli_fetch_assoc($result); echo $data['VERSION']; ?>
</body>
</html>
PHP를 실행한 후, 웹 브라우저에서 접속하면 아래와 같은 화면을 볼 수 있습니다.
$php -S localhost:80 -t D:\Git\Template
[Mon Nov 27 16:24:36 2023] PHP 8.2.12 Development Server (http://localhost:80) started
[Mon Nov 27 16:24:41 2023] [::1]:53344 Accepted
[Mon Nov 27 16:24:41 2023] [::1]:53344 [200]: GET /
[Mon Nov 27 16:24:41 2023] [::1]:53344 Closing