우선 기본적으로 솔라리스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 머드초보
,
 

저도 잘은 모르지만, 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 머드초보
,