본문 바로가기
Programming/PHP

PHP와IIS 연동하기

by Wilkyway 2020. 10. 24.

오늘은 IIS에서 PHP를 연동하는 방법에 대해 알아보겠습니다. Django, Flask와 마찬가지로 FastCGI방식을 이용해야 합니다. 

 

1. CGI 설치

"제어판->프로그램->프로그램 및 기능->Windows 기능 켜기/끄기" 에서 아래의 그림에 따른 경로를 찾아들어가 CGI를 체크해줍니다. 그러면 알아서 관련 프로그램이 설치가 됩니다.

2. php download

php.net 사이트에서 PHP를 다운로드합니다. 이때 FastCGI연결이 가능하도록 Non Thread Safe 버전을 다운받아야 합니다. 자신의 window 타입에 맞는 버전(x64 or x86) 을 선택하여 다운받아 줍니다.

그런다음 적당한 위치에 압축을 풀어줘야 하는데, 저는 "C:\php7"이라는 폴더를 만들어서 거기에 넣어두었습니다. 

C:\php7폴더에 압축을 푼 모습. php-cgi.exe파일이 FastCGI에서 이용할 파일이다.

그리고 해당 폴더를 환경변수에 추가해 줍니다.


3. index.php파일 생성

PHP사이트에서 사용할 index.php파일을 하나 만들겠습니다.

<?php
	phpinfo();
?>


4. IIS 사이트 생성

다음으로 IIS관리자를 실행시키고 사이트를 하나 추가 생성합니다. 이름은 php_ex라고 지어주고, 실제 경로에는 index.php가 있는 폴더까지의 경로를 넣어줍니다. 그리고 포트는 임의로 설정하면 되는데 88번 포트를 할당했습니다.

(우선 로컬에서 테스트 목적이므로, port 개방은 이번에는 다루지 않겠습니다. 외부에서 접속이 가능하도록 port를 허용(개방)할 경우에는 링크 포스트를 참조하시기 바랍니다.)


5. IIS 처리기 매핑

다음으로 php 처리기 매핑이 필요합니다. 방금 생성한 "php_ex"사이트를 클릭하고 "처리기 매핑"을 클릭하여 들어오면 우측으 "모듈매핑 추가" 메뉴가 보입니다. 해당 메뉴를 클릭하여 아래와 같이 설정한 후 확인을 눌러줍니다. 


6. 확인

아래와 같이 잘 나온다면, 제대로 작동한다고 볼 수 있습니다. 

 

7. 예외

위 기본 설치방식처럼만 하면 되어야 할텐데....그게 생각보다 쉽지가 않습니다. 가장 많이 접하는게 VCRUNTIME140.dll 관련 오류인데...

또는 

요런 메시지...'vcruntime140.dll' 14.0 is not compatible....하는 에러 메시지입니다. php7이 Visual Studio 2015(혹은 그 이후버전)에서 컴파일 되어 "Visual Studio 2015용 Visual C++ 재배포 가능 패키지" 를 설치하면 된다고 합니다. 여기링크 사이트에서 vc_redist.x64.exe 버전을 다운받을 수 있습니다.

 

그런데도 계속 저런 오류가 발생한다면, vcruntime140.dll을 직접 다운받아 설치하는 방법으로 해결할 수 있습니다. 여기링크 사이트에서 본인 os버전에 맞는 dll파일을 직접 다운받아서(또는 구글 검색) "C:\Windows\SysWOW64" 폴더에 저장(덮어쓰기) 합니다.

 


모두들 건승하길 빌겠습니다.

그럼 이만~~

'Programming > PHP' 카테고리의 다른 글

React 에서 php 를 이용해 db데이터 가져오기  (3) 2020.08.25

태그

, ,

댓글0