2007년 12월 15일 토요일
Visual Basic에서 TaskBar 사이즈 얻어오기
Public Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
Public Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Dim hTaskbar As Long
Dim rTaskbar As RECT
Dim sClass As String
sClass = "Shell_TrayWnd"
hTaskbar = FindWindow(sClass, "")
GetWindowRect hTaskbar, rTaskbar
API Guide
이 글을 보는 모든 프로그래머에게 엄청나게 유용한 프로그램을 소개한다.
바로 API-Guide..
물론 아는 사람들도 많겠지만, 프로그래머를 바보로 만드는 유명한 프로그램이라 소개한다.
비주얼베이식 프로그래머들의 고질적인 단점이 뭘까...
바로.. Win32 API 가 뭔지도 모른다는거다. 비베의 한계를 뛰어넘기 위해서는
Win32 API를 써야 함에도 불구하고 많은 후잡 프로그래머들은 비베의 한계를 느끼고
프로그래밍을 접거나, MFC 쪽으로 넘어가고 만다.
이 글을 쓰고 있는 나도 고등학생때까지 비베에서 API라는 걸 쓰는 건 알고 있었지만
어떻게 써야 하는지 전혀 몰랐다.
자.. 여기 그런 프로그래머들을 위한 프로그램을 소개한다.
API Guide 는 약 1000개정도의 비주얼 베이식에서 사용할 수 있는 API를 간편하게 정리해놓은
프로그램이다. 물론 덤으로 그에 따른 예제까지 실어주고 있다.
너무 좋아하지는 마라..
이런 프로그램.. 예를 들어 VA(Visual Assistance)와 같이 프로그래머의 손을 더 쉽게 해주는 프로그램을 많이 쓰면 어느 순간에 그런것들이 없으면 프로그래밍이 불가능한 바보가 될지도 모르니깐... 정말 모를때만 쓰고 왠만하면 MSDN을 참고하는 습관을 들이자.
MSDN에는 API가 C 문법 위주로 나와 있는데 데이터 형만 잘 이해하고 있다면
Visual Basic에서도 얼마든지 사용 가능하다.
이상!
2007년 12월 14일 금요일
Linux Tomcat 설치
톰캣 다운로드
다운로드 URL : http://tomcat.apache.org/
위의 URL에서 톰캣을 다운받는다.
이 문서에서는 apache-tomcat-5.5.17.tar.gz 를 다운받았다.
톰캣 설치
다운 받은 apache-tomcat-5.5.17.tar.gz를 /usr/local/src 로 옮겼다.
#tar xvfz apache-tomcat-5.5.17.tar.gz [enter]
/usr/local/src/apache-tomcat-5.5.17 디렉토리가 생기고 그 안에 톰캣이 깔린다.
이 디렉토리를 /usr/local 로 옮겼다.
#mv apache-tomcat-5.5.17 /usr/local [enter]
톰캣 실행
# cd /usr/local/apache-tomcat-5.5.17/bin [enter]
# ./startup.sh [enter]
톰캣 실행 확인
브라우저에서 http://192.168.0.2:8080 를 넣어 고양이가 나오는지 확인
톰캣 관리화면 활성화 시키기
다음 파일을 편집한다.
# vi /usr/local/apache-tomcat-5.5.17/tomcat-users.xml [enter]
다음 내용을 추가시킨다.
<role rolename="manager"/>
<user username="admin" password="admin" roles="manager"/>
톰캣을 다시 재실행한다.
#/usr/local/apache-tomcat-5.5.17/bin/shutdown.sh [enter]
#/usr/local/apache-tomcat-5.5.17/bin/startup.sh [enter]
톰캣 관리화면을 열어본다.
브라우저에서 http://192.168.0.2:8080/manager/html
ID : admin
Password : admin
톰캣 클래스패스 설정하기
#vi /etc/profile [enter]
다음 내용을 넣는다.(주로 가장 마지막에...)
CATALINA_HOME="/usr/local/apache-tomcat-5.5.17"
export CATALINA_HOME
CLASSPATH=".:$CATALINA_HOME/lib/servlet.jar"
export CLASSPATH
* 위에서 CLASSPATH의 경우는 이미 CLASSPATH가 정해져 있다면
처음에 $CLASSPATH를 넣어주거나
기존의 CLASSPATH 정의부분의 뒤쪽에 이어서 입력해 준다.
저장하고 나온 후
#source /etc/profile [enter]
---- 참고 ----
http://cafe.naver.com/bestreal.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=221
2007년 12월 12일 수요일
Fedora 4 YUM 설정
원래 들어있는 파일은 6개다.
fedora.repo
fedora-devel.repo
fedora-extras-devel.repo
fedora-extras.repo
fedora-updates.repo
fedora-updates-testing.repo
여기에서 인스톨에 fedora.repo, 업데이트에 fedora-updates.repo를 쓴다. 일단 요것만 고쳐보자.
<원본 fedora.repo>
name=Fedora Core $releasever - $basearch - Base한글
#baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/$releasever/$basearch/os/
mirrorlist=http://fedora.redhat.com/download/mirrors/fedora-core-$releasever
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora
baseurl에 주석 처리가 되어있으니 결국 mirrorlist 행이 관건인 셈이다. $releasever는 자기 페도라 버전에 따라 현재까지 1~5로 나타난다. 그럼 주소에 나와 있는 fedora-core-4 파일을 열어보자.
http://download.fedoraproject.org/pub/fedora/linux/core/4/$ARCH/os/
http://mirror.linux.duke.edu/pub/fedora/linux/core/4/$ARCH/os/
http://fedora.mirrors.tds.net/pub/fedora-core/4/$ARCH/os/
...
...
가능한 미러가 66개 나와있다. 그런데 제일 느린 서버가 1순위이므로 접속은 되지만 느려터져 답답하다. 따라서 커스텀 미러 리스트 파일을 작성하자. Updates가 들어있는 디렉토리 주소가 조금 다르다. 한국 서버가 가장 빠르기는 하지만 이 포스트를 작성하는 시점에서 404 에러를 토했기 때문에 속도는 조금 떨어져도(200-500kB/s 정도) 믿음직스러운 kernel.org를 1순위로 잡았다.
<custom-BASE>
http://mirrors.kernel.org/fedora/core/4/$ARCH/os
ftp://ftp.kreonet.re.kr/pub/Linux/fedora/core/4/$ARCH/os
ftp://mirror.hostway.co.kr/pub/fedora/4/$ARCH/os
ftp://ftp.kaist.ac.kr/pub/fedora/linux/core/4/$ARCH/os
<custom-UPDATES>
http://mirrors.kernel.org/fedora/core/updates/4/$ARCH
ftp://ftp.kreonet.re.kr/pub/Linux/fedora/core/updates/4/$ARCH
ftp://mirror.hostway.co.kr/pub/fedora/updates/4/$ARCH
ftp://ftp.kaist.ac.kr/pub/fedora/linux/core/updates/4/$ARCH
그럼 fedora.repo, fedora-updates.repo 기존의 mirrorlist를 주석처리하고, 새로운 주소로 설정하자.
gpgcheck도 꺼놓으면 성가시지 않다.
<고친 fedora.repo>
mirrorlist=file:///etc/yum.repos.d/custom-base
gpgcheck=0
<고친 fedora-updates.repo>
mirrorlist=file:///etc/yum.repos.d/custom-updates
다시 실행할 서비스 없이 다음에 yum 실행할 때 바로 적용된다.
2007년 12월 11일 화요일
Tomcat in Fedora4
설치순서
1. apache(httpd-2.0.54, source)
2. apache-tomcat-connector(jakarta-tomcat-connectors-1.2.14.1-src, source)
3. tomcat(jakarta-tomcat-4.1.31, binary)
4. setting
1-1) ./configure --prefix=/usr/local/apache2 --enable-mods-shared=most --enable-modules=so --with-mpm=worker
1-2) make
1-3) make install
1-4) echo "/usr/local/apache2/lib" >> /etc/ld.so.conf
echo "/usr/local/apache2/modules" >> /etc/ld.so.conf
ldconfig
============================================================================================================
2-1) ./buildconf.sh
2-2) ./configure --with-apxs=/usr/local/apache2/bin/apxs
2-3) make
2-4) make install
2-5) /usr/local/apache2/conf/httpd.conf 파일수정
모듈추가라인 가장 아래 다음과 같이 추가
LoadModule jk_module modules/mod_jk.so
============================================================================================================
3-1) /usr/local/tomcat 에 설치
3-2) /usr/local/tomcat/conf/server.xml 파일수정
서비스 컨텍스트 추가
<Host name="xxx.xxx.co.kr">
<Context path="" docBase="/home/xxx/public_html"
reloadable="true"/>
<Alias>xxx.xxx.co.kr</Alias>
</Host>
============================================================================================================
4-1) /usr/local/tomcat/conf/auto/mod_jk.conf 파일수정(없으면 생성)
다음과 같이 생성
<IfModule !mod_jk.c>
LoadModule jk_module libexec/mod_jk.so
</IfModule>
JkWorkersFile "/usr/local/tomcat/conf/jk/workers.properties"
JkLogFile "/usr/local/tomcat/logs/mod_jk.log"
JkLogLevel emerg
<VirtualHost localhost>
ServerName localhost
JkMount /tomcat_admin ajp13
JkMount /tomcat_admin/* ajp13
JkMount /webdav ajp13
JkMount /webdav/* ajp13
JkMount /examples ajp13
JkMount /examples/* ajp13
JkMount /tomcat-docs ajp13
JkMount /tomcat-docs/* ajp13
JkMount /manager ajp13
JkMount /manager/* ajp13
</VirtualHost>
4-2) /usr/local/tomcat/conf/jk/workers.properties 파일수정(없으면 생성)
다음과 같이 생성
# Start setup file
#
workers.tomcat_home=/usr/local/tomcat
workers.java_home=/usr/local/java
ps=/
worker.list=ajp12, ajp13
# Definition for Ajp13 worker
#
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13
#
# End setup file
4-3) /usr/local/tomcat/conf/web.xml 파일수정
<web-app> tag 내에 추가
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>filters.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>EUC_KR</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
4-4) 한글변환 문자 셋 / 디렉토리에 압축 풀기 (tar -zxvf classes.tgz -C /)
4-5) /usr/local/apache2/conf/httpd.conf 파일수정
다음과 같이 추가
JkWorkersFile /usr/local/tomcat/conf/jk/workers.properties
Include /usr/local/tomcat/conf/auto/mod_jk.conf
JkLogFile /usr/local/tomcat/logs/mod_jk.log
JkLogLevel emerg
4-6) /usr/local/apache2/conf/httpd.conf 파일수정
버츄얼 호스팅 설정
#NameVirtualHost *:80 (주석제거)
다음과 같이 추가
<VirtualHost *:80>
ServerAdmin root@xxx.xxx.co.kr
DocumentRoot /home/xxx/public_html
ServerName xxx.xxx.co.kr
JkMount /*.jsp ajp13
JkMount /servlet/* ajp13
</VirtualHost>
4-7) /etc/profile(환경변수 수정)
export LC_ALL=ko_KR.eucKR
export LANG=ko_KR.eucKR
JAVA_HOME=/usr/local/java
CATALINA_HOME=/usr/local/tomcat
PATH=$PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin
export JAVA_HOME CATALINA_HOME
export set CLASSPATH=.:$CLASSPATH=/usr/local/java/lib/tools.jar:.:/usr/local/java/lib/dt.jar:/home/xxx/public_html/WEB-INF/lib/jCharts-0.7.0.jar:/home/xxx/public_html/WEB-INF/lib/Acme.jar:.:
export set CLASSPATH=.:$CLASSPATH=$CLASSPATH:/home/xxx/public_html/WEB-INF/lib/mysql-connector-java-3.1.7-bin.jar:/home/xxx/public_html/WEB-INF/lib/jxl.jar:/home/xxx/public_html/WEB-INF/lib/activation.jar:/home/xxx/public_html/WEB-INF/lib/mail.jar:/usr/local/java/lib/jfreechart-0.9.16.jar:.:
export set CLASSPATH=.:$CLASSPATH=$CLASSPATH:/home/xxx/public_html/WEB-INF/classes:.:
export set CLASSPATH=.:$CLASSPATH=$CLASSPATH:/home/hurec/public_html/WEB-INF/classes:.:
export set CLASSPATH=.:$CLASSPATH=$CLASSPATH:/usr/local/tomcat/common/lib/servlet.jar:.:
아파치와 톰캣 연동(펌)
mod_jk를 사용해서 아파치 2 와 톰캣 5.5를 연동하기
httpd-2.0.55의 소스를 받아 설치한다.
./configure --enable-so --enable-mods-shared=most --prefix=/usr/local/apache2.
2: 자바(JDK 1.5이상)를 설치한다.
/usr/local/java 등의 위치에 설치하고, /etc/profile 제일 아랫줄에
ln -s /usr/local/apache-tomcat-5.5.12 /usr/local/tomcat
groupadd tomcat
chown -R tomcat.tomcat /usr/local/apache-tomcat-5.5.12 /usr/local/tomcat
/etc/profile에 아래의 내용을 추가하고 적용한다.
export PATH=$PATH:/usr/local/bin:/usr/local/tomcat/bin
export JAVA_HOME=/usr/java/jdk1.5.0_05
export CATALINA_HOME=/usr/local/tomcat
위의 내용을 추가했으면,
source /usr/profile을 실행
톰캣 서버 실행 테스트
톰캣 디렉토리의 bin디렉토리가 PATH에 포함된 것을 확인하고,
을 실행하면 톰캣이 실행된다.
ps -def | grep tomcat
tomcat 18591 1 88 06:40 pts/0
ps -def | grep tomcat
을 실행하면 위의 내용이 보이지 않게 된다.
4: mod_jk 설치하기
jakarta-tomcat-connectors-1.2.14.1-src.tar.gz 를 다운받고 아래처럼 실행한다.
cd jakarta-tomcat-connectors-1.2.14.1-src/jk/native
./buildconf.sh
./configure --with-apxs=/usr/local/apache2/bin/apxs
make
make install
mod_jk.so 가 /usr/local/apache2/modules 디렉토리 안에 있고, 권한은 755로 설정되어있는지 확인한다..
5: 아파치를 톰캣에 연결하기
/usr/local/apache2/conf 디렉토리에 workers.properties 라는 이름의 파일을 만들고 아래의 내용을 입력한 후 저장한다.
workers.tomcat_home=/usr/local/tomcat
workers.java_home=/usr/java/jdk1.5.0_05
ps=/
worker.list=default
worker.default.port=8009
worker.default.host=localhost
worker.default.type=ajp13
worker.default.lbfactor=1
httpd.conf 에 아래의 내용을 추가한다.
#
# Mod_jk settings
#
# Load mod_jk module
LoadModule jk_module modules/mod_jk.so
# Where to find workers.properties
JkWorkersFile conf/workers.properties
# Where to put jk logs
JkLogFile logs/mod_jk.log
# Set the jk log level [debug/error/info]
JkLogLevel debug
# Select the log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
# JkOptions indicate to send SSL KEY SIZE,
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
# JkRequestLogFormat set the request format
JkRequestLogFormat "%w %V %T"
# Send JSPs for context /jsp-examples to worker named default
JkMount /jsp-examples/*.jsp default
# Send servlets-examples to worker named default
JkMount /servlets-examples/* default
Keep editing httpd.conf and add following Alias directives (for example under the entry for the icon Alias). These directives tell Apache to map /jsp-examples and servlets-examples to the sample directories that ship with Tomcat.
# Static files in the jsp-examples webapp are served by apache
Alias /jsp-examples "/usr/local/tomcat/webapps/jsp-examples/"
Options FollowSymLinks
AllowOverride None
Allow from all
# The following line prohibits users from directly access WEB-INF
AllowOverride None
deny from all
# Static files in the servlets-examples webapp are served by apache
Alias /servlets-examples "/usr/local/tomcat/webapps/servlets-examples/"
Options FollowSymLinks
AllowOverride None
Allow from all
# The following line prohibits users from directly access WEB-INF
AllowOverride None
deny from all
아파치를 재구동한다.
http://Web_server_name_or_IP:8080에 접속해 본다.
http://Web_server_name_or_IP/jsp-examples 과
http://Web_server_name_or_IP/servlets-examples 에 접속하여 연동을 확인한다