[WebApp] 웹앱에서 PHP 의 당신이 원하는 모듈깔기

WebApp
작성자
Roronoa
작성일
2017-11-20 16:44
조회
24206
Azure 웹앱(Webapp) 은 PaaS이므로 PHP의 커스터마이즈된 모듈을 설치할 수 없을꺼 같지만 그렇지 않다.  지금 이 방법으로  설치 할수 있으며

웹앱에서 PHP Pthread 안되는 부분을 해결하는 방법을 해결해 나가는 방법이다.

 

php 5.6 사용

1. 설정하고자 하는 윈도우즈용 php 버젼을 다운로드 받는다.
- http://windows.php.net/downloads/releases/archives/
- Threads 설정을 위해 php-5.6.31-nts-Win32-VC11-x86.zip 다운로드한다.
- 다운로드 한 zip 파일의 압축을 해제한다.

002 compute-multi-vm

2. pthreads 사용을 위해 해당 라이브러리를 다운로드 한다.
- http://windows.php.net/downloads/pecl/releases/pthreads/2.0.10/
- 위 사이트에서 서버 비트수에 해당 하는 php5.6라이브러리를 다운로드 한다.


3.서비스 되고 있는 사이트에 phpinfo() 스크립트가 있는 파일을 추가 후 웹에서 확인

4.현재 서비스하고 있는 php.ini 파일이 어디에 있는지 확인

5.해당 서비스의 파워쉘로 접근하여 php.ini 파일을 다운로드 받음
- https://<your_web_app_name>.scm.azurewebsites.net/DebugConsole/?shell=powershell


6.다운받은 php.ini 파일을 수정 후 저장
-
extension_dir="D:Program Files (x86)PHPv5.6ext을 주석처리하고 extension_dir="ext 으로 변경
-
[ExtensionList]항목에 extension=php_pthreads.dll 추가

7.저장한 php.ini 파일을 새롭게 page2에서 다운받은 php의 최상위 폴더에 복사

8.page3에서 다운 받은 pthreadVC2.dll 이것도 php.ini 파일과 같은 곳에 복사

9.또한 page3에서 다운 받은 php_pthreads.dll 파일은 php.ini파일이 있는 하위 디렉토리 ext 폴더에 복사

10. 서비스 되고 있는 앱 서비스에 ftp로 연결하여 위에서 복사한 파일들을 복사해서 넣는다.
- 위치 : /site/wwwroot/bin/php



11. Azure Wep Service 설정으로 이동



12. phpinfo() 스크립트 확인 페이지에서 확인


Thread 확인 가능한 소스 만들기

http://blog.naver.com/PostView.nhn?blogId=parkjy76&logNo=220722537149&categoryNo=3&parentCategoryNo=0&viewDate=&currentPage=1&postListTopCurrentPage=1&from=search

https://blog.madewithlove.be/post/thread-carefully/

- 다운로드 한 zip 파일의 압축을 해제한다.

 

짠 하고 모든게 해결됫을 것이라 생각하지만 이방법을 쓰면 Session이 막힌다...........

자 그럼 추가적으로 무엇을 더해야 Session을 살릴수 있을것인가?



PHP 의 설정파일인 php.ini중에 wincache를 위에 처럼 주석 처리하고 밑에 한줄을 추가 해준다면  모든것이 해결된다. 

 

참고 링크

- https://stackoverflow.com/questions/41561520/how-to-install-php-thread-in-azure-platform

- https://stackoverflow.com/questions/31536254/using-pthread-in-azure-web-app-in-a-php-site

- https://docs.microsoft.com/ko-kr/azure/app-service/web-sites-php-configure#how-to-use-a-custom-php-runtime