Running Aptana Javascript Server on Ubuntu

[b:mgkele1o]간략소개[/b:mgkele1o]
: [url:mgkele1o]http://www.aptana.com[/url:mgkele1o]
: Aptana Javascript server, Jaxer는 Opensource project로써, 웹브라우저와 웹서버 양쪽에서 동일하게 모든 프로그래밍을 Javascript로 구성할 수 있게 해주는 웹 어플리케이션 서버입니다. 종전과 비교하자면, 보통 서버측에서는 PHP나 Java로, 클라이언트측에서는 AJAX라 불리는 기법으로 Javascript가 한 부분을 차지하고 있습니다만 Aptana Jaxer는 모든 부분에서 DB연결, 인증, 파일조작, … 등등의 일련의 웹서버측 프로그래밍을 Javascript로 가능하며, 웹브라우저에서 서버로의 통신이 거의 자동으로 구성되므로(AJAX 파트를 해결해준다는 것이죠) 프로그래밍의 노가다를 엄청 줄여주면서도 하고자하는 일에 집중할 수 있게해줍니다.

이 팁은 OpenVZ의 가상 Ubuntu에서 동작하는 것을 확인한 것인데, 일반적으로 사용하고 계시는 Ubuntu Desktop에서도 역시 잘 될것입니다. 본격적인 프로그래밍을 위한 도움말이 아니라, 설치과정을 도와주기위한 간단한 과정일뿐입니다.

[b:mgkele1o]01)[/b:mgkele1o] 필요한 패키지 설치

[code:mgkele1o]

apt-get install libgtk2.0-0 libxt6 libnss3-dev unzip libffi4 libffi4-dev[/code:mgkele1o]

[b:mgkele1o]02)[/b:mgkele1o] [url:mgkele1o]http://aptana.com/jaxer/download[/url:mgkele1o] 에서 리눅스버전의 Jaxer 받기

[b:mgkele1o]03)[/b:mgkele1o] 받은 파일을 unzip 하고 /opt/ 아래로 이동시킵니다

[b:mgkele1o]04)[/b:mgkele1o] 소유권 조정

[quote:mgkele1o]Ubuntu에서는 웹서버가 동작할때의 사용자 소유권을 www-data로, 그룹 소유권을 www-data로 기본적으로 지정하고 있습니다. Aptana Jaxer로 이를 따르고있습니다[/quote:mgkele1o]

[code:mgkele1o]

chown -R www-data:www-data /opt/AptanaJaxer

ldconfig -v /opt/AptanaJaxer/jaxer[/code:mgkele1o]

[b:mgkele1o]05)[/b:mgkele1o] 반드시 jaxer 실행파일이 모든 필요한 라이브러리와 링크되어 있는지 검사해보세요 (아래의 것은, 제 경우에 출력되는 화면입니다)

[code:mgkele1o]

ldd /opt/AptanaJaxer/jaxer/jaxer

libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0x00f46000)
libmozjs.so => /opt/AptanaJaxer/jaxer/libmozjs.so (0x00bb2000)
libxpcom.so => /opt/AptanaJaxer/jaxer/libxpcom.so (0x00c8a000)
libxpcom_core.so => /opt/AptanaJaxer/jaxer/libxpcom_core.so (0x008c1000)
libplds4.so => /opt/AptanaJaxer/jaxer/libplds4.so (0x00ba9000)
libplc4.so => /opt/AptanaJaxer/jaxer/libplc4.so (0x00110000)
libnspr4.so => /opt/AptanaJaxer/jaxer/libnspr4.so (0x009a2000)
libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0x00de4000)
libgtk-x11-2.0.so.0 => /usr/lib/libgtk-x11-2.0.so.0 (0x00416000)
libatk-1.0.so.0 => /usr/lib/libatk-1.0.so.0 (0x00eec000)
libgdk-x11-2.0.so.0 => /usr/lib/libgdk-x11-2.0.so.0 (0x00114000)
libgdk_pixbuf-2.0.so.0 => /usr/lib/libgdk_pixbuf-2.0.so.0 (0x00ed4000)
libpangocairo-1.0.so.0 => /usr/lib/libpangocairo-1.0.so.0 (0x00e20000)
libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0x00fac000)
libXext.so.6 => /usr/lib/libXext.so.6 (0x00e5c000)
libXrender.so.1 => /usr/lib/libXrender.so.1 (0x00e14000)
libXinerama.so.1 => /usr/lib/libXinerama.so.1 (0x00dd8000)
libXi.so.6 => /usr/lib/libXi.so.6 (0x00198000)
libXrandr.so.2 => /usr/lib/libXrandr.so.2 (0x00dfc000)
libXcursor.so.1 => /usr/lib/libXcursor.so.1 (0x001a0000)
libXcomposite.so.1 => /usr/lib/libXcomposite.so.1 (0x001a9000)
libXdamage.so.1 => /usr/lib/libXdamage.so.1 (0x001ac000)
libpango-1.0.so.0 => /usr/lib/libpango-1.0.so.0 (0x001dd000)
libcairo.so.2 => /usr/lib/libcairo.so.2 (0x0021a000)
libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0x001af000)
libX11.so.6 => /usr/lib/libX11.so.6 (0x00a7f000)
libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0x00df0000)
libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0x0027c000)
libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0x007c1000)
libjemalloc.so => /opt/AptanaJaxer/jaxer/libjemalloc.so (0x001b3000)
libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0x00f70000)
libsmime3.so => /opt/AptanaJaxer/jaxer/libsmime3.so (0x001bc000)
libssl3.so => /opt/AptanaJaxer/jaxer/libssl3.so (0x002b8000)
libnss3.so => /opt/AptanaJaxer/jaxer/libnss3.so (0x002e0000)
libnssutil3.so => /opt/AptanaJaxer/jaxer/libnssutil3.so (0x00ea4000)
libsoftokn3.so => /opt/AptanaJaxer/jaxer/libsoftokn3.so (0x003c0000)
libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x009e8000)
libXt.so.6 => /usr/lib/libXt.so.6 (0x00944000)
libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0 (0x003ed000)
libXft.so.2 => /usr/lib/libXft.so.2 (0x00e8c000)
libpangoft2-1.0.so.0 => /usr/lib/libpangoft2-1.0.so.0 (0x0078d000)
libsqlite3.so => /opt/AptanaJaxer/jaxer/libsqlite3.so (0x00c8e000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00fd6000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x007b4000)
libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0x01cfa000)
/lib/ld-linux.so.2 (0x003fa000)
libz.so.1 => /usr/lib/libz.so.1 (0x00872000)
libexpat.so.1 => /usr/lib/libexpat.so.1 (0x00887000)
libXau.so.6 => /usr/lib/libXau.so.6 (0x003f2000)
libpng12.so.0 => /usr/lib/libpng12.so.0 (0x00a55000)
libpixman-1.so.0 => /usr/lib/libpixman-1.so.0 (0x00b66000)
libselinux.so.1 => /lib/libselinux.so.1 (0x008a8000)
libxcb-xlib.so.0 => /usr/lib/libxcb-xlib.so.0 (0x001db000)
libxcb.so.1 => /usr/lib/libxcb.so.1 (0x00b8f000)
libpcre.so.3 => /usr/lib/libpcre.so.3 (0x00c48000)
libSM.so.6 => /usr/lib/libSM.so.6 (0x00995000)
libICE.so.6 => /usr/lib/libICE.so.6 (0x00c6f000)
librt.so.1 => /lib/tls/i686/cmov/librt.so.1 (0x009d5000)
libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x003f5000)[/code:mgkele1o]

[b:mgkele1o]06)[/b:mgkele1o] Aptana Jaxer 패키지와 같이 설치된 apache 2.2 버전의 설정을 조정합니다.
[b:mgkele1o]# vim /opt/AptanaJaxer/Apache22/conf/httpd.conf[/b:mgkele1o]

[quote:mgkele1o]
Listen 80
ServerAdmin you@yourdomain.com
ServerName jserv.yourdomain.com
User www-data
Group www-data
[/quote:mgkele1o]
[b:mgkele1o]07)[/b:mgkele1o] apache 2.2의 Jaxer 연결 설정파일 조정
[b:mgkele1o]# vim /opt/AptanaJaxer/jaxer/confs/jaxer-linux.httpd.conf[/b:mgkele1o]

[code:mgkele1o]
<Location "/jaxer-server">
SetHandler JAXER
Order Deny,Allow
Allow from all <– 이부분 수정
</Location>[/code:mgkele1o]
[b:mgkele1o]08)[/b:mgkele1o] Ok, let’s start

[code:mgkele1o]

/opt/AptanaJaxer/scripts/start.sh

/opt/AptanaJaxer/scripts
*** ok
*** ok
*** ok
*** ok
*** ok
*** ok
*** ok
*** ok
Option: --configfile=/opt/AptanaJaxer/local_jaxer/conf/JaxerManager.cfg
*** ok
ENV: JAXER_MAXMEMORY=180
*** ok
Option: --pid-file=/opt/AptanaJaxer/jaxer/jaxer.pid
Option: --cfg:tempdir=/opt/AptanaJaxer/tmp
*** ok
Option: --log:output=/opt/AptanaJaxer/logs/jaxer.log
*** ok
JaxerManager 1.0.0.3674_RC_B (web 4327, command 4328)[/code:mgkele1o]
[b:mgkele1o]09)[/b:mgkele1o] 웹브라우저로 접근해서 설정을 확인합니다

[b:mgkele1o]http://jserv.mydomain.com/aptana/[/b:mgkele1o]
[attachment=0:mgkele1o]screenshot1.png[/attachment:mgkele1o]

[b:mgkele1o]10)[/b:mgkele1o] 설치후
: Aptana Studio를 사용하면 자체 내장된 Jaxer 서버를 쓸수있어 더 편리합니다.
: Javascript API는 Aptana Studio에서 API Browser를 보시면 Tree형태로 잘 보여집니다.

Aptana는 개발툴로만 알고 있었는데, 여러가지 프로젝트들이 있군요.

Javascript 웹 애플리케이션 서버라… 괜찮군요. :)

감사합니다.
자바스크립트 서버라~ ㅎ
역쉬 내공이 대단하십니다.