반응형

웹호스팅 환경을 구축하기 위해서는 DNS 서버를 구축해야 하나
사용자 계정을 이용한 JSP서버까지만 구축할 생각이다.
http://ip/~account 식의 도메인이 될것이다.

1. user 생성과 아파치 설정 변경
-- /etc/skel 은 유저 생성시 유저홈에 기본적으로 생성되는 뼈대 디렉토리와 파일 생성..
# cd /etc/skel
# mkdir public_html
# mkdir public_html/WEB-INF
# vi public_html/index.jsp
<HTML>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>GUDA'S SERVER</title>
</head>

 <BODY>
  <h1><h1><% out.print("Welcom GUDA'S SERVER"); %></h1><br /></h1>
  <h1> http://www.pmguda.com <br /></h1>
  <h1> ganziguda@gmail.com<br /></h1>

 </BODY>
</HTML>
2. 사용자 계정 생성 및 비번 설정
# useradd guda
# passwd guda
Changing password for user guda.
New UNIX password:
BAD PASSWORD: it is too short
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
# chmod -R 755 /home/guda
# cd /home/guda/public_html/
# cp index.jsp index.html
# vi index.php
<?='this is test'?>

3. 아파치에서 사용자계정을 사용해서 사용자 디렉토리에 접근할수 있도록 설정
--Include문앞에 주석을 제거한다.

# vi /usr/local/apache2/conf/httpd.conf

Include conf/extra/httpd-userdir.conf


4. 아파치 서버를 재시작한다.
# /usr/local/apache2/bin/httpd -k restart

각 파일들을 웹브라우져로 요청해 보면 php 파일은 정상적으로 출력되는데


jsp, html 파일은 찾지 못하는 것을 볼수가 있다.

PHP 소스를 읽는 것은 httpd.conf 에서
#JkMount /* loadbalancer  이렇게 주석처리 해줫기 때문이다.

5. jsp와 html을 정상적으로 읽도록 하기 위해서는 /usr/local/tomcat/conf/server.xml 을 수정
# vi /usr/local/tomcat/conf/server.xml

 <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false"> 
     
<Context path="/~guda" docBase="/home/guda/public_html" debug="0" reloadable="true" />

        <!-- SingleSignOn valve, share authentication between web applications
             Documentation at: /docs/config/valve.html -->
        <!--
        <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
        -->

        <!-- Access log processes all example.
             Documentation at: /docs/config/valve.html -->
        <!--
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false"/>
        -->

      </Host>
    </Engine>
  </Service>
</Server>


6. 서버를 재시작 하고 확인
# /usr/local/apache2/bin/httpd -k restart
# /usr/local/tomcat/bin/catalina.sh stop
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:       /usr/local/jdk
# /usr/local/tomcat/bin/catalina.sh start
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:       /usr/local/jdk

--jsp 파일은 정상 출력되지만 html코드내의 <% %> jsp 코드는 먹히지 않는다.



위에 페이지는 정상적으로 잘 뜨나 한글이 깨니는 것을 볼수 있다.
일단 JSP에서 한글이 깨져 나오는 것은 인코딩 문제이다. 파일 상단에 이렇게 넣어주자.
<%@ page contentType="text/html;charset=utf-8" pageEncoding="utf-8" %>
리눅스 서버 자체가 utf-8로 저장을 하니 utf-8로 불러와서 utf-8로 뿌려주게 하면 된다.

이제 오라클 연동 테스트를 하다보면 DB에서 값을 불러오는데 한글이 깨진다.
Character Set이 맞지 않아서 생긴 문제이다.
일단 오라클에 접속해 다음과 같이 변경해 주고 오라클을 재시작 하도록 하자.

update props$ set VALUE$='KO16KSC5601' where name='NLS_CHARACTERSET';

그리고 앞서 아파치 오라클 연동시 설정해줬던 밑 부분에
# vi /usr/local/apache2/bin/envvars

export ORACLE_HOME=/oracle/11g
export ORACLE_SID=oracle
LD_LIBRARY_PATH="/usr/local/httpd/lib:$LD_LIBRARY_PATH"
export LD_LIBRARY_PATH
--이 아랫부분에 추가해 주도록 하자.
export NLS_LANG=KOREAN_KOREA.KO16KSC5601

이로써 글자가 깨지는 문제는 해결이 될것이다.

그리고 여기까지만 서버 셋팅을 하도록 하겠다. 도메인을 주고 사용자 계정에 도메인을 붙이는
작업도 있지만 DNS 서버를 구축할 예정이 없기 때문에 여기서 완료하도록 하겠다.
글을 작성하면서 수정해야 할 부분이 있거나 안되거나 추가할 부분이 있으면 댓글을 달아주는 센스!!
블로그에 글 하나 작성하는데 너무나 많은 시간이 걸리는것 같다. ㅠㅠ


반응형
데이터베이스로 Oracle을 사용하려고 Mysql은 설치하지 않을 생각이였다.
근데 기존 프로젝트를 서버에 올리고자 다시 Mysql을 설치 하지 않을수 없었다.

일단 Mysql 설치 방법으로는 apt-get 을 이용한 쉬운 방법이 있지만 다른 것들과의 연동을 위해
소스 설치로 설정하는 방법에 대해서 기술하겠다.

1. 소스다운 & 압축해제
# cd /usr/local/src
# wget http://ftp.linux.co.kr/pub/mysql/mysql-5.1.32.tar.gz  
# tar xvzf mysql-5.1.32.tar.gz

2. 컴파일 & 설치
# cd mysql-5.1.32
# ./configure --prefix=/usr/local/mysql --localstatedir=/usr/local/mysql/data --with-charset=utf8
--with-charset=euckr --with-extra-charsets=all  --sysconfdir=/etc --enable-thread-safe-client
# make
# make install

3. 디비 생성 및 세부설정
# /usr/local/mysql/bin/mysql_install_db
# cat >> /etc/ld.so.conf
/usr/local/mysql/lib
# ldconfig
# cp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf
# groupadd mysql
# useradd -M -g mysql -s /bin/false mysql
# chown root.mysql -R /usr/local/mysql/
# chown mysql.mysql -R /usr/local/mysql/data
# cd /usr/local/mysql/bin

4. my.cnf 오류처리
# vi /etc/my.cnf
# Disable Federated by default
#skip-federated(주석처리)

5. 데몬 실행 & 관리자 루트 비밀번호 생성
# ./mysqld_safe --user=mysql &
# ./mysqladmin -u root -p password 1234
Enter password:

6. 환경변수에 PATH 등록
# vi /etc/profile
export MYSQL_HOME=/usr/local/mysql
export PATH=$PATH:$MYSQL_HOME/bin
# source /etc/profile

7. 설치 확인
# mysql -u root -p
Enter password:

mysql> 

환영 메시지 출력시 완료......

8. 데몬 자동실행 등록
# cd /usr/local/mysql/share/mysql
# cp mysql.server /etc/init.d/mysqld
# chkconfig --add mysqld
# chkconfig mysqld on

이제 Mysql 설치는 완료 되었고 외부 접속을 허용하도록 하자.
특정 사용자 계정의 외부접속을 위해 root 를 예로 들도록 하겠다.

1. mysql 접속 후 mysql database 선택
mysql> use mysql;

2. user 테이블 살펴보기
mysql> select host, user, password from user;

root 의 host 값들은 localhost, 127.0.0.1 등으로 기본 등록되어 있지만, 외부접속을 나타내는 값이 없다.
특정 아이피로 지정할 수도 있지만 여기선 % 기호로 어디서든 접속 가능하게 만든다.

3. 권한 설정
mysql> grant all privileges on *.* to 'root'@'%' identified by '패스워드';
Query OK, 0 rows affected (0.03 sec)

4. 등록확인하기
mysql> select host, user, password from user;

root 계정의 host 필드에 % 가 등록되었는지 확인한다.

5. refrash
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

그리고 방화벽을 사용한다면 방화벽을 열어주도록 하자.
이로서 Mysql 설치가 완료 되었다.

외부 접속 툴로는 SQLGate 2010 for MySQL Developer 를 사용한다.(본인은)
http://www.antwiz.com/kr/   <== 여기에서 다운 받을수 있다. 개인버전 프리~

+ Recent posts