VirtualBox에 솔라리스를 설치해봤습니다.
한 3번만에 성공한 것 같습니다-_-;
우선 처음에 Open Solaris(오픈 솔라리스)를 설치를 했었습니다.
왠지 더 깔끔해지고, 더욱 진화한 놈인 듯 했습니다.
여기다가 오라클을 설치하려고 시도를 했습니다.
아놔...오라클설치하는 runInstaller라는 쉐이가 버전이 안맞아 라면서 설치 시도도 안해보고 뱉어냅니다.
Open Solaris는 SunOS 11로 인식합니다. 근데 오라클에서는 10을 요구합니다.

그래서 시도한 버전은 Solaris10 u5입니다. sol-10-u5-ga-x86-dvd.iso
우선 처음에 안됐던 것이....
제 컴이 꼬진 건지 아님 솔라리스가 미친 건지 잘 모르겠지만, 하드디스크를 잡을 때 동적으로 잡았더니 시스템 분석하다가 다운이 되버리더군요. 그래서 하드디스크를 정적으로 잡았더니 잘 되더라구요.

그렇게 3번 시도했더니 설치가 되더군요.
그리고, tomcat을 설치하고 제가 사용하는 웹애플리케이션을 설치하고 또 포트포워딩 하려니까 이건뭐 산너머 산이더라구요. 이건 여기 포스트에 정리를....-_-;
http://mudchobo.tomeii.com/tt/289

그리고 부팅할 때 등록하려고 했는데 init.d에다가 스크립트를 넣고, rc3.d에다가 스크립트를 하드링크 해야 하더라구요. 우분투는 자동으로 다 해주는데 이 솔라리스는 그런게 없는 듯 합니다.
그래서 스크립트를 왠지 만들기 귀찮아서-_-; README를 읽어보니 실행스크립트 start/stop 이렇게만 만들면 되는 듯해서 톰캣에 있는 catalina.sh를 그냥 바꿔서 썼더니 안되더라구요.
/var/svc/log/milestone-multi-user-server:default.log 이 로그 파일을 보라고 해서 보니까
뭔가 에러가 있는 것 같아서 직접 스크립트를 만드니까 되더라구요-_-

전 이렇게 만들었어요-_-;
JAVA_HOME=/usr/jdk/instances/jdk1.6.0;export JAVA_HOME
CATALINA_HOME=/usr/apache-tomcat-6.0.16;export CATALINA_HOME
PATH=$PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin;export PATH

case "$1" in
        start)
                echo -n "Starting tomcat: "
                $CATALINA_HOME/bin/catalina.sh start &
                echo
                ;;
        stop)
                echo -n "Shutting down tomcat: "
                $CATALINA_HOME/bin/catalina.sh stop &
                echo
                ;;
esac
exit 0 

뭐 어쨌든 저렇게 넣으면 잘 됩니다.
끌 때에는 rc0.d에다가 스크립트를 넣어주면 됩니다.
파일명 규칙이 있는데 시작할 때는 S or K이고 숫자 2자리넣고 init.d에 있는 스크립트 이름 그대로 사용하면 오케이! 이건 검색 고고싱-_-;
예를 들어 tomcat이면!
init.d/tomcat 스크립트파일 생성.
rc3.d/S99tomcat 시작 시 실행! rc0.d/K99tomcat 종료 시 실행! 이런 식으로!
사용자 삽입 이미지

스샷!


테스트 서버로 쓸만하군요. 같이 띄워도 그렇게 느린 건 모르겠군요 ^^
 
Posted by 머드초보
,
 
우선 기본적으로 솔라리스10에는 MySQL이 설치가 되어있더군요-_-;
몰랐습니다. 걍 지우고 다시 깔아봅시다. 원래 삽질을 좋아해서-_-;

pkgrm으로 mysql 지워버립시다-_-;(이래도 되나-_-;)

다시 깔아봅시다.
http://dev.mysql.com/downloads/ 이곳에서 MySQL 솔라리스 pkg용으로 받습니다.
Solaris (pkgadd packages) 이눔인 것 같습니다.

우선 mysql계정을 만들어야 돼요.
[root][/] groupadd mysql
[root][/] useradd -g mysql mysql
[root][/] passwd mysql
새 암호:
새 암호를 다시 입력하십시오:
passwd: 암호(mysql용)가 성공적으로 변경되었습니다.

mysql이라는 그룹을 추가하고 mysql이라는 사용자를 추가하고 그룹은 mysql로 하고 비밀번호를 바꿔줍시다.
아.....그리고 mysql이라는 계정에 디렉토리가 아마 /home/mysql로 되어있는데요.
home아래에 이상하게 디렉토리가 안만들어지드라구요. 그래서 /user/mysql/ 이라는 디렉토리를 만들고
소유자를 mysql로 바꿨습니다.

[root][/]mkdir /user/mysql/
[root][/]chown mysql /user/mysql/
[root][/]cd /user/mysql/
[root][/user/mysql]ls -al
총 4
drwxr-xr-x   2 mysql    root         512  1월 18일  18:37 ./
drwxr-xr-x   4 root     root         512  1월 18일  18:37 ../
[root][/user/mysql]vi /etc/passwd/

mysql:x:101:100::/user/mysql:/bin/csh  #홈디렉토리변경 및 쉘도 변경

받은다음에 서버에 올려서 gunzip으로 풀고, pkgadd로 패키지를 설치합시다. 당근 root계정으로 ^^
[root][/user/mudchobo]gunzip mysql-5.0.45-solaris10-i386.pkg.gz
[root][/user/mudchobo]pkgadd -d mysql-5.0.45-solaris10-i386.pkg

이제 막 설치가 되는데요. 다되었으면 "<mysql>(이)가 성공적으로 설치되었습니다." 라고 떠요.
기본으로 /usr/local/mysql/ 에 설치가 되어있습니다.

설정파일을 만들어야하는데요.  /etc/my.cnf 에다가 만듭니다.
[root][/user/mudchobo]vi /etc/my.cnf
[mysqld]
basedir = /usr/local/mysql
datadir = /user/mysql/data
datadir은 mysql 홈디렉토리아래에 data디렉토리로 설정해두시면 됩니다.
저의 홈디렉토리는 /user/mysql/ 이어서 저렇게 설정한 겁니다.

mysql이 어느경로에서도 실행될 수 있게 PATH를 잡아줍시다.
기존 PATH에 /usr/local/mysql/bin 이눔도 추가해줍시다.

csh에서는 setenv PATH {$PATH}:/usr/local/mysql/bin 이런식으로 합니다.

그다음 가장먼저 실행해야할 mysql_install_db를 실행해야합니다.
[root][/] cd /usr/local/mysql/scripts
[root][/opt/mysql/mysql/scripts]ls
mysql_install_db*           mysql_install_db.in         mysql_install_db.old.1208*  mysql_install_db.old.1731*
[root][/opt/mysql/mysql/scripts] ./mysql_install_db --user=mysql --ldata=/user/mysql/data

라고 해주면 됩니다. 자 이제 mysql을 띄워 봅시다. mysql은 mysql계정으로 들어가서 띄워야합니다.
[mysql][/user/mysql] mysqld &
[1] 1516
[mysql][/user/mysql] 080118 19:07:17  InnoDB: Started; log sequence number 0 43655
080118 19:07:17 [Note] mysqld: ready for connections.
Version: '5.0.45'  socket: '/tmp/mysql.sock'  port: 3306  MySQL Community Server (GPL)
[mysql][/user/mysql]

mysql에 접속해봅시다. root비밀번호가 처음에는 설정되어 있지 않습니다. password없이 접속됩니다.
[mysql][/user/mysql] mysql -u root
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.0.45 MySQL Community Server (GPL)
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>


mysql 비밀번호 변경하는 방법은 2가지가 있네요(더 있을 수도 있을지도^^)

1. mysqladmin을 이용해서 하는방법
[mysql][/user/mysql] mysqladmin -u root password '비밀번호'


2. mysql에 mysql -u root 로 접속해서 변경하는 방법(이건 차후에 변경할 때도 쓰이겠죠^^)

[mysql][/user/mysql] mysql -u root
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 5.0.45 MySQL Community Server (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('비밀번호');
Query OK, 0 rows affected (0.01 sec)



이제 사용자를 추가해봅시다.

mysql> GRANT ALL PRIVILEGES ON *.* TO 'myid'@'%' IDENTIFIED BY 'mypasswd' WITH GRANT OPTION;
Query OK, 0 rows affected (0.02 sec)
mysql>

저기 %로하셔야 어디서든 접속이 가능한 계정으로 만들어집니다. localhost로하면 local에서 밖에 접속을 못합니다.

mysql을 종료시켜봅시다.
[mysql][/user/mysql] mysqladmin -uroot -p1234 shutdown
080118 19:27:18 [Note] mysqld: Normal shutdown
080118 19:27:18  InnoDB: Starting shutdown...
080118 19:27:20  InnoDB: Shutdown completed; log sequence number 0 43655
080118 19:27:20 [Note] mysqld: Shutdown complete
[mysql][/user/mysql]

아....잘되네요

두리야 다 정리했다 어셔 시도해보거라-_-;
 
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 머드초보
,