본문 바로가기
시행착오 스토리/카카오봇

#4 카카오 자동응답 API로 카카오봇 만들기 - Apache + php 서버 구현

by 양벨라 2017. 9. 5.


Apache와 php를 이용하여 서버 구현하기

1. Apache 설치

① 다운로드:
Apache는 https://www.apachelounge.com/download/ 에서 다운받을 수 있다.
C++ Redistributable Visual Studio 2015의 선행 설치를 요구하고 있으며 없으면 VCRUNTIME140.dll 오류를 만날 수 있다.


② zip을 풀고 그 중에서 "Apache24"라는 폴더를 원하는 곳에 풀어준다. 그곳이 아파치가 설치되는 곳이다. 

2. 설정파일 수정(httpd.conf)


[설치경로]/conf/httpd.conf


ServerRoot 경로 변경 (\를 /로 변경해주기) - 포트 변경 (굳이 안해도 상관은 없음) - 웹문서 저장위치 변경
> DocumentRoot "D:/Apache24/htdocs"
> <Directory "D:/Apache24/htdocs">

- ServerName 변경
> ServerName www.example.com:80 찾아서 # 제거하고 ServerName localhost:80 (포트 변경되었다면 변경해줌)

3. 아파치 서비스를 윈도우에 등록

- path 등록


(win+R > control > 시스템 > 고급시스템설정 > 고급 > 환경변수 > 시스템변수 > path >"D:\Apache24\bin" 추가)


- 아파치 서비스 설치
(관리자권한으로 cmd 실행 > 경로를 httpd.exe가 있는 곳으로 이동 > httpd -k install)


php 설치 및 연동

1. 다운로드


버전이 너무 많은데 which version do i choose를 확인해본다. IIS는 Non-Thread Safe(NTS), Apache는 Thread Safe(TS) / 32비트냐 64비트냐 는 아파치와 맞춰준다.


- 역시나 설치할 곳에 풀어준다.


2. php 설정파일 수정(php.ini-production)

- php.ini 로 이름을 변경 - ;extension_dir="./" (; 제거) > extension_dir="[설치경로]/ext" (\가 아닌 /로 해주자)


extension_dir="D:/php/ext"


3. 연동을 위해 apache 설정파일 수정(httpd.conf)

- <IfModule dir_module> 을 찾아서 DirectoryIndex에 index.php를 index.html 앞에 추가한다.
- 구문 추가
PHPIniDir "[php.ini파일 경로]"
LoadModule php7_module "[php설치경로]/php7apache2_4.dll"
AddType application/x-httpd-php .html .php
AddHandler application/x-httpd-php .php

4. 아파치 재시작

httpd -k restart 
꺄하하 얼마 안남았다!

5. 아파치 웹문서 저장공간에 phpinfo.php 파일을 저장

 <?php
phpinfo();
?>

6. 웹브라우저로 접속

http://localhost/phpinfo.php - 알맞은 응답을 받기 위하여 keyboard API를 구성한다. - 카카오에서는 type으로도 응답이 성공되기 때문에 역시 그렇게 코딩


keyboard API
 <?php
echo <<< EOD
{
  "type":"text"
 }
EOD;
?>
- php서버 구성에서 중요한 것은 요청을 보낼때 "phpinfo.php" 처럼 .php 형식으로 보내야하기 때문에 확장자를 숨기는 부분도 고려해야한다. 왜냐하면 카카오에서는 요청을 보낼 때 확장자를 붙이지 않기 때문이다.


httpd.conf 를 수정한다.
 <Directory "[코드가 있는 경로]" >
Options FollowSymLinks MultiViews
AllowOverride none
Order allow, deny
Allow from all
</Directory>