Skip to main content

윈도우 mongoose에 php7 사용해보기

정말 간단하게 윈도우 로컬에서 PHP로 해야할 작업이 있어서 찾아보았습니다.

usbwebserver를 쓸려고 했는데 크기가 더 작은 녀석이 있네요…

mongoose 웹서버 입니다.

물론 .. 나름 구동방식에 있어서 장단점은 있지만 로컬에서 혼자 개발하는 용도로는 최적인 것 같습니다.

다운로드 링크는 다음주소에 있습니다.

https://code.google.com/archive/p/mongoose/

5.0이 최신이긴하지만… php가 잘 작동하지 않습니다.

mongoose_download

4.1 버전을 다운로드 합니다. 물론 이 속에 들어있는 PHP 버전은 5.x 입니다.

압축을 풀어보면 다음과 같은 파일이 있습니다. web_root 에 php프로그램을 저장합니다.
moongoose_files
mongoose.exe를 실행하면 윈도우 트레이에 아이콘이 뜨고 localhost:8080으로 브라우저로 접속해 볼수 있습니다.
그대로 써도 상관은 없지만 php의 extension이 다 빠진 상태라 난감합니다. ㅋㅋ -ㅅ-) sqlite3 정도 되는 수준….

이제 mongoose를 쓸만하게 만들어 볼겁니다.

1. http://www.php.net에가서 php7 윈도우 버전 바이너리를 받아옵니다. 받아온 파일은 mongoose하위폴더에 php7으로 위치 시킵니다.
php5ts.dll과 php-cgi.exe는 php5 버전임으로 삭제 합니다.
대략 폴더/파일이 다음과 같은 모양이 됩니다.
mongoose_files2

2. mongoose.conf 파일을 편집합니다. (html도 추가해주고 php-cgi.exe 경로도 넣어주고 …. )
내장된 설정창에서도 변경이 가능하지만 절대경로로 들어가버려서 폴더 위치를 옴기면 설정이 변경되어 버립니다.
(다음과 같이 상대경로로 잡아두면 cd, usb등에 넣어다닐때 편리합니다.)

cgi_pattern **.cgi$|**.pl$|**.php$|**.html$
cgi_interpreter php7/php-cgi.exe
listening_ports 8080,8081s
document_root web_root
ssl_certificate ssl_cert.pem
url_rewrite_patterns /xy=web_root\index.php

3. php.ini 파일을 생성합니다. 물론 mongoose 폴더에 같이 둡니다. 간단하게 필요한 extenstion 들만 추가해서 간단하게 만듭니다.
이것저것 필요한 설정들을 넣어주도록 합니다. 이 내용은 php7 폴더에 있는 php.ini-dest 등을 참고해주세요.

date.timezone = "Asia/Seoul"

extension_dir = "./ext"
extension=php_gd2.dll

그러면 최종적으로 파일들은 이렇게 됩니다.
mongoose_files3

4. 해도되고 안해도 되는 php파일정리
이렇게 해주면 용량이 매우 줄어듭니다. -ㅅ-)
mongoose_files4

mongoose-php7

이렇게 해서 외장하드에서 관리하는 포토겔러리를 만들었습니다.
자세한 소스는 다음에 ….. -ㅁ-)
아직 정리가 되지 않음….

Ubuntu16에서 apache2,php7 설치하기

Ubuntu16에서 apache2,php7 설치하기

우분투 서버는 처음 써봤습니다. -ㅅ-);;

제가 설치했던 방법을 기록해 봅니다. 클라우드 서버를 개설하더라도 하드웨어 준비는 하지 않겠지만

설치는 해야하지 않겠습니까 -ㅅ-)!!!

Ubuntu 16 – server가 먼저 설치되어있다는 가정하에 시작합니다.

지금까지 사용했던 centos나 amazone linux에서는 yum을 사용했었으나

ubuntu에서는 apt-get을 사용합니다. ubuntu를 사용하다보니 적응 안되는 부분도 조금씩 있긴 합니다만…

(관리자 권한을 위해 sudo를 쓴다든지…. )

1. root 권한으로 실행
Ubuntu는 로그인하면 사용자로 로그인 되기 때문에 관리자 권한을 얻어야지만 설치 명령을 실행할 수 있습니다.
다음 커멘드를 입력 후 로그인 중인 계정의 비밀번호를 입력하면 root를 사용하 실 수 있습니다.

# sudo su - 

2. 서버 업데이트
다음 명령을 통해 패키지 리스트를 갱신합니다. 현재 배포중인 최신버전의 패키지들을 설치할 수 있습니다.

# apt-get update

그리고 그 최신버전 패키지들에 맞게 설치된 패키지들을 버전업합니다.

# apt-get upgrade

3. Apache2 설치
yum 과 비슷하게 다음과 같은 명령으로 간단하게 설치됩니다.

# apt-get install apache2 

4. Apache2 모듈 설정 on/off
Apache2 모듈 설정을 합니다. 필요한 모듈은 추가해주고 필요없는 모듈은 제거합니다.

모듈의 활성화

# a2enmod rewrite headers

모듈의 비활성화

# a2dismod -f autoindex

apache2 설정은 /etc/apache2에서 하게 되는데 위의 명령을 통해서 conf-availble 폴더에서 conf-enable 폴더로
링크가 걸리는것 같습니다. (mod도 마찬가지)

5. PHP7 설치
Ubuntu 16부터는 패키지에 기본적으로 PHP7이 적용되어있습니다.
PHP5를 설치할 수도 있겠지만… 장기적으로 볼때 PHP업그레이드를 통해 지원 받을 수 있는 기간이 PHP7이 최신버전이니 더 길겠죠…
아직도 php.net에 가보면 버그픽스들이 올라옵니다.

다음 명령을 통해 PHP7.0.x 를 설치합니다.

# apt-get install php

그리고 추가적으로 필요한 모듈을을 설치합니다.

# apt-get install php-mysql php-xmlrpc php-xml php-curl php-gd php-pear

설치가능한 모듈 리스트는 다음 명령으로 확인 가능합니다.

# apt-cache search php-

리스트중 필요한 기능들을 설치하실 수 있습니다.

6. Apache2 – PHP7 연동 모듈을 설치합니다.

# apt-get install libapache2-mod-php7.0

7. 서버 시작
서버를 시작합니다.

# service apache2 start

/var/html 폴더에 phpinfo.php 파일을 만들고 http://호스트/phpinfo.php 를 브라우저로 호출해봅니다.
php7-0-8

일단은 여기까지 정도면 클라우드 서버에 사용하기에 적합할 것입니다. -ㅅ-)b
(DB는 별도서버로 PaaS방식으로 사용하는게 안정적이라… )

기타. VirtualHost 구성방법 – http://webdir.tistory.com/213

여담) 그동안 설치를 안해봐서 그런지 …. -_-; 뭔가 생소해졌다.

예고) 다음번에는 조만간 클라우드 서버에서 서버 세션공유 관련된 글을 게시해보겠습니다. ㄷㄷㄷ