2011. 2. 11. 15:23

APMSETUP7 버젼 기준입니다.


우선  인증서 파일이 필요하기에 간단하게 만들기 위한 방편으로 OpenVPN을 깔면 같이 깔리는 easy-rsa 를 사용하고자 합니다.
http://www.openvpn.se
이 글을 쓰는 시점에서의 최신 안정(stable)버젼은 openvpn-2.0.9-gui-1.0.3-install.exe 입니다.


0. 준비
C:\Program Files\OpenVPN\easy-rsa
cmd창을 열어서 위의 폴더로 이동한 다음 다음과 같이 타이핑 합니다.

init-config

vars

clean-all
(처음이면 상관없지만, 나중에 다시 이 명령을 하게되면 /keys 폴더내용이 통째로 날아가므로 미리 백업해주세요)


1. 기본 CA(인증기관??) 인증서 만들기...
build-ca
그냥 엔터 엔터 하시고...
Common Name 에는 Apache-CA 라고 입력합니다. (다른거로 임의로 주셔도 상관 없습니다.)


2. 서버에서 사용할 인증서 및 KEY 생성
build-key-server server
역시 그냥 엔터 엔터 하고...(단, CA 작성시 내용을 기술 하셨다면 똑같이 하셔야 합니다.)
Common Name 에는 자신이 사용할 도메인주소를 입력하고 나머지는 똑같이 입력합니다
(도메인 주소는 localhost, 127.0.0.1 mydomain.com 등이 될수 있습니다)

하단에 y/n 묻는게 나오는데 당연히 y 를 선택합니다.


정상적으로 완료 시, /keys 폴더 안에

ca.crt
ca.key
servet.crt
server.csr
server.key
... 
이런 파일들이 있을겁니다.

아파치의 conf 폴더에
server.crt
server.key
위 2개의 파일을 복사 합니다.


httpd.conf 파일 내용
LoadModule ssl_module modules/mod_ssl.so

...

Include conf/extra/httpd-ssl.conf
위 2줄의 주석을 제거 합니다.


extra/httpd-ssl.conf

##
## SSL Virtual Host Context
##

<VirtualHost _default_:443>

#   General setup for the virtual host
DocumentRoot "C:/APM_Setup/htdocs"
ServerName localhost:443
ServerAdmin
webmaster@localhost
ErrorLog "C:/APM_Setup/Server/Apache/logs/error_log"
TransferLog "C:/APM_Setup/Server/Apache/logs/access_log"

...

CustomLog "C:/APM_Setup/Server/Apache/logs/ssl_request_log" \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

</VirtualHost>

진하게 표시된 부분을 찾아서 자신의 환경에 맞도록 수정 합니다.
(제 경우 이 상태로 로컬 주소인 192.168.0.3 으로 테스트 하였는데 정상적으로 표시 됩니다.)


그리하여 테스트를 위해 https:// 로 접속을 시도해 보았습니다.
보안 인증서에 문제가 있다...?

중요한건 2번째 라인이죠..

이 웹사이트에서 제시한 보안 인증서는 신뢰할 만한 인증기관에서 발급한 것이 아니다...

그렇습니다... OpenSSL 로 임의로 발급한 것이기 때문에 인증기관에 등록이 되어있지 않으니 신뢰할수 없다는 경고입니다.

1.인증기관
2.도에인
3.인증서 유효기간
이 3가지를 충족해야 저 시뻘건 X방패 경고가 뜨지 않는데 우리는 1번 항목을 충족하지 못하고 있습니다.

뭐 돈내고 인증기관에 등록하시면 저 메시지는 안뜹니다.

그냥 써도 저 메시지 뜰뿐... 암호화 기능은 정상적으로 수행됩니다.

일단 https 접속을 위해서
이 웹사이트를 계속 탐색합니다(권장하지 않음) <- 이것을 클릭합니다.

주소 부분을 보면 정확하게 https:// 로 시작함을 확인할 수 있습니다.

다만... 시뻘건 색으로 뜰 뿐이죠;;

페이지 우클릭 후 속성 들어가보면... 암호화가 되고있음을 알 수 있습니다.
여기까지 https 설정은 끝입니다.



여기서부터는 추가 작업...
여기서 부터는 각 개별 클라이언트에서 설정 잡아야 하는 부분입니다.

저 시뻘건 문구 뜨지 않고 자물통이 보이도록 해 보는것이 목표입니다.

현재 우리가 충족하지 못한 항목이 1번의 신뢰된 인증기관에 등록... 되지 않았다는게 문제지요..

내 익스플로러에 저 인증서의 발급기관 CA 를 신뢰된 기관으로 등록함으로써 해결할 수 있습니다.
(이것은, 등록한 컴퓨터에서만 동작하고, 다른 컴퓨터에서는 마찬가지로 별도로 각각 개별로 등록 해야 합니다.)


익스플로러 설정으로 들어갑니다.
여기서 서버 인증서 작업전에 먼저 만들었던 CA 인증서를 등록합니다.


찾아보기를 눌러서 신뢰할 수 있는 루트 인증기관에 해당 인증서가 설치될 수 있도록 합니다.


우리가 임의로 만든 기관 Apache-CA 에 대한 출처를 확인할 수 없다고 합니다. 뭐 당연하겠지요 임의로 만든거니..;;
당연히 예 를 눌러 설치 합니다.


우리가 만든 임의의 기관 Apache-CA 가 다른 신뢰업체들과 어깨를 나란히? 하고 있는 모습입니다.


모든 익스플로러를 닫고 다시 접속을 시도하면??
아까 까지의 시뻘건 경고는 사라지고 정상적으로 위에 자물통? 아이콘이 채워져 있는것을 확인 할 수 있습니다. 





p.s. 이것은 어디 까지나 개인 컴퓨터에 강제로 Apache-CA 라는 인증서를 신뢰할수 있는 루트 기관에 포함시켜서 이렇게 보이도록 한 것이며, 다른 컴퓨터에서는 아까와 같은 시뻘건 화면이 뜹니다.

이렇게 뜨게 하고 싶으시다면 각각 CA 인증서 설치를 해 주거나...

아니면...

돈... 돈내고 진짜 신뢰된 루트 인증기관에 등록 하는 방법 뿐입니다.
Verisign 등등... 업체들 많죠...;;
비용이 얼마나 드는지는 모름니다 -_-;;



p.s. 2 직접 해보고 작성한 글 이기에 뭐 안되는 경우가 있으면 댓글 남겨주세요... 시간날때 확인해보고 답 드리도록 하겠습니다...
잘못된 내용 지적도 받아요~~ ^^

Posted by 해비
2011. 2. 10. 11:26
x86 Windows 버젼의 톰캣 7.0.4 기준으로 작성된 내용입니다.


분량이 큰 JSP페이지 작성중에 65535 limit 어쩌고 메시지와 함게 500 서버 에러 를 내는 경우가 있다...

해당 .jsp 파일이 내부에서 .java로 변환되어 지면서 이 용량이 65535를 초과 한다고 하는데
(틀린 부분이면 지적 바랍니다 -_-)

해결책은 2가지이다..
------------------------------
1. 소스 코드의 사이즈를 줄인다
2. 커스텀 태그를 사용한다
------------------------------

중간중간에 include 시킨 것들도 내부에서 .java 파일로 변환시 전부 포함되어버리니 커지는것은 당연할 듯...

그렇다면 소스코드용량을 줄이면 좋겠지만... 이것이 불가능하다면 커스텀 태그를 사용하여 해결하도록 한다.


페이지 상단에 커스텀태그를 정의 한다.
(커스텀 태그명은 사용자 임의로 주면 되므로 적당히 알아서 설정들 하시길...)
<%@ taglib prefix="inc" tagdir="/WEB-INF/tags" %>
prefix
inc라는 태그명을 정의합니다.
include 앞 3글자 따서 정의한건데, 뭐 맘대로 암거나 알아서 주셔도 되겠습네다 -_-;;

tagdir
/WEB-INF/폴더 하단에 tags 라는 폴더를 하나 생성하여 둡니다.


import 시킬 파일에 있던 내용을 tag 파일로 작성하여 보겠습니다.
(이 파일은 /WEB-INF/tags 안에 위치시켜 주세요)
sample.tag
<%@ tag body-content="empty" pageEncoding="UTF-8" %>
<%@ attribute name="value" type="java.lang.Integer" %>
<%@ attribute name="stVar" %>
<%@ attribute name="stVar2" %>
<%
(JSP 코드 기술...)
%>
진~ 하게 표시된 부분들은... 변수 입니다.
import 와 다르게 필요한 변수값이 있을경우, 이것들을 넘겨 받아야 하기 때문이죠

위에서 value 는 정수 형으로, stVar 과 stVar2 는 문자형 데이터를 넘겨 받기 위해 설정되었습니다.
중간에 기술된 JSP 코드들이 원래의 jsp파일에서 해당 위치에 import 됩니다.


커스텀 태그를 이용하여 import !!
<%
(기존 소스코드들...)
%>
<inc:sample value='<%=Integer.parseInt(varInt) %>' stVar='<%=var1 %>' stVar2='<%=var2 %>' />
<%
(기존 소스코드들...)
%>
jsp 코드 부분인 %를 닫은 다음 커스텀태그로 내용을 import 시킵니다.
<커스텀태그:파일명 파라미터1='값1' 파라미터2='값2' ... /> 의 형태로 작성합니다.

설정한 파라미터 값을 넘겨주게 되고, sample.tag 파일에서 넘겨받은 파라미터 값을 사용한 결과가 import 됩니다.


Posted by 해비
2010. 12. 8. 22:47
테스트 환경...
JDK 1.6_u22
Tomcat 7.0.4



1. 준비
commons-dbcp-1.4.jar
commons-pool-1.5.5.jar
상단의 2개 파일을 http://commons.apache.org 에서 다운받아서
WAS(톰캣)의 WEB-INF/lib 폴더로 복사.
각각 DBCP, Pool 항목을 받아서 압축을 풀면 안에 해당 jar 파일들이 있습니다.
(JDK 1.6, TOMCAT 7.0.4 에서 사용한 것이며, JDK나 톰캣의 버젼에 따라 다른 버젼을 사용해야 하는경우도 있음)



2. pool.jocl 작성(내용수정 필요)
파일명 pool.jocl로 저장한 다음, WEB-INF/classes 에 위치하도록 저장 합니다.

<object class="org.apache.commons.dbcp.PoolableConnectionFactory"
 xmlns ="http://apache.org/xml/xmlns/jakarta/commons/jocl">

<object class="org.apache.commons.dbcp.DriverManagerConnectionFactory">
 <string value="jdbc:mysql://localhost:3306/haebi"/>
 <string value="haebi"/>
 <string value="1234"/>
</object>

<object class="org.apache.commons.pool.impl.GenericObjectPool">
<object class="org.apache.commons.pool.PoolableObjectFactory" null="true"/>
 <int value="10"/>          <!-- maxActive -->
 <byte value="1"/>  <!-- whenExhaustedAction-->
 <long value="10000"/>  <!--maxWait -->
 <int value="10"/>  <!-- maxIdle -->
 <int value="3"/>  <!--minIdle-->
 <boolean value="true"/>  <!-- testOnBorrow-->
 <boolean value="true"/>  <!--testOnReturn--> 
 <long value="600000"/>  <!--timeBetweenEvctionRunsMillis-->
 <int value="5"/>  <!--numTestsPerEvictionRun-->
 <long value="3600000"/>  <!--minEvictableIdleTimeMillis-->
 <boolean value="true"/>  <!--testWhileIdle-->
</object>

<object class="org.apache.commons.pool.impl.GenericKeyedObjectPoolFactory" null="true"/>
 <string null = "true"/>
 <boolean value="false"/>
 <boolean value="true"/>
</object>

(드래그로 복사&붙여넣기 해서 쓰세요 -_-)


상단의 내용중...
<string value="jdbc:mysql://localhost:3306/haebi"/>
표시된 부분에 자신이 사용할 DB명을 설정.

 <string value="haebi"/>
표시된 부분에 DB접속 계정명을 기입.

 <string value="1234"/>
표시된 부분에 DB접속에 사용되는 패스워드를 기입.



3. DBCPInit.class 작성(경우에 따라 수정필요)
파일명 DBCPInit.java로 저장한 다음, WEB-INF/classes/jdbc/loader 에 위치하도록 저장 합니다.

package jdbc.loader;

import javax.servlet.http.HttpServlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import java.util.StringTokenizer;

public class DBCPInit extends HttpServlet {

 public void init(ServletConfig config) throws ServletException {
  try {
   String drivers = config.getInitParameter("jdbcdriver");
   StringTokenizer st = new StringTokenizer(drivers, ",");
   while (st.hasMoreTokens()) {
    String jdbcDriver = st.nextToken();
    Class.forName(jdbcDriver);
   }
   
   Class.forName("org.apache.commons.dbcp.PoolingDriver");

  } catch(Exception ex) {
   throw new ServletException(ex);
  }
 }
}

(드래그로 복사&붙여넣기 해서... 2탄 -_-)


package jdbc.loader;
패키지 명은 classes폴더 하단의 경로를 표시하는 것으로 임의로 주면 됩니다.

(예시)
package loader;
WEB-INF/classes/loader


해당 폴더로 이동한 다음 컴파일 합니다.
javac *.*

.java 파일은 Java 소스파일로서 서비스 운영에 필요한 파일은 아닙니다.
컴파일 되서 나온 .class 가 실제로 사용되는 파일입니다.



4. web.xml 수정 (자신의 환경에 맞추어서...)
WEB-INF 폴더 안에 있는 web.xml의 <web-app>태그안에 적당한 위치에 넣도록 합니다.
xml파일에 대해 잘 모르겠다... 하시는 분들은 </web-app>를 찾아서 바로 위에 붙여넣기 합세다.

<servlet>
  <servlet-name>DBCPInit</servlet-name>
  <servlet-class>jdbc.loader.DBCPInit</servlet-class>
  <init-param>
   <param-name>jdbcdriver</param-name>
   <param-value>com.mysql.jdbc.Driver</param-value>
  </init-param>
  <load-on-startup>1</load-on-startup>
</servlet>
(드래그로 복사&붙여넣기 해서... 3탄!)


<servlet-name>DBCPInit</servlet-name>
위 3. 항목에서 저장한 파일명을 그대로 적어줍니다.

<servlet-class>jdbc.loader.DBCPInit</servlet-class>
위 3. 항목에서 파일을 위치시킨 경로를 참조해서 수정합니다.



5. DBCP를 이용한 데이터베이스 연동 예제 (옵션)

 <%@ page contentType = "text/html; charset=UTF-8" %>
<%@ page import = "java.sql.DriverManager" %>
<%@ page import = "java.sql.Connection" %>
<%@ page import = "java.sql.Statement" %>
<%@ page import = "java.sql.ResultSet" %>
<%@ page import = "java.sql.SQLException" %>
<html>
<head><title>회원 목록</title></head>
<body>

MEMBER 테이블의 내용
<table width="100%" border="1">
<tr>
    <td>이름</td><td>아이디</td><td>이메일</td>
</tr>
<%
   
    Connection conn = null;
    Statement stmt = null;
    ResultSet rs = null;
   
    try {
        String jdbcDriver = "jdbc:apache:commons:dbcp:/pool";
        String query = "select * from MEMBER order by ID";
        conn = DriverManager.getConnection(jdbcDriver);
        stmt = conn.createStatement();
        rs = stmt.executeQuery(query);
        while(rs.next()) {
%>
<tr>
    <td><%= rs.getString("NO") %></td>
    <td><%= rs.getString("ID") %></td>
    <td><%= rs.getString("PASS") %></td>
</tr>
<%
        }
    } finally {
        if (rs != null) try { rs.close(); } catch(SQLException ex) {}
        if (stmt != null) try { stmt.close(); } catch(SQLException ex) {}
        if (conn != null) try { conn.close(); } catch(SQLException ex) {}
    }
%>
</table>

</body>
</html>

(드래그 & 붙여넣기... 하든말든;;; 그냥 테스트용)

소스를 환경에 맞게 수정해서 돌려보면 되겠습니다.




Posted by 해비
2010. 11. 24. 17:23

http://java.sun.com 또는
http://www.oracle.com/technetwork/java/index.html 에서 JDK최신버젼을 내려 받습니다.

플랫폼과 버젼 확인하고 끝에 .rpm.bin 으로 된것을 다운로드 합니다.

wget http://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/VerifyItem-Start/jdk-6u22-linux-x64-rpm.bin?BundledLineItemUUID=FX6J_hCxXAEAAAEst9kF_JVT&OrderID=uRqJ_hCx8c8AAAEsrNkF_JVT&ProductID=w9aJ_hCw9PAAAAErNFJuIQy3&FileName=/jdk-6u22-linux-x64-rpm.bin

chmod 755
실행권한 설정

./jdk-6u22-linux-x64-rpm.bin

중간에 엔터 한번 누르라고 나오는데 눌러줍니다.

성공적으로 설치가 된 경우
java -version
자바의 버젼이 표시됩니다.

javac -version 도 동일....





Posted by 해비
2010. 11. 24. 10:22

1. 파일 복사
http://www.phpmyadmin.net/ 에서 최신버젼(.gz)을 내려받습니다.

wget http://downloads.sourceforge.net/project/phpmyadmin/phpMyAdmin/3.3.8/phpMyAdmin-3.3.8-all-languages.tar.gz?r=http%3A%2F%2Fwww.phpmyadmin.net%2Fhome_page%2Findex.php&ts=1291003785&use_mirror=cdnetworks-kr-2

tar xvfz phpMyAdmin-3.3.8-all-languages.tar.gz
압축해제(임의의 적정한 곳에 풀어 줍시다)

mv phpMyAdmin-3.3.8-all-languages /var/www/html/myadmin
폴더를 httpd의 DocumentRoot 인 /var/www/html/myadmin 에 위치 시킵니다.(폴더 이동 & 폴더명변경)



2. 환경설정
cp config.sample.inc.php config.inc.php
(실제로 사용되어지는 파일은 config.inc.php 입니다)

vim config.inc.php
$cfg['blowfish_secret'] = 'qwertyuiop'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */

$cfg['Servers'][$i]['auth_type'] = 'http';

/* User for advanced features */
$cfg['Servers'][$i]['controluser'] = 'phpmyadmin';
$cfg['Servers'][$i]['controlpass'] = 'phpmyadmin';

/* Advanced phpMyAdmin features */
$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
$cfg['Servers'][$i]['bookmarktable'] = 'pma_bookmark';
$cfg['Servers'][$i]['relation'] = 'pma_relation';
$cfg['Servers'][$i]['table_info'] = 'pma_table_info';
$cfg['Servers'][$i]['table_coords'] = 'pma_table_coords';
$cfg['Servers'][$i]['pdf_pages'] = 'pma_pdf_pages';
$cfg['Servers'][$i]['column_info'] = 'pma_column_info';
$cfg['Servers'][$i]['history'] = 'pma_history';
$cfg['Servers'][$i]['designer_coords'] = 'pma_designer_coords';
blowfish_secret은 쿠키값 암호화 관련 옵션으로 추정되는데 아무 문자열이나 넣어주면 됩니다.
'auth_type' 은 보안상 http가 좋다고 하네요(http인증의 경우, 모든 웹 브라우저를 닫아야 로그아웃이 완료 됩니다)
'controluser', 'controlpass' 는 pma DB를 사용할 계정입니다.
/* Advanced phpMyAdmin features */ 부분은 주석처리 되어있는데 앞에 // 지우면 주석 해제 됩니다



3-1. pma용 DB계정생성 (첨부된 파일 사용 권장)
mysql -uroot -p1234
use mysql;
 INSERT INTO `mysql`.`user` (
`Host` ,
`User` ,
`Password` ,
`Select_priv` ,
`Insert_priv` ,
`Update_priv` ,
`Delete_priv` ,
`Create_priv` ,
`Drop_priv` ,
`Reload_priv` ,
`Shutdown_priv` ,
`Process_priv` ,
`File_priv` ,
`Grant_priv` ,
`References_priv` ,
`Index_priv` ,
`Alter_priv` ,
`Show_db_priv` ,
`Super_priv` ,
`Create_tmp_table_priv` ,
`Lock_tables_priv` ,
`Execute_priv` ,
`Repl_slave_priv` ,
`Repl_client_priv` ,
`Create_view_priv` ,
`Show_view_priv` ,
`Create_routine_priv` ,
`Alter_routine_priv` ,
`Create_user_priv` ,
`ssl_type` ,
`max_questions` ,
`max_updates` ,
`max_connections` ,
`max_user_connections`
)
VALUES (
'localhost', 'phpmyadmin', PASSWORD( 'phpmyadmin' ) , 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', '', '0', '0', '0', '0'
);
 INSERT INTO `mysql`.`db` (
`Host` ,
`Db` ,
`User` ,
`Select_priv` ,
`Insert_priv` ,
`Update_priv` ,
`Delete_priv` ,
`Create_priv` ,
`Drop_priv` ,
`Grant_priv` ,
`References_priv` ,
`Index_priv` ,
`Alter_priv` ,
`Create_tmp_table_priv` ,
`Lock_tables_priv` ,
`Create_view_priv` ,
`Show_view_priv` ,
`Create_routine_priv` ,
`Alter_routine_priv` ,
`Execute_priv`
)
VALUES (
'localhost', 'phpmyadmin', 'phpmyadmin', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N'
);
FLUSH PRIVILEGES ;
권한 재적용

phpmyadmin계정관련 사용자 등록 및 설정 완료!!



3-2. 여기 포스트에 첨부된 파일 사용시...
mysql -uroot -p1234 < phpmyadmin.sql
간단하게 위의 절차가 완료~



4. 환경설정 적용준비
mkdir config
(config 폴더 생성)

chmod o+rw config
(폴더의 권한 rw 추가)

cp config.inc.php config/
설정파일을 config에 복사

chmod o+w config/config.inc.php
설정파일에 쓰기 옵션 추가

cd /var/www/html/myadmin/scripts
script 폴더로 이동

mysql -uroot -p1234 < create_tables.sql
pma에서 사용할 데이터 베이스 생성



5. 환결설정 적용
웹서버 재시작
service httpd restart

웹브라우저 열고
http://컴퓨터 IP또는 도메인주소/myadmin/
phpmyadmin로그인
여기서 하단에 보면 설정이 저장되었으니 보안상 config 폴더를 삭제해 달라는 내용이 있습니다.

만약에 Forbidden 오류 발생시 myadmin 폴더에 보안문맥 설정
chcon -R -u system_u -t httpd_sys_content_t myadmin



6. 뒷정리
rm -rf config
환경설정 폴더 삭제 (또는 폴더이름 변경해도 상관없음)



* 사용된 파일 정리

haebi's phpmyadmin.zip


2013-05-23
헐...
패스워드 깜빡했네요... 사이트 주소 입니다.
http://haebi.kr



Posted by 해비
2010. 11. 23. 18:13


아래는 x86_64 기반의 링크입니다.
32비트 버젼은 직접 들어가서 찾으셔야 합니다

rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
rpm -Uvh http://dl.iuscommunity.org/pub/ius/stable/Redhat/5/x86_64/ius-release-1.0-6.ius.el5.noarch.rpm

기존에 설치된 PHP 5.1 제거 (관련 충돌 항목도 제거해 줍시다)
yum remove php-cli
yum remove php-common

Apache 설치(설치가 되어있지 않은 경우에만)
yum install httpd

PHP 5.3설치
yum install php53-pear php53 php53-cli php53-common \
php53-devel php53-gd php53-mbstring php53-mcrypt \
php53-mysql php53-pdo php53-soap php53-xml php53-xmlrpc \
php53-bcmath php53-pecl-apc php53-pecl-memcache

MySql 설치
yum -y install mysql mysql-server mysql-connector-odbc mysql-devel
(만약 yum에서 제공되는것 보다 최신버젼의 MySql을 설치할려면  rpm 패키지를 직접 받아서 설치해야 합니다.)

요까지 APM 설치 끝~




[MySql 설정]
1. 메모리 관련 설정
cp /usr/share/mysql/my-huge.cnf /etc/my.cnf
대부분 시스템이 2G 이상이므로 이렇게 설정합니다.
그 밖의 설정은 아래 표를 참고 합니다.

 my-huge.cnf 1~2 GB
 my-large.cnf 512 MB 
 my-medium.cnf 128~256 MB 
 my-small.cnf 64M 이하

혹시 SELinux 관련 Denied 오류 발생시 my.cnf의 태그정보를 아래와 같도록 수정합니다.

chcon -u system_u my.cnf
chcon -t mysqld_etc_t my.cnf

ls -Z | grep my.cnf
해당 파일의 태그정보 확인



2. 문자셋 관련 설정
vi /etc/my.cnf

 [client]
default-character-set = utf8

[mysqld]
init_connect = SET collation_connection = utf8_general_ci
init_connect = SET NAMES utf8
default-character-set = utf8
character-set-server = utf8
collation-server = utf8_general_ci

[mysqldump]
default-character-set=utf8

[mysql]
default-character-set=utf8




3. DB파일 위치
/var/lib/mysql/mysql/



4. Mysql 서비스 시작 및 중지
service mysqld start
service mysqld stop
service mysqld restart



5. 서비스 자동시작
ntsysv 또는 setup 들어가서 mysqld 에 *표 체크



6. MySql의 root 패스워드 지정
mysql -uroot 엔터
하면 > 모양의 프롬프트가 나옵니다 여기서 부터는 문장이 끝났음을 알리는 ; 표시가 필요합니다
mysql>show databases;
+----------------------+
| Database
+----------------------+
| information_schema
| mysql
| test
+----------------------+
3 rows in set (0.00 sec)

mysql>use mysql;
Database changed
mysql>show tables;
(이건 내용이 많아서 생략 -_-)
mysql>update user set password=password('1234') where user='root';

mysql>flush privileges;
mysql>quit;
show databases, show tables 는 단지 데이터베이스와 테이블 목록을 보기 위함입니다. 타이핑 안하셔도 됨!

flush privileges 는 권한 재적용 입니다. 루트의 패스워드 바뀐것을 적용하기 위해서...

MySql로그인 할때는 mysql -uroot -p1234 하면 들어가 집니다.
패스워드는 위 1234로 설정하는 것을 예로 들었습니다. 임의로 설정 하면 되겠습니다.

여기까지 하면 http 폴더에 phpmyadmin 설치해서 root 로 접근이 가능합니다.


* 일일이 파일 수정하기 귀차나서 정리해둔 자료... 암호는 여기 사이트 주소입니다.

(Haebi's APM 스크립트 파일 사용에 관하여...)
*  php 5.1 제거 부분은 직접 해야합니다.

임의의 폴더 /root 에 해당 파일을 풀어서 놓습니다.
chmod +x repo
chmod +x apm_install
./repo
./apm_install
중간에 (y/n) 물어보는거 Y 눌러주면 됩니다.


참고 사이트
1. http://www.youtube.com/watch?v=lYDeDt5zrss (Installing PHP 5.3.3 on CentOS 5.5 tutorial)
2. http://clip.springnote.com/pages/2192390


Posted by 해비
2010. 10. 20. 14:06

시스템 달력은 2099년 12월 31일 까지로 끝나네요...

컴퓨터의 날짜가 달력의 표시범위를 벗어났다나...??


그건 그렇고, 저 날짜가 되기까지 멀쩡하게 살아있을지는...



Posted by 해비
2010. 10. 19. 20:59

DB 언어와 내부 코드의 언어는 모두 UTF-8 로 설정 후 작업하였습니다.
설정내용 포스트  <- 참조


JSP파일로만 구성되어있으며, 커넥션풀? 자바빈스? 이런거 하나도 안들어갔습니다.
이해를 돕기위해서(?) 만들어본 초 간단 샘플 입니다... 이 보다 더 간단하게 코딩할수는 없을듯하네요 ^^


사실은 저도 잘 몰라서 그렇습니다.. 너그러이 양해를...

첨부파일에 소스코드 & DB 포합입니다.
haebi DB를 통째로 덤프 뜬 것이므로 phpMyadmin 에서 임포트 하면 DB 생성될 것입니다.
(안에는 테이블이 2개가 있습니다.)

MySQL 계정을... 생성해야 합니다만 소스 고치셔도 되고...
ID : haebi
PW : 1234
로 설정하면 되겠네요

MySQL 계정생성 부분 역시 설정내용 포스트 링크를 참조해주세요

jdbcEx.jsp 는  테이블 cellcost의 내용을 출력하는 예제입니다.


Posted by 해비
2010. 10. 19. 20:32
설치한 프로그램들...
- APMSetup 7 설치 (Apache, PHP, MySQL)
- JDK 1.6 Update 22
- ApacheTomcat 7.0 설치



[Java 환경변수 등록]
JDK설치 경로 예시...
C:\Java\jdk1.6.0_22

JAVA_HOME = C:\Java\jdk1.6.0_22
PATH = %JAVA_HOME%\bin



MySQL 에서 새로운 DB를 생성 (utf8_general_ci)로 생성했다고 가정...

(옵션)
DB사용자는 필요시 추가
user에 localhost, ID, PASSWORD(PW), N, N, ...
db에 localhost, ID DB, Y, Y, ...
그리고 홈에서 reload previledge 인가.... 권한 다시 읽기 해줘야 저것이 적용됨

해당 계정 또는 루트권한으로 로그인
테이블 설계를 및 생성까지...

jsp에서 해당 DB접속 하여 값을 읽어지는지 테스트

jsp에서 MySql에 값이 정상으로 들어가는지 테스트
(utf-8 문제로 한글이 깨질경우...)

-MySQL 설정
설치된 폴더안에 my.ini 라는 파일을 찾아서 아래와 같이 수정(/data 폴더 안에있네요)

[client]
default-character-set=utf8

[mysqld]
default-character-set=utf8


-Tomcat 설정
/conf/server.xml 파일의 내용 을 아래와 같이 수정

 <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" URIEncoding="utf-8"/>

이부분인데 URIEncoding="utf-8" 이 부분을 추가하거나 수정한뒤 저장하고 톰캣 재시작



- JSP/Servlet 실행을 위한 설정
톰캣 설치폴더의 common/lib/servlet-api.jar 파일을
JDK가 설치된 경로의 /jre/lib/ext 에 복사



- MySQL Connector/J 설치

MySQL홈페이지에서 내려받은 다음 압축을 풀면 안에 jar파일이 있음

아래의 경로에 설치했다고 가정할때,
JDK설치경로 C:\Java\jdk1.6.0_22
TOMCAT 설치경로 C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\ROOT\WEB-INF

ex)
C:\Java\jdk1.6.0_22\jre\lib\ext 폴더에,
C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\ROOT\WEB-INF\lib 폴더에 복사
(폴더가 없을경우 생성)






- JSP파일 내부에 캐릭터셋 지정

JSP의 경우는 페이지 지시자 설정
<%@ page contentType="text/html;charset=utf-8" %>

HTML페이지에 메타테그 설정
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />


*이클립스에서 디폴트를 utf-8로 지정해주면 새 jsp 파일 생성시에 자동으로 붙음
Window - Preferences -> Web 에서 HTML, CSS, JSP의 인코딩을 ISO10646/UTF-8 로 지정
Window - Preferences - General - Editors - Texteditors 에서 spelling을 other선택 후, UTF-8 로 지정



- JSP에서 GET, POST 처리에서 (한글)데이터가 들어갈때는 utf-8로 변환
(안깨지고 잘 들어가면 상관없음~~ 아마도...?)

POST 방식의 처리
request.setCharacterEncoding("UTF-8");

GET 방식의 처리
String data = new String(request.getParameter("data").getBytes("8859_1"),"UTF-8");





[참고한 사이트]
http://blog.naver.com/seogi1004?Redirect=Log&logNo=110045319589
http://trend21c.tistory.com/673



Posted by 해비
2010. 9. 30. 00:01

HTML 소스코드에서 URL  추출한 다음 해당 URL을 서버로 보내면 빌드가 진행되더군요

그래서... 이래저래 좀더 연구중인...

기본은 C# webbrowser 컨트롤로 접근하면서 내부 URL 긁어내고 그거로 Navigate 태우는 동작을...
타이머 이런거 넣어서 리스트로 만들어두고 시간되면 자동으로 URL날려서 작업 시작 하도록 해볼까... 싶네요 -ㅅ-

정석인지는 모르겠지만...

1. C#의 webbrowser 컨트롤에 URL주소를 Navigate 태웁니다
2. HTML소스에서 필요한 내용 (A href= 에서 href의 경로 추출)
3. 필요한 경로 파악 후 해당경로를 다시 1번으로

대충 이렇게 되었네요;;;

가능한건지 불가능한건지 모르겠지만... 여트 진행중입니다.

아직은 그림이 그려지는거로 봐서... 생각대로만 진행된다면야...

오게임 오토 프로그램 탄생... 할지도요 ^^;;





덧,
webbrowser 컨트롤이 그림까지 다 불러오는 바람에 속도가 너무 느리네요;;

가끔 로딩하다가 멍하니 있는경우 새로 경로 불러와야 하는디 이건 어찌 해줄까 고민중...;;

실제로 HTML 읽어다가 자동으러 뭔가 작업(?)을 할때 이런식으로 처리하는지는 모르겠네요;;

저거 없이 직접 구현할려면 세션, 쿠키 부터 생각해야 될것이 한두개가 아닌거 같고;; 흠;;;

Posted by 해비