How to publish PHP files on Azure
IIS에서 Fast CGI를 통해서 PHP스크립트를 구동할 수 있게 되었습니다.
이와 함께 Azure Service Platform 에서도 역시 CGI 엔진을 통해 PHP를 구동할 수 있습니다.
PHP를 수동으로 설치할 때에는 조금 번거로운 설정들을 했어야 했지만 Web Platform Installer를 사용하면 IIS에 손쉽게 PHP를 설치할 수 있습니다. (이 곳에서 다운로드 받을 수 있습니다.)
초 간단 PHP Azure Publishing하는 방법에 대해 기술해 봅니다. (사실 Azure SDK에 나와있는 문서가 말을 너무 어렵게 써 놓은 지라 ^^)
Visual Studio 를 사용합니다.(무료 버전인 Web Developer 2008 Express 도 가능합니다)
1. Cloud Service 프로젝트 추가
2. 추가된 Cloud Service 프로젝트에서 *.csdef 파일 수정하기
3. CGI Web Role 추가하기(Visual Basic / C# 상관없음)
4. WebCGI Role 프로젝트에 php 폴더 만들기
5. PHP CGI 파일들 모두 4번에서 생성한 폴더에 복사하기
Web Platform Installer를 통해 PHP를 설치하셨다면 설치된 PHP의 위치는 %Program Files%\PHP 일 것 입니다.
이곳의 모든 파일들과 하위 폴더들을 그림 4번에서 생성한 php 폴더 밑으로 모두 복사합니다.
6. 추가된 PHP 폴더 아래의 소스 파일들을 프로젝트에 include 하기
파일들을 추가한 후 모든 파일들의 프로젝트 속성의 Build Action을 Content로, Copy to Output Directory를 Copy Always 혹은 Copy if newer 로 변경해 줍니다.
7. Web CGI Role의 Web.roleconfig 파일 수정하기
8. Web CGI Role의 Web.config 파일 수정하기
Fast CGI Handler를 Web.config 파일에 추가해 줍니다.
9. Cloud에 게시할 웹 스크립트 추가하기
본 블로그 에서는 간단히 phpInfo(); 를 호출하는 코드가 담긴 PHP 파일을 프로젝트에 추가합니다.
[WebCGIRole 프로젝트에 추가된 test.php 파일 내용]
10. 실행해 보기
이와 같이 실행이 된다면 성공적으로 Dev Fabric에 성공적으로 게시된 것 입니다.
[Dev Fabric에 게시된 예]
*잠깐!
“컴퓨터에 ntwdblib.dll이(가) 없어 프로그램을 시작할 수 없습니다. 프로그램을 다시 설치하여 이 문제를 해결하십시오” 라는 메세지가 보인다면?
PHP 설치 후 SQL Server 용 드라이버를 설치하셔서 그렇습니다.
php.ini 파일에서 extension=php_mssql.dll 항목을 remark 해 주시면 해결 됩니다.
그래도 안 된다면? php 설치 폴더의 ini 파일을 계속 참조하고 있는 듯 싶군요.
-> %program files%\php\php.ini 파일을 잠시 rename 해 주시고 다시 빌드해 주세요.
Dev Fabric에서 테스트 시에서 발생하는 오류이니 걱정하지 않으셔도 됩니다.
11. Cloud 에 게시
[게시 중….]
[Production 환경으로 publish]
[Cloud 환경에서의 실행 예]