2009년 7월 27일 월요일
하아..
목표는 커다랗게 머리속에 박혀있는데...
세부적인 목표는... 세워두질 않은것 같다...
목표를 안세워서 그런지 세월아 네월아 그냥 흘러가기만을 기다리고 있는듯 하네
일단, 작은 목표부터 하나하나 해결해나가야할 것 같다.
책 한권을 최단 시간내에 독파하기...
이거부터 해결해나가야 다음 목표에 다가설 수 있지 않을까...
내가 정말 프로그래머로서 살고 싶은건지..
다른 길로 가고 싶은 마음이 있는건지.. 모르겠네..
2009년 7월 21일 화요일
[스타일시트] 특정영역 인쇄하기
특정영역 인쇄하는 것을 자바스크립트로 하다가 먼가 깔끔하지 못한거 같아서 새로운 방법을 찾던중
이번에는 CSS (스타일시트) 로 인쇄영역을 구분하는 방법에 대해 할게 되었다.
이 방법은 media에 따라 스타일을 다르게 주는 방법으로,
이를 이용하면 화면에 보이는 스타일과 인쇄되는 스타일을 다르게 설정할 수 있다.
즉, 단순히 보이지 않는 것을 떠나서 색을 바꾼다던지 배경그림을 넣는 것, 폰트를 변경하는 것도 가능하다.
항상 장점이 있으면, 단점도 있는 법!!
이런 장점만큼이나 안타까운 단점이 있다.
자바스크립트로 구현할 때는 내가 인쇄하기를 원하는 부분만을 묶으면 되지만,
이는 반대로 인쇄를 하지 않을 부분을 묶어야 한다는 것이다.
이 방법이 때로는 장점이 될수도 있는 것이지만, 특정 페이지에서만 인쇄를 하고 홈페이지를 노프레임형태로 Server Side Include (PHP, ASP, Apache 등 서버단에서 Include 하는 것)을 사용한다면 변경해야될 파일이 많아진다.
하지만 모든 페이지에서 인쇄를 해야하고, 항상 특정부분을 제외해야 한다면 장점도 될수 있을 것이다.
이를 사용하는 방법은 아주 간단하다.
핵심코드는 아래 몇줄안되는 코드가 전부다.
이렇게 media="print"를 하면 인쇄할 때만 적용되고, media="screen"은 화면에 출력할 때만 적용이 된다.
위의 코드는 class="noprint" 가 지정되어 있는 영역은 프린트가 되지 않게 만들고,
반대로 class="onlyprint"가 지정되어 있는 영역은 화면에 출력되지 않게 한다.
그렇게 어려운 내용이 아니므로 아래 예제를 보면 충분히 이해할 수 있을 것이다.
예제보기
<head>
<style type="text/css" media="print">
.noprint { display:none; }
</style>
<style type="text/css" media="screen">
.onlyprint { display:none; }
</style>
</head>
<body>
<table class="noprint" border=1>
<tr>
<td>프린트 되지 않고 화면에만 보이는 부분</td>
</tr>
</table>
<table class="onlyprint" border=1>
<tr>
<td>프린트만 되고 화면에는 보이지 않는 부분</td>
</tr>
</table>
<table border=1>
<tr>
<td>화면과 프린트 양쪽 다됨..</td>
</tr>
</table>
</body></html>
출처 - http://realmind.tistory.com/198 BSH님 블로그 펌
2009년 7월 10일 금요일
[리눅스] 리눅스를 원격제어 해보자!~
리눅스에서도 윈도우처럼 x-window을 원격제어 할 수 있다.
물론 여러가지 프로그램들이 있지만, 우선 여기에서 VNC를 이용하여 원격제어를
하고자 한다.
1. VNC SERVER가 설치가 되어있는지 확인을 해본다.
#rpm -qa|grep vnc vnc-server-4.1.2-9.el5 |
2. VNC가 설치가 되어 있다면 VNC 설정파일에서 사용자를 추가해준다.
#vi /etc/sysconfig/vncservers |
# The VNCSERVERS variable is a list of display:user pairs. # # Uncomment the lines below to start a VNC server on display :2 # as my 'myusername' (adjust this to your own). You will also # need to set a VNC password; run 'man vncpasswd' to see how # to do that. # # DO NOT RUN THIS SERVICE if your local area network is # untrusted! For a secure way of using VNC, see # <URL:http://www.uk.research.att.com/archive/vnc/sshvnc.html>. # Use "-nolisten tcp" to prevent X connections to your VNC server via TCP. # Use "-nohttpd" to prevent web-based VNC clients connecting. # Use "-localhost" to prevent remote VNC clients connecting except when # doing so through a secure tunnel. See the "-via" option in the # `man vncviewer' manual page. VNCSERVERS="1:user" #이부분의 주석을 제고하고 사용하고자하는 사용자를 등록한다. 사용자앞은 숫자는 접속할때 필요한 것이므로 유의하여 등록한다. # VNCSERVERARGS[2]="-geometry 800x600 -nolisten tcp -nohttpd -localhost" |
3. VNC를 실행을 위한 준비작업.
- 환경설정
# vncserver :1 Starting VNC server: 1:user New 'linux.user:1(user)' desktop is linux.user:1 starting applications specified in /home/user/.vnc/xstartup Log file is /home/user/.vnc/linux.user:1.log |
위 명령을 실행하면 x-windows를 선택할 수 있는 필요 파일들이 생성된다.
= 아래 설정파일에서 빨간색으로 표시된 부분을 주석을 제거해줘야
GUI 원격제어를 할수가 있다.. 이게 주석처리되있으면 터미널모드만 실행가능한
원격제어가 된다..(그럴거면 SSH 접속 프로그램이 오히려 더 편하다..)
#vi ~/.vnc/xstartup |
#!/bin/sh # Uncomment the following two lines for normal desktop unset SESSION_MANAGER exec /etc/X11/xinit/xinitrc [ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources xsetroot -solid grey vncconfig -iconic & xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" & twm & |
- VNC 실행
실행된 VNC 서버가 있다면 설정을 변경한후 재기동을 해준다. 이때 재기동을 해주어야 변경된 환경설정되로 변경된다.
[root@ ~] service vncserver restart
#vncserver -kill :1 Killing Xvnc process ID 1234 |
#vncserver :1 Starting VNC server: 1:user New 'linux.user:1 (user)' desktop is linux.user:1 starting applications specified in /home/user/.vnc/xstartup Log file is /home/user/.vnc/linux.user:1.log |
이제 모든작업을 완료하였다.
그럼 이제 클라이언트에서 접근해보자.
출처 : http://ggwangs.egloos.com/870506
[리눅스&아파치] 사용자별 대역폭 제한 및 전송량 제한 방법
각 사용자 별로 트래픽을 관리한다는것은 FTP 웹서비스 다 포함하는걸 원하시는건가요?
각 사용자의 모든 서비스 트래픽을 제어하는것은 저도 모르겠습니다.
다만 요즘 트래픽 제한 이라고 하면 거의 대부분이 웹서비스(아파치에서...)를 제어하는
것을 말하기에 대략 설명드리겠습니다.
웹호스팅 사이트를 돌아다니다보면
' 일일트래픽 500M , 혹은 일일 히트수 1000 히트 제한 '
이런 글을 볼 수 있습니다.
트래픽을 제어하는 방법은 mod_bandwidth 와 mod_throttle 두가지가 주로 많이 쓰이는데
mod_bandwidth 는 대역폭을 관리 하는 모듈이며
mod_throttle 은 트래픽을 제어하는 모듈입니다 ( 그게 그 소리 같은가 ? ㅡㅡ;; 하지만 두개의
역할은 분명히 다릅니다 )
예를들어 1M 짜리 파일을 받는다고 하면
mod_bandwidth 모듈을 이용하면 초당 얼마의 속도까지 전송이 가능한지를 관리 하고
mod_throttle 모듈은 1M 파일을 몇번까지 다운받을 수 있느냐를 관리 하게 되겠죠.
mod_bandwidth 모듈은 1M 파일을 다운 받는 속도를 apache 서버 관리자가 마음대로
조절할 수 있으나 다운 받는 횟수, 다시말해 총 다운로드 양은 조절이 안되고
mod_throttle 모듈은 1M 파일을 다운받는 속도를 조절할 수 없으나
다운받는 총 횟수, 즉 총 다운로드 양을 조절할 수 있다는 말입니다.
두개를 함께 쓰면 트래픽, 대역폭 관리에 유용하겠죠.
이번 강좌에서는 mod_throttle 모듈만 설명 하겠습니다.
아파치가 설치된 디렉토리는 /usr/local/apache 라고 가정하고 설명 합니다.
우선 mod_throtte.c 파일을 다운받아 아파치 경로의 특정 디렉토리로 가져다 놓습니다.
이걸 구할 수 있는곳은
http://www.snert.com/Software/mod_throttle/index.shtml
위 웹사이트입니다.
mod_throttle312.tgz 파일을 다운 받을 수 있네요 ( 2003년 10월 25일 현재 )
다운받아 압축을 풀면 여러개의 파일이 나오는데 그 중에서
mod_throttle.c 파일을 /usr/local/apache/src/module/extra 에 가져다 놓습니다.
그리고 아파치를 컴파일을 다시 하는데
아래와 같은 컴파일 옵션을 줘야 합니다.
[root@myserver /]# cd /usr/local/apache
[root@myserver apache]# ./configure --prefix=/usr/local/apache --activate-module=src/modules/php4/libphp4.a --add-module=src/modules/extra/mod_throttle.c
( 여기서 \ 표시는 줄이 바뀌며 라인이 지저분해 지는것을 방지 하기 위해
줄을 넘기면서 명령어를 계속해서 입력하기 위해 사용한 표시입니다 )
기존의 php 연동 옵션 (activate... ) 아래에 모듈을 함께 컴파일 하는것으로 옵션을 주었습니다.
이제 make 그리고 make install 로 컴파일을 합니다. ( 이 부분은 아래글 apache ,PHP 설치하기를
참조하시길 바랍니다 )
컴파일이 완료 되었으면 모듈이 제대로 추가 되었는지 확인해 봅니다.
[root@myserver apache]# /usr/local/apache/bin/httpd -l
Compiled-in modules:
http_core.c
mod_env.c
mod_log_config.c
mod_mime.c
mod_negotiation.c
mod_status.c
mod_include.c
mod_autoindex.c
mod_dir.c
mod_cgi.c
mod_asis.c
mod_imap.c
mod_actions.c
mod_userdir.c
mod_alias.c
mod_access.c
mod_auth.c
mod_setenvif.c
mod_php4.c
mod_throttle.c
suexec: disabled; invalid wrapper /usr/local/apache/bin/suexec
맨 아래쪽에 mod_throttle.c 라는 모듈이 보입니다.
제대로 컴파일이 된 상태입니다.
이제 모듈을 사용해 보겠습니다.
httpd.conf 파일을 열어서
( 꼭 거기에다 편집할 필요는 없지만 .. 같은 내용은 몰아 넣는것이 관리하기 좋겠죠 )
아래의 내용을 입력합니다.
ThrottlePolicy none
SetHandler throttle-status
Deny from all // 다른접근을 모두 거부하고
Allow from 123.123.123.123 // 특정 아이피에서만 throttle-status 를 확인 하도록
SetHandler throttle-me
Order deny,allow
Deny from all
Allow from all
SetHandler throttle-me
throttle-status 를 확인할 수 있는 아이피를 정해 놓은 부분(Allow from.. )을 주의 하시길 바랍니다.
아무나 서버 상태를 확인하게 하면 좇치 않겠지요 ? ㅋㅋ
위 설정은 123.123.123.123 에서만 서버 전체의 트래픽 상황을 모니터링 하도록 설정한 것입니다.
virtualhost 에서의 설정은 아래와 같습니다.
ServerAdmin dream@praise.co.kr
DocumentRoot /home/dream/public_html
ServerName myserver.co.kr
ServerAlias www.myserver.co.kr
Throttle Policy Volume 1024M 1d // 1일 1G 제한
ThrottlePolicy Request 1000 1d // 하루 히트수 1000회 제한
ErrorLog /var/log/httpd/error_log
CustomLog /var/log/httpd/access_log common
위의 내용대로
서버에서 운영되는 도메인에 대해 throttlepolicy 를 설정한 뒤
아파치를 재시작 하고
http://서버IP/throttle-status 를 확인 하면
서버에 설정된 대역폭의 모든 내용을 확인 할 수 있으며
서버에 설정된 특정 도메인의 트래픽을 확인 하려면
http://domain/throttle-me 를 확인 하면 됩니다.
-----------------------------------------------------------------------
자료출처 : 진우네집 ( http://www.praise.co.kr )
-----------------------------------------------------------------------
2009년 7월 9일 목요일
[자바스크립트] 현재 화면 인쇄, 새창 띄우고 새창 인쇄
경우 1. 새창을 띄우고 현재 창을 인쇄하는 방법
<a href="#" onClick="window.open('새창으로 열릴 주소'); window.print()">누르세요</a>
경우 2. 새창을 띄우고 새창을 인쇄하는 방법
새창이 아닌 현재창에 들어갈 소스: <a href="#" onClick="window.open('새창으로 열릴 주소')">누르세요</a>
새창에 들어갈 소소: <body onLoad="window.print()">
2009년 7월 7일 화요일
[리눅스] APACHE2 가상 호스트 설정하기
<VirtualHost *>
DocumentRoot /home/devstar/html/blog
ServerName lucael.devstar.co.kr
ServerAlias lucael.devstar.co.kr
ErrorLog /home/lucael/web_log/error_log //에러에 대한 로그 기록
CustomLog /home/lucael/web_log/access_log common //접근자에 대한 기록
</VirtualHost>
이런 식으로 삽입해주면 된다