오....이렇게 유용한 유틸이 있다니....
C언어에서 URL주소요청을 해야할 일이 생겨서 할 방법을 찾고 있었습니다.
친구한테 물어보니 Text용 브라우저인 lynx라는 놈이 있다는군요.
텍스트형태로 인터넷을 할 수 있습니다-_-; UNIX에서 URL을 실행해서 어떤 액션을 취할 때 유용하겠네요.

구글에서 lynx라고 치니 친절하게 찾아주는군요.
http://lynx.browser.org/
lynx2-8-5.tar.gz 를 받아서 설치를 했습니다.
걍 ./configure; make; make install 하면 /usr/local/bin/ 위치에 설치가 되더군요.

lynx를 쳐보니까 오 뭐라고 뜨네요. g를 눌러서 url을 입력해봅시다.
입력하니까 죄다 깨져나오고 막 이상하게 나오네요-_-;

순수 URL요청할 때만 사용하도록 합시다-_-;
-dump옵션을 붙이면 브라우저가 아닌 소스를 볼 수 있습니다.

lynx -dump "http://tomeii.com/bbs/board.php?bo_table=notice"
.
.
.
</script>
<script type="text/javascript">
_uacct = "UA-1437865-2";
urchinTracker();
</script>
</td>
</tr></table>
<div style='height:5px;'></div>
<div style="clear:both;"></div>
</body>
</html>
[mudchobo][/user/mudchobo]

아.....윈도우용도 있습니다. cygwin을 설치할 때 lynx를 선택해서 하시면 설치할 수 있습니다.
 
Posted by 머드초보
,
 
음.....프로그램이 이상하게 아무 이유없이 자꾸 죽어서 왜 그런지 이유를 찾다가 우연히 Too many open files 라는 메시지를 보게 되었습니다.
아...너무 많은 파일들이 열려있다고 하는군요.
한 프로세스가 열 수 있는 파일의 수는 제한되어 있더군요.

ulimit -a 하면
통지(설명자) 256

이라고 나오는데요(영문판에서는 nofiles(descriptors) 이라고 나오더군요)

그 제한수만큼 fopen을 한다던지 소켓을 생성한다든지 해버리고 안 닫아버리면(close나 fclose) 계속 프로세스가 열고 있는 거더군요. 그래서 이거를 안 닫아주면 계속 생깁니다.
그 프로세스가 열고 있는 파일들을 보기 위해서는 이렇게 하면 됩니다.
우선 lsof프로그램을 설치해야합니다. 솔라리스에는 없어서 설치했어요-_-;
이 프로그램이 현재 열고 있는 파일이나 소켓 등을 찾아줍니다.

lsof -p 프로세스ID

하면 목록이 나오는데 그중에 안 닫고 있는게 있으면 그걸 소스에 찾아서 fclose나 close해줍니다.
 
Posted by 머드초보
,
 

아파치랑 톰캣을 설치하셔야 합니다.
아파치는 여기 클릭하시면 설치방법이 있구요.
톰캣은 여기 클릭하시면 설치방법이 나와요!
그리고 나서 진행해봅시다.

우선 tomcat connector를 받아야 돼요. jk라고 하는 놈이네요.
http://tomcat.apache.org/download-connectors.cgi 여기서 커넥터를 받습니다.
Binary로 받으면 좋은데 제 운영체제가 Solaris인데 x86용이 없군요-_-;
컴파일해야하는군요. JK 1.2.25 Source Release tar.gz 를 받읍시다.

gunzip으로 풀고, tar로 압축을 풀어봅시다.

[root][/user/mudchobo/install]gunzip tomcat-connectors-1.2.25-src.tar.gz
[root][/user/mudchobo/install]ls
tomcat-connectors-1.2.25-src.tar
[root][/user/mudchobo/install]tar xvf tomcat-connectors-1.2.25-src.tar


압축을 풀었으면 해당폴더로 이동합시다. 그리고 native폴더로 이동합니다.
그리고, 아래와 같은 명령어를 쳐줍시다.

[~~tomcat-connectors-1.2.25-src] cd native
[~~native]./configure --with-apxs=/usr/local/apache2/bin/apxs

아.....뭔가 진행이 되는군요. 저기서 no apxs given 라고 무쟈게 많이 봤는데 그건 아파치를 static으로 설치해서 그럴껍니다-_-; 아파치설치할 때 옵션을 잘줘야합니다. 저것때문에 몇시간 고생을-_-;
근데 마지막에 no apache given이랑 no netscape given이라는게 뜨네요. 잘모르겠어요-_-;
그래도 되는 듯 하네요 ^^

make를 실행해서 컴파일하고, make install해서 해당폴더로 mod_jk.so 파일을 배포합시다!
[~~native] make
  컴파일~~~~~~~~~~
[~~native] make install
  어쩌구저쩌구~~~~~~~


배포가 완료되었으면 이제 셋팅해야합니다.

아파치의 설정디렉토리로 이동합니다.( /usr/local/apache2/conf/ )
이동 후 workers.properties파일을 생성한 뒤 아래와 같이 적습니다.

[~~native] cd /usr/local/apache2/conf/
[root][/usr/local/apache2/conf] vi workers.properties

workers.tomcat_home=/usr/local/tomcat
workers.java_home=/jdk1.6.0_03
ps=/
worker.list=worker1
worker.worker1.port=8009
worker.worker1.host=localhost
worker.worker1.type=ajp13
worker.worker1.lbfactor=1


:wq
[root][/usr/local/apache2/conf]

httpd.conf파일을 수정하도록 합시다. 맨아래에 다음과 같이 추가합시다.

#
# Mod_jk settings
#
LoadModule jk_module modules/mod_jk.so
JkWorkersFile /usr/local/apache2/conf/workers.properties
JkLogFile /usr/local/apache2/logs/mod_jk.log
JkLogLevel debug
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
JkRequestLogFormat "%w %V %T"
JkMount /examples/*.jsp worker1
Alias /examples "/usr/local/tomcat/webapps/examples/"
<Directory "/usr/local/tomcat/webapps/examples/">
        Options FollowSymLinks
        AllowOverride None
        Allow from all
</Directory>
<Directory "/usr/local/tomcat/webapps/examples/WEB-INF/">
        AllowOverride None
        deny from all
</Directory>

맨위에 LoadModule에서 jk_module을 쓰겠다는 것 같고,
WorkerFile은 방금 작성한 걸로 쓰겠다는 것같고,
그다음은 다 로그얘기군요.
JkMount는 /examples/에서 jsp요청이 들어오는 것은 다 tomcat에서 처리하겠다는 말입니다.
마지막에 중요한게.....Alias입니다.
원래 http://자기주소/ 이렇게 하면 Document Root인 아파치경로/htdocs인가? 거기를 가리키는 겁니다.
하지만 http://자기주/examples 로 요청이 들어오면 Document Root를 저걸로 바꾸겠다는 것이지요.

그리고 WEB-INF폴더는 보안상 열리면 안돼요. 막아줘야돼요 ^^
저렇게 막아주면 됩니다. 그러면 http://자기주소/examples/ 하면 jsp, servlet샘플이 열릴 것입니다.
jsp외에 것은 다 아파치에서 처리를 하게 되는 것이죠.


 
Posted by 머드초보
,
 

톰캣 설치는 앉아서 밥먹기 처럼 쉽습니다-_-;
자바로 만들어진 것이라서 자바의 강점인 운영체제에 상관없이 잘 돌아간다라는 것이--;
즉, 설치가 그냥 압축풀면 끝나요-_-;

주의사항은 JDK가 깔려 있어야 한다는 겁니다. 솔라리스는 기본적으로 JDK5가 깔려있습니다.
최신버전을 좋아하는 저는 JDK6으로 업그레이드 했습니다-_-;
java -version 쳐서 나오는지 확인하고, 안나오면 설치해야죠 ^^ http://java.sun.com/에서 받으세요 ^^

http://tomcat.apache.org/
여기서 최신버전 6.0.14버전을 받도록 합시다.
Binary Distributions 인 tar.gz로 받도록 합시다.

gunzip으로 압축풀고, tar로 압축풉시다.

[root][/user/mudchobo/install] gunzip apache-tomcat-6.0.14.tar.gz
apache-tomcat-6.0.14.tar
[root][/user/mudchobo/install] tar xvf apache-tomcat-6.0.14.tar


다 됐으면 보기좋게 옮겨 놓읍시다-_-;

[root][/user/mudchobo/install]mv -r apache-tomcat-6.0.14 /usr/local/tomcat/


/usr/local/tomcat/ 폴더로 옮겨놓읍시다. 이제 PATH를 잡아줍시다.(csh기준)

setenv PATH={$PATH}:/usr/local/tomcat/bin

예전에는 CATALINA_HOME도 잡아준거 같은데 안해줘도 되나봐요.
이제 실행해봅시다.
startup.sh를 실행합시다.

[root][/usr/local/tomcat] startup.sh
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:       /jdk1.6.0_03
[root][/usr/local/tomcat]


웹에서 확인해봅시다.
http://ip주소:8080/ 해서 고양이가 나와야 돼요 ^^

 
Posted by 머드초보
,
 

저도 잘은 모르지만, DSO, static방식으로 설치를 할 수 있답니다.
그래서 그냥 sunfreeware에서 컴파일된 파일로 설치하면 static방식인 모양인가 봅니다.
그러면 나중에 tomcat이랑 연동하려고 하면 안되더라구요.
우선 연동하는 건 좀 더 삽질해보고 포스팅해보겠습니다.(하다가 좀 안되는 부분이있어서 ^^)

우선 아파치를 받습니다!
http://httpd.apache.org/ 최신버전이 2.2.6이군요. 받아봅시다.
Unix Source: httpd-2.2.6.tar.gz 요거를 받읍시다.

설치시에 ROOT계정으로 해야해요! gcc도 설치되어있어야 합니다 ^^
서버에 올리고 gunzip으로 풀고, tar로 풉시다.

[root][/user/mudchobo/install]gunzip httpd-2.2.6.tar.gz
[root][/user/mudchobo/install]ls
httpd-2.2.6.tar
[root][/user/mudchobo/install]tart xvf httpd-2.2.6.tar


해당폴더로 이동후에 configure를 실행하는데 DSO방식으로 설치해야하기 때문에 옵션을 줍시다.

[root][/user/mudchobo/install]cd httpd-2.2.6
[root][/user/mudchobo/install/httpd-2.2.6]
  ./configure --enable-so --enable-mods-shared=most


머라고 막 checking하면서 뭔가 진행이됩니다!-_-; 다되면.....

[root][/user/mudchobo/install/httpd-2.2.6]make


오 뭐라하면서 뭔가 떠요!! 디게 오래 걸리네요-_-;

[root][/user/mudchobo/install/httpd-2.2.6]make install

이렇게 하면 디렉토리에 배포하는 듯해요!-_-;


대충 옵션을 보니까 so를 가능하게하고, modsshared를 mostt하겠다는 말같군요-_-;
잘 모르겠습니다 ㅠㅠ 저렇게 하면 DSO방식으로 설치하는 거라네요-_-;
configure를 마치면 make를 실행해서 컴파일하고, make install을 해서 배포합니다.
디폴트 폴더는 /usr/local/apache2/ 인데요. 변경할 수도 있어요.
처음에 ./configure할 때 --prefix=/원하는디렉토리명/ 하면 돼요.

설치가 완료되었으면 설치가 잘 되었는지 확인해봐야겠죠.
우선 path부터 잡아서 어느곳에서든지 실행할 수 있도록 합시다.
저는 csh를 써서(회사에서 이거를 사용해서^^) csh기준으로.....-_-;
setenv PATH {$PATH}:/usr/local/apache2/bin/ 을 추가합시다 ^^

apachectl start 해버리면 뭔가 워링이 뜨는군요. 글쎄요. 저는 도메인이 없어서-_-; 아이피주소를 넣었어요-_-;
다시 apachectl stop하시고, httpd.conf파일을 수정합시다. ServerName을 찾아 주석제거하고,
[code]vi /usr/local/apache2/conf/httpd.conf
ServerName 192.168.0.4
[/code]
이런식으로 ^^ 도메인네임있으면 도메인네임 넣어야 할 껍니다 ^^

apachectl start하고 ps -ef | grep httpd 하면 프로세스가 떠있으면 된 겁니다.
웹에서도 확인해봅시다.

It works! 라고 뜨면 된거에요-_-;

 
Posted by 머드초보
,