2023.06.02
개인 기록용 입니다 :) 오타, 수정 등 피드백 환영
본문 하단에 해당 블로그 링크 참조
안드로이드 미니프로젝트 진행 중
DB 연동을 실시해야 하는데
보안상의 이유로 안드로이드는
외부 DB와의 접속을 직접적으로 할 수 없다고 한다
때문에 웹서버를 구축하고
PHP를 통해 DB 데이터를 받아와야 한다
1.아파치 설치
1) 아래 링크를 통해 아파치 프로그램 다운로드
아파치 프로그램 다운로드
2) 다운로드 파일 압축 해제 후 Apache24 폴더 원하는 곳으로 이동
필자의 경우
C:\Program Files
경로로 옮겼습니다
PHP 연동을 위해 Apache24 폴더 내에서
수정해야 할 사항이 있습니다
하지만 다른 의도로 활용하실 경우
해당하는 사항이 아닐 수 있으니
개인 환경에 맞추어 적용시키세요
2.php 설치
1) 아래 링크에서 PHP 다운로드
PHP 다운로드
윈도우 x64 이고
아파치를 사용하기 때문에
Thread Safe(TS) 버전의 zip 파일로 다운로드 했다
Thread Safe(TS) 와 Non-Thread Safe(NTS) 의 차이는
php 다운로드 사이트 좌측에 설명 되어 있다
아파치를 사용한다면
VC15, VC16 버전
그리고 Thread Safe 버전을 사용하라고
설명이 되어 있고
TS는 멀티스레드
NTS는 싱글스레드
를 참조한다고 설명도 되어있다
다시 돌아와서 php zip 파일을 다운했다면
압축을 풀고 해당 폴더의 이름을
구분하기 쉽게 바꾼 뒤
아파치와 같이 원하는 폴더로 이동시킨다
필자의 경우
폴더 이름 : PHP
폴더 경로 : C\Program Files
로 이동시켰다
2) Apache24 > httpd.conf 파일 수정
C:\Program Files\Apache24\conf
경로 내에 httpd.conf 라는 이름의 파일이 존재
해당 파일을 메모장으로 열고
수정사항 적용
37번째 줄
필자는 Apache24 폴더를
C:\Program Files로 옮겼기 때문에
해당 하는 내용을 아래와 같이 바꾸었다
# 변경 전
Define SRVROOT "c:\Apache24"
# 변경 후
Define SRVROOT "c:\Program Files\Apache24"
227번째 줄
해당 내용을 보면
ServerName 을 www.example.com:80
으로 지정한 것을 볼 수 있는데
이 내용은 아파치 서버의 도메인 이름을
해당 내용으로 지정한 것이다
주석을 없애고 해당 내용을 수정하든
아래에 새로운 내용을 작성하든 상관없다
# 변경 전
# ServerName www.example.com:80
# 변경 후
ServerName localhost
3) 포트번호 확인
만일 80번 포트를 쓰고 있다면
다른 포트를 활용해주어야 하는데
해당 내용은 60번째 줄
Listen 80
부분의 숫자를 원하는 포트번호로 수정해주면 된다
4) directoryIndex 설정
286번째 줄
우리는 html 파일이 아닌
php 파일을 불러올 것이기 때문에
해당 내용에 index.php 도 포함시켜준다
# 변경 전
DirectoryIndex index.html
# 변경 후
DirectoryIndex index.php index.html
5) 최하단에 아래 코드 추가
PHPIniDir "개인 환경 내 php 경로"
LoadModule php7_module "개인 환경 내 php 경로/php7apache2_4.dll"
AddType application/x-httpd-php .html .php
AddHandler application/x-httpd-php .php
3) php.ini
php 폴더에 있는 php.ini-production 파일을 수정해야 한다
php.ini-production 파일을 php.ini 로 변경한다
이와 같은 과정은 php 설정에 필요한 config 파일을
Apache에 연동하기 위함이다
MySQL 연동을 위해선 php.ini 파일에도 수정이 필요하다
파일을 열어 아래 내용을 수정한다
최초 실행시 위 두 구문은 주석처리가 되어 있는데
주석을 풀어 해당 모듈을 사용하겠다고 선언한다
MySQL 연동에는 mysqli 라는 모듈이 필요하기 때문에
사용하겠다고 선언하는 것이라 생각하면 이해가 편하다
extension_dir 부분을 찾아
본인의 php 설치 경로 내에 있는 ext 폴더를 찾아
해당 경로를 넣어준다
4) Apache 실행 및 테스트
① 명령프롬프트(CMD) 를 실행하여 관리자 권한으로 실행
② Apache24\bin 이 있는 폴더로 이동
③ Apache 서비스 설치 및 시작해보기
httpd -k install // Apache 서비스 설치
httpd -k start // Apache 서비스 시작
httpd -k stop // Apache 서비스 종료
httpd -k restart // Apache 서비스 재시작
httpd -k uninstall // Apache 서비스 제거
④ 웹브라우저 주소창에 localhost/index.html 로 접속 후 성공시 아래와 같은 결과가 나온다
⑤ phpinfo 창 만들기
메모장을 열어 아래 내용을 기입 후 저장한다
php
phpinfo();
?>
이름은 아무거나 상관없지만 확장자는 .php 가 되도록 해야하며
편의를 위해 phpinfo.php 로 등록하겠다
Apache는 php, html 과 같은 파일을
Apache24 폴더 내 htdocs 라는 곳에서 불러온다
이러한 내용은 httpd.conf 파일에서 확인할 수 있는데
SRVROOT 의 경우 우리가 수정했던
Apache24 가 들어있는 경로이고
htdocs 는 해당 경로 내의 htdocs 폴더를 가리킨다
어쨌든
C:\Program Files\Apache24\htdocs
이 경로에 있는 파일을 읽어 온다는 말이니
작성한 phpinfo.php 파일을 해당 경로에 넣고
웹 브라우저 주소창에 localhost/phpinfo.php 를 입력해보자
이런 php 관련 정보가 나온다면 성공이다
참고 링크)
gogoma.tistory.com
carpe-diem0.tistory.com
겪은 오류 사례) httpd: Syntax error on line ~ 위와 같은 사례는 httpd.conf 파일 ~줄에 오류가 있다는 것이니 살펴보자 해당 구문에서의 오류인 것을 확인했으니 금방 해결할 수 있을것이지만 만일 LoadModule 과 관련된 것이라면 php 를 Thread Safe 로 설치했어야 하는데 Non-Thread Safe 로 설치했을 수 있다 다운로드 받은 파일명에 nts가 있는지 없는지 살펴보고 잘못 설치했다면 제대로 된 파일로 다시 설치하자 LoadModule php_module “C:\Program Files\PHP/php8apache2_4.dll” 이 구문에는 php 버전이 몇이냐에 따라 달라질 수 있으니 본인 환경과 맞는 파일을 잘 찾아보자