처음 JSP를 접하는데 생소한 리눅스에서 JSP를 다루려고 하면 머리 아프고 진행이 잘 안될 수 도 있다.
나 또한 리눅스를 능통적으로 다루지 못하기 때문에 윈도우에서 JSP로 서버 페이지를 개발하고 리눅스로 옮기기 위해 검색을 좀 해 보았다.
여러 글 중에 괜찮은 글만 보아 보았다.
해당 포스트는 그 글중에 [첫번째] 펌 글이다.
1. jdk설치
https://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/ViewFilteredProducts-SingleVariationTypeFilter;pgid=yYdgaHqkkjVSR0EUPIQsoQ3D00003GSGJ--e;sid=bKw4adUyUHs4Y55HFt5wbDqbwsEsIBh3OU73qMgsoxZN4A==?DLWidget=true&AutoWidgetDL=
Download --> jdk-6u18-linux-i586.bin
chmod 555 jdk-6u18-linux-i586.bin
./jdk-6u18-linux-i586.bin
mv jdk1.6.0_18/ /usr/local/java <<-- 명령실행 폴더에 jdk1.6.0_18이 생기고 이 폴더를 옮긴다.
vi /etc/profile
export JAVA_HOME="/usr/local/java/"
export PATH="PATH:$JAVA_HOME/bin/"
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib
source /etc/profile
2. mysql 설치
Download --> mysql-5.1.41.tar
tar -zxvf mysql-5.1.41.tar
cd mysql-5.1.41
./configure --prefix=/usr/local/mysql --with-unix-socket-path=/var/lib/mysql/mysql.sock --with-big-tables --with-plugins=innobase --with-mysqld-ldflags=-all-static --with-client-ldflags=-all-static --without-debug --without-docs --enable-assembler --with-charset=utf8 --with-collation=utf8_general_ci --with-extra-charsets=all
※./configure시 checking for termcap functions library... configure: error: No curses/termcap library found
라는 에러가 나온다면 yum -y install libtermcap-devel 을 통해서 해결한다.
make
make install
계정만들기
1. sql을 실행하기 위해 다음의 명령어를 사용한다.
# mysql -u root -p mysql
2. 데이터베이스 종류 보기
mysql> show databases;
3. mysql 상의 테이블 정보 보기
mysql> show tables from mysql;
4. DB테이블의 데이터 가져오기
mysql> select * from db;
5. 데이터베이스 생성과 사용자 연결
1) DB생성
mysql> create database DB이름;
Query OK, 1 row affected (0.00 sec)
2) DB 계정과 DB연결
insert into user(host,user,password) values('localhost','board',password('dhaksdnjs'));
insert into user(host,user,password) values('%','board',password('dhaksdnjs'));
mysql> insert into db
-> (host,db,user,select_priv,insert_priv,update_priv,delete_priv,
-> create_priv,drop_priv)
-> values ('%','DB이름','계정이름','Y','Y','Y','Y','Y','Y');
Query OK, 1 row affected (0.00 sec)
3) 유져 권한주기
mysql> grant all privileges on (DB명).* to (계정명)@localhost identified by '(비밀번호)';
flush privilege;
참고로 나는 mysql덤프시켰다!
3. tomcat설치
Download --> http://tomcat.apache.org/download-60.cgi (tar.gz)
#tar xvzf apache-tomcat-5.5.28.tar.gz
#mv apache-tomcat-5.5.28.tar.gz /usr/local/tomcat
#vi /etc/profile
export PATH="$PATH:%CATALINA_HOME/bin"
export CATALINA_HOME="/usr/local/tomcat"
#source /etc/profile
#vi ~/.bashrc
alias tomcatStart='/usr/local/tomcat/bin/startup.sh'
alias tomcatStop='/usr/local/tomcat/bin/shutdown.sh'
4. tomcat Root Directory 변경
#vi /usr/local/server/tomcat/conf/server.xml
216 <Host name="localhost" appBase="/board" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="." reloadable="true"/>
혹은
216 <Host name="localhost" appBase="/" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="board" reloadable="true"/>
※Context 를 빼먹으면 ROOT를 자동으로 웹루트로 쓴다.
#/usr/local/server/tomcat/bin/startup.sh
5. mysql Connector (JDBC) 설치
※보통 어플리케이션은 시스템에서 설정한 환경변수를 그대로 따르는 것이 일반적이지만
TOMCAT의 경우는 시스템에 설정된 CLASSPATH를 완전히 무시하는 것으로 되어 있다.
따라서 TOMCAT에서의 CLASSPATH 설정은 시스템에서의 환경변수 설정과 별개로 이루어져야 한다.
TOMCAT에서의 CLASSPATH의 설정은 TOMCAT 설치 디렉토리 내 .../bin/catalina.sh 파일을 수정함으로써 할 수 있다.
#tar -xzvf mysql-connector-java-5.1.11.tar.gz
#mv mysql-connector-java-5.1.11 /usr/local/mysql-jdbc
export CLASSPATH="$CLASSPATH:/usr/local/mysql-jdbc/mysql-connector-java-5.1.11-bin.jar"
#source /etc/profile
#cp /usr/local/mysql-jdbc/mysql-connector-java-5.1.11-bin.jar /usr/local/tomcat/common/lib
6. 파일 업로드
http://www.servlets.com/cos/cos-26Dec2008.zip
윈도우에서 압축을 풀어 lib/cos.jar을 서버의
cp cos.jar /usr/local/tomcat/common/lib/
cp servlet-api.jar /usr/java/jre/lib/ext/
tomcatStop
tomcatStart
server.xml설정
위치 : tomcat/conf/server.xml
이 server.xml은 커넥션풀을 같이 설정하도록 설정함
우선 커넥션풀을 설정하려면 commons-collections, commons-dbcp, commons-pool 라는 jar파일을 다운받아서 /usr/local/tomcat/common/lib폴더에 넣자!
#cp commons-collections-3.2.1.jar /usr/local/tomcat/common/lib
#cp commons-dbcp-1.3.jar /usr/local/tomcat/common/lib
#cp commons-pool-1.5.4.jar /usr/local/tomcat/common/lib
커넥션풀을 사용하기 위해서는 파란글씨, 빨간글씨를 같이 넣으면 된다. (삘간줄은 모두 써넣어야 한다.)
커넥션풀을 사용하지 않으려면 파란글씨를 넣으면 된다.
(파란줄은 있는것에 수정하면된다. Context는 써넣어야한다.)
사이에 다음과 같이 넣는다.
40번째 줄정도:
<GlobalNamingResources>
<Environment name="simpleValue" type="java.lang.Integer" value="30"/>
UserDatabaseRealm to authenticate users -->
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />
<Resource auth="Container" driverClassName="com.mysql.jdbc.Driver" loginTimeout="10" maxWait="5000" name="jdbc/linuxus" password="비밀번호" testOnBorrow="true" type="javax.sql.DataSource" url="jdbc:mysql://localhost:3306/linuxus" username="DB아이디"/>
</GlobalNamingResources>
216번째 줄정도:
<Host name="localhost" appBase="/linuxus"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="." reloadable="true">
<Resource auth="Container" driverClassName="com.mysql.jdbc.Driver" loginTimeout="10" maxWait="5000" name="jdbc/linuxus" password="비밀번호" testOnBorrow="true" type="javax.sql.DataSource" url="jdbc:mysql://localhost:3306/linuxus" username="DB아이디"/>
</Context>
자바빈즈를 사용해서 자바파일을 사용하는경우.
예를 들자면 이클립스의 경우 A라는 프로젝트가 있으면
A 폴더 안에는
.settings
build
src
WebContent
폴더가 있을것이다.
src폴더에 자바의 파일들이 있을것이다.
그리고 build폴더에는 classes파일들이 있을것이다.
이 build의 classes 폴더를 /tomcat/common/에 옮겨서
/tomcat/common/classes폴더로 오게끔 하자!
C:\workspace\Linuxus\build\classes\Linuxus
/usr/local/tomcat/common/classes/Linuxus
자바파일은 숨겨두는것이 좋다.^ㅛ^;
톰캣을 시작시키고
#tomcatStop
#tomcatStart
인터넷 주소창에 http://IP주소:8080/페이지이름 을 치면 될것이다^^
리눅스에선 한글이 깨지게 된다.
그럴땐 jsp페이지 맨위에
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
를 추가
그래도 깨진다면...
html의 <head></head>사이에
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
를 추가