[Server] 로컬에 APM 설치하기
오늘은 기존 컴퓨터 운영체제 (Window)에 맞는 Apache, Php, Mysql 각각 설치하는 과정을 글로 담아보려 한다.
우선 Apache, Php, Mysql 이란?
Apache: 웹 서버
Php: 프로그래밍 언어
Mysql: 데이터베이스
‼️ 설치 먼저 ‼️
1) Visual C++ 재배포 가능 패키지 설치
https://www.microsoft.com/ko-KR/download/details.aspx?id=48145
Download Visual Studio 2015용 Visual C++ 재배포 가능 패키지 from Official Microsoft Download Center
중요! 아래에서 언어를 선택하면 전체 페이지 내용이 해당 언어로 신속하게 변경됩니다. 독일어러시아어스페인어영어이탈리아어일본어중국어(간체)중국어(번체)체코어터키어포르투갈어(브라
www.microsoft.com
요 페이지에서 다운 가능!
2) Apache 설치하기
https://www.apachelounge.com/download/
Apache VS16 binaries and modules download
www.apachelounge.com
요 페이지에서 각자 컴퓨터 사양 맞게 설치하기!
3) Php 설치하기
https://windows.php.net/download/
PHP For Windows: Binaries and sources Releases
PHP 8.1 (8.1.10) Download source code [25.35MB] Download tests package (phpt) [15.12MB] VS16 x64 Non Thread Safe (2022-Aug-30 18:46:44) Zip [29.24MB] sha256: 7cd98bd52d14415fe893c5a92165a1919a478e9edc08d9606426ddc0c7cbd3a0 Debug Pack [23.83MB] sha256: 54ec
windows.php.net
여기서 php 버전 7 다운로드해야 함.
22.09.16 기준 최신 버전 8로 다운하니까 나중에 연결할 때 호환이 안돼서 ,,,, 애먹음
버전 7로 꼭!
1. 우선 C 드라이브에 압축해제 해준다
Apache는 Apache24 폴더에,
Php는 php 폴더에,
Mysql은 mysql-8.0.30-win64에 압축 해제 해주었다
2. Apache24\conf 폴더에서 httpd.conf 파일을 수정해준다
# line 37
자신에게 맞는 설치 경로로 변경
ex) Define SRVROOT "C:/Apache24"
# line 59
웹 서버는 12.34.56.78와 같은 주소를 갖고 있다.
뒤에 80이 포트번호로, 웹문서를 주고 받기 위한 규약이 80!
Listen 80으로 변경해준다.
ex) Listen 80
# line 218
웹서버를 관리하는 관리자의 이메일 주소를 자신의 이메일로 수정
ex) ServerAdmin asdf@naver.com
# line 227
서버 도메인이 없기에 임시로 localhost로 대체
ex) ServerName localhost:80
3. 명령 프롬프트를 **관리자 권한**으로 실행해준다!
실행한 다음, 다음과 같은 명령어 내려준다.
cd /Apache24
cd bin
httpd -k install
4. 작업관리자 > 서비스에서 Apache 2.4를 실행하고 localhost를 입력해주면!
(실행하고 실행 중이라 떠야 구동 가능)
Apache 실행 완료!
참고로 It Works!가 쓰여져 있는 파일은 Apache24 폴더 내 htdocs 안에 index.html이다
5. 압축 받은 Php를 원하는 드라이브에 압축 해제한다.
그리고 파일들 중 php.ini-development 파일을 php.ini로 변경해서 수정!
이때 확장자명 제대로 확인해야 함.
php.ini.txt 이렇게 텍스트로 저장될 수 있어서..
계속 이랬어서 오류 났다
# line 752
ex) extension_dir = "C:/php/ext"
로 수정
6. httpd.conf 수정
C:/apache24/conf의 httpd.conf 열고 다음과 같이 수정한다.
# line 288
DirectoryIndex 다음에 index.php 추가
# 파일 맨 마지막
PHPIniDir “C:/APM/php”
LoadModule php7_module “C:/APM/php/php7apache2_4.dll”
AddType application/x-httpd-php .html .php
AddHandler application/x-httpd-php .php
7. 저장 후 Apache 서비스 재시작
명령프롬프트 관리자 권한으로 실행 후 apache 서버 재시작한다.
명령은 httpd -k restart
8. php 실행 테스트
php 인터프리터가 제대로 동작하는지 확인하기 위해 웹문서 공간에 php 파일을 작성한다
# 웹문서 저장공간 주소 => C:/Apache24/htdocs에 php파일 작성
<?php
phpinfo();
?>
완료!
9. Mysql 구축
Path 환경변수 추가해준다
실행 (Win키 + r) -> SystemPropertiesAdvanced -> 환경변수 (N)
시스템 변수 -> Path 아래 줄에 추가
C:\mysql-8.0.30-winx64/bin
10. 메모장으로 C:\mysql-8.0.30-winx64\ (Mysql 루트 디렉토리)에 my.ini 파일 생성
파일 생성 후 아래 내용 작성하기
[mysqld]
# set basedir to your installation path
basedir=C:/APM/mysql
#set datadir to the location of your data directory
datadir=C:/APM/mysql/data
port=3306
11. C:\mysql-8.0.30-winx64 (Mysql 루트 디렉토리)에 data 디렉토리 생성
12. Mysql 구동을 위해 System DB 생성하기
명령 프롬프트 관리자 권한으로 실행한다
mysqld --initialize
13. 자동 생성된 임시 root 비밀번호 취득한다
1) C:\mysql-8.0.30-winx64\data에 생성된 (어쩌구).err 파일 열기
2) '[Note] A temporary password is generated for root@localhost: '다음에 나온 비밀번호가 root 비밀번호'
14. Mysql 서비스 등록
mysqld.exe를 실행하는데 이번에는 절대경로를 적어서 실행해야한다.
1) 관리자 권한 명령프롬프트 -> C:\mysql-8.0.30-winx64\bin\mysqld.exe --install
2) net start mysql 실행
3) services.msc 실행, MySQL 서비스 '실행 중' 상태면 성공이다!
15. Mysql 로그인해 root 비밀번호 변경
1) mysql -u root -p 실행
2) 위에서 얻은 root 비밀번호 입력
3) 다음 쿼리문 실행 (밑줄은 바꾸고자 하는 root 비밀번호 입려)
ALTER USER 'root'@'localhost' IDENTIFIED BY '비밀번호';
15. Mysql 테스트
1. 현재 DB 확인
show databases;
2. 새로운 DB 생성
create database seolki;
3. 생성된 DB 확인
show databases;
DB 테이블 생성 확인!
16. php.ini에서 mysql 관련 extension dll 사용 활성화
1. C:/php/php.ini 수정
2. Dynamic Extensions 항목 찾기
3. 다음 항목을 찾아 주석 해제 후 저장
;extension = mysqli
;extension = pdo_mysql
4. 관리자 권한 명령프롬프트 -> httpd -k start
17. APM 전체 연동 테스트
1) document root (C:/Apache24/htdocs)에 아래와 같이 mysqltest.php 작성
<?php
echo "Mysql connection test<br />";
$db = mysqli_connect("localhost", "root", "<password>", "test");
if($db) {
echo "connect success<br />";
} else {
echo "connect failed<br />";
}
$result = mysqli_query($db, 'SELECT VERSION() as VERSION');
$data = mysqli_fetch_assoc($result);
echo $data['VERSION'];
?>
2) 웹브라우저 주소창에 localhost/mysqltest.php 입력하여 접속
위와 같이 나온다면 정상 작동하는 것이다!