들어가며
WZR-HP-G300NH 공유기에 OpenWRT (backfire)가 설치되어 있는 환경에서,lighttpd + PHP5 + SQLite3 를 설치하여 텍스트큐브 블로그(1.9.0 베타)를 설정하는 과정에 대해 적어보도록 하겠습니다.
[주의]
- 기본적으로 USB 대용량 장치를 마운트 시켜야 원활한 구축이 가능합니다.
- 공유기에 OpenWRT를 설치하는 방법에 대해선 구글링을 하시거나, 제가 작성한 WZR-HP-G300NH 에 DD-WRT 설치 후 OpenWRT 로 갈아타기 을 참조해 주시기 바랍니다.
설치과정
- 공유기에 SSH로 접속하여 다음의 패키지들을 설치합니다.
lighttpd-mod-fastcgi
php5-fastcgi
php5-mod-sqlite3
php5-mod-gd
SSH 예시
opkg update
opkg install lighttpd-mod-fastcgi php5-fastcgi php5-mod-sqlite3
이 패키지들을 설치하면 아마 자동으로 코어까지 설치될겁니다.
만약 자동적으로 코어가 설치되지 않는다면, 다음의 패키지들을 직접 설치해 주시기 바랍니다.
lighttpd
lighttpd-mod-fastcgi
php5
php5-cgi
php5-fastcgi
php5-mod-gd
php5-mod-sqlite3
상기 패키지들의 설치가 완료되었다면, 텍스트큐브의 동작에 필요한 다음의 PHP 모듈들을 추가적으로 설치하도록 합니다.
php5-mod-session
php5-mod-xml
SSH 예시
opkg update
opkg install php5-mod-session php5-mod-xml
- 설치된 lighttpd 의 설정 파일이 /etc/lighttpd/lighttpd.conf 에 위치하고 있는데요, 편의를 위해 이를 /etc 로 이동시켜 버립시다. (이 과정은 생략하셔도 된답니다.. ^^;)
mv /etc/lighttpd/lighttpd.conf /etc/lighttpd.conf
- lighttpd.conf 를 vi 로 열어, 다음 부분들을 찾아 수정하여 주시기 바랍니다.
server.modules = (PHP5-fastcgi 를 사용하기 위해 세 부분의 주석(#)들을 제거합니다.
[...]
"mod_fastcgi",
[...]
)
## a static document-root, for virtual-hosting take look at thelighttpd로 구축한 서버의 루트로 사용할 경로를 적어주도록 합니다.
server.document-root = 웹서버의 루트로 사용할 경로 (예: /mnt/sda1/)
(필히 USB 대용량 장치를 마운트 하여 이용하시기 바랍니다.)
## files to check for if .../ is requested기본 index 파일을 설정하는 부분으로, 가장 뒤에 "index.php" 를 추가해 주도록 합니다.
index-file.names = ( "index.html", "default.html", "index.htm", "default.htm", "index.php" )
## bind to port (default: 80)서버의 리슨 포트를 지정하는 부분입니다.
server.port = 80/21/22 등을 제외한 다른 비주류 포트번호 (예: 8880)
주석을 제거하시고 적당한 포트 번호를 적어주시기 바랍니다.
#### CGI modulephp 모듈을 사용하기 위해 이 부분을 수정합니다.
cgi.assign = ( ".php" => "/usr/bin/php" )
그리고 파일의 맨 끝에다가 다음 부분을 추가해 주도록 합니다.
fastcgi.server = ( ".php" => ((
"bin-path" => "/usr/bin/php-cgi",
"socket" => "/tmp/php.socket"
)))
수정이 모두 끝나셨다면, ESC 를 눌러 입력 모드가 - 로 되게 변경하신 후, :wq 를 입력하여 저장하고 SSH 상으로 나가도록 합니다.
- 다음으로 php.ini 를 열어 수정하도록 합니다.
(php.ini 는 /etc/php.ini 에 위치하고 있습니다.)
; Paths and Directories문서의 루트를 정하는 부분으로, 필요 없으니 비워주도록 합니다.
; UNIX: "/path1:/path2"
;include_path = ".:/php/includes"
doc_root =
; Dynamic Extensions확장 모듈들의 사용여부를 설정하는 부분입니다. 주석(;)을 제거하여 주세요.
extension=gd.so
extension=session.so
extension=sqlite3.so
extension=xml.so
; Data Handling데이터 처리와 관련된 것들을 설정하는 부분입니다. register_long_arrays 를 Off 로 변경해 주시기 바랍니다.
[...]
register_long_arrays = Off
[Date]Timezone 을 설정하는 부분입니다.
date.timezone = Asia/Seoul
- 설정을 마쳤으면, lighttpd를 한 번 실행해 보도록 합시다.
lighttpd -f (lighttpd.conf의 경로)
별 다른 메세지 없이 (log.c.75) server started 와 같은 식으로 출력되면 정상 작동하는 것입니다.
php도 잘 작동하는지를 알아보기 위해, 시험삼아 phpinfo 파일을 만들어 보도록 합니다.
웹서버 루트 경로로 이동하여
echo "<?php phpinfo(); ?>" phpinfo.php요렇게 입력하셔서 phpinfo.php 파일을 생성하신 후, 웹브라우저를 이용하여,
http://공유기IP:포트번호/phpinfo.php로 이동해 보시기 바랍니다.
요렇게 나온다면 거의 다 성공한 것이라 보아도 무방합니다.
- 정상 작동하고 있다는 것을 확인하셨다면, 이를 공유기 부팅시에 자동 실행되게끔 설정하실수도 있습니다.
설정하시려면 vi로 rc.local을 열도록 합니다.
vi /etc/rc.local
# Put your custom commands here that should be executed onceexit 0 위에 방금 5번에서 타이핑했던 문장을 그대로 적어주도록 합니다.
# the system init finished. By default this file does nothing.
lighttpd -f /etc/lighttpd.conf
exit 0
- 이제 텍스트큐브에서 사용할 DB 파일을 생성해 보도록 하겠습니다.
DBMS로는 SQLite3 를 이용할 것이므로, 외부에서 접근 불가능한 경로에 *.db 형식으로 파일을 하나 만들어 주기만 하면 된답니다.
(제 경우에는 USB 대용량 장치를 /mnt/sda1/www에 마운트 시켰고, DB 파일은 /mnt/sda1/에 tc.db로 만들었습니다.)
여기서 생성하신 DB 파일의 절대경로를 꼭 기억해 두시기 바랍니다!
- 임의의 경로에 생성한 SQLite3 용 DB 파일을 텍스트큐브에서 인식시키기 위해, 텍스트큐브 폴더 내의 /framework/data/SQLite3 로 이동하여 Adapter.php 파일의 23번째 라인을 다음과 같이 수정하도록 합니다.
self::$db = new SQLite3('임의로 생성한 DB 파일의 절대 경로 + 파일명.db');예를들어 DB파일의 절대경로가 '/mnt/sda1/tc.db' 라면, 이를 그대로 적어주시면 됩니다.
- 이제부터 본격적으로! 텍스트큐브를 설치해 보도록 하겠습니다.
웹브라우저를 이용하여 다음의 경로로 이동하도록 합니다.
http://공유기IP:포트번호/텍스트큐브
※ 다음 스크린샷들은 이미 DDNS와 포트 포워딩 설정까지 마친 상황에서 캡쳐한 것입니다.
DDNS와 포트 포워딩 설정에 대해서는 다음 포스팅에서 다루어 보도록 하겠습니다.
NEXT 를 눌러서 넘어갑니다.
새로운 텍스트큐브를 설정합니다. 를 클릭!
데이터베이스 서버, 포트, 이름 등을 입력하는 부분인데요.
이미 8번 이전 단계에서 Adapter.php 를 수정하였으므로 대충 입력해도 아무런 문제가 없습니다.
요렇게 나오면 다시 다음으로 넘어가도록 합니다.
lighttpd를 이용하여 웹서버를 구축하였다면, rewrite 모듈을 사용할 수 없다는 에러메세지가 나올겁니다.
이는 lighttpd 에서 .htaccess를 활용한 rewrite 모듈을 지원하지 않기때문에 나타나는 지극히 정상적인 에러로, 그냥 체크박스에 체크를 하여 rewrite 모듈을 사용하지 않도록 설정합니다.
단일 블로그로 설정하도록 합니다.
아무래도 SQLite3를 사용할 경우 다중 사용자는 지원하지 않는 모양입니다.
블로그 관리자 정보를 입력하도록 합니다.
설치가 완료되었습니다.
접속이 제대로 되는지 확인해 보도록 할까요?
좀 느리긴 하지만 정상적으로 접속이 되는군요.
마치며
공유기에 텍스트큐브를 구축해 보았는데요, 아쉽게도 아직 외부에서는 접속이 불가능한 상태입니다.다음 포스팅에서는 DDNS와 포트 포워딩에 대해 다루어보며 이 문제들을 해결해 보도록 하겠습니다.
'컴퓨터' 카테고리의 다른 글
IE9 에서 페이지가 정상 표시되지 않을 경우 팁 (0) | 2011.06.22 |
---|---|
WZR-HP-G300NH 결국 벽돌(Bricked) 되다 (6) | 2011.06.20 |
Amd Processor + Vmware 환경에서 Snow Leopard 설치 도전 (0) | 2011.06.19 |
OpenWRT 공유기에 FTP서버 구축하기 (0) | 2011.06.19 |
OpenWRT DDNS 와 Port Forwading(포트 포워딩) 설정 (0) | 2011.06.19 |
OpenWRT 공유기에 USB 장치 마운트시키기 (0) | 2011.06.18 |
WZR-HP-G300NH 에 DD-WRT 설치 후 OpenWRT 갈아타기 (0) | 2011.06.18 |
간만에 지름신 강림 (6) | 2011.06.17 |
[Flash] The Monty Hall Problem (몬티홀 문제) (0) | 2011.05.08 |
구글에서 온 편지 (6) | 2011.04.23 |
IE9 이상으로 브라우저를 업그레이드하거나, 크롬, 파이어폭스 등 최신 브라우저를 이용해주세요.