2012년 3월 29일 목요일

CentOS 시간 세팅

아마존 EC2 서버를 이용하는데 시간이 UTC로 표기됨.

$ date

Fri Jan 3 08:05:03 UTC 2013


$ echo $TZ
$ export env TZ=KST-09:00:00

KST는 date 명령어의 문자열에 불과하며 실제로 영향을 주는 내용은 -09:00:00.

+, -는 그리니치 천문대를 중심으로 서쪽은
+, 동쪽은 - 이고, 우리나라는 동쪽에 있으며 9시간이 빠르므로 -09:00:00


/etc/rc.d/rc.local 에 아래 내용 추가하게 되면 부팅시 마다 시간을 맞춰준다.


export env TZ=KST-09:00:00 

rdate -s time.bora.net
clock -w

2012년 3월 28일 수요일

crontab 사용


$ crontab -l  => crontab에 등록된 작업 목록
$ crontab -e => crontab에 작업 등록하기
* 작업 등록시 설명
------  -------- ---------------------------------------------------
필 드  의 미  범 위
------  -------- ---------------------------------------------------
첫번째  분    0-59
두번째  시    0-23
세번째  일    0-31
네번째  월    1-12
다섯번째 요일   0-7 (0 또는 7=일요일, 1=월, 2=화,...)
여섯번째 명령어  실행할 명령을 한줄로 쓴다.
------  -------- ---------------------------------------------------

Ex)
매시간 30분 마다 동작
30 * * * * 명령어

2012년 3월 26일 월요일

proftpd-1.3.4a 설치



# wget ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.4a.tar.gz

# cd /usr/src
# tar -zxcf proftpd-1.3.4a.tar.gz
# ./configure
# make
# make install
# proftpd -v
# cp sample-configurations/basic.conf /etc/proftpd.conf





서버에서 데몬이 자동으로 시작하도록 하기위해서는
#chkconfig --list
명령으로 확인.

서비스를 등록하기위해서 시작스크립트를 생성.
소스의 contrib/dist/rpm 디렉토리에 proftpd.init.d 파일을 다음과 같이 데몬 파일의 위치를 수정.

PATH="$PATH:/usr/local/proftpd/sbin"
수정이 완료되면 /etc/rc.d/init.d/ 디렉토리로 복사한다.
#cp proftpd.init.d /etc/rc.d/init.d/proftpd
#chmod 755 /etc/rc.d/init.d/proftpd
서비스 등록을 한다.
#chkconfig --add proftpd

런레벨 종류에 따라 서비스가 자동으로 실행하도록
3번 Full multiuser mode, 5번 X11을 on으로 설정한다.

#chkconfig  --level 35 proftpd on

3번은 텍스트 모드이고 5번은 GUI 런레벨이다.

실행
# /usr/local/proftpd/sbin/proftpd



conf 파일 수정하기 
# vi /usr/local/proftpd/etc/proftpd.conf 

ServerType                      standalone 
#ServerType                    inetd 
DefaultServer                    on 
ServerAdmin                    root@localhost 

//아래의 내용을 주석 해제하면 모든 사용자는 자기 홈디렉토리 이상으로는 이동할 수 없다.
DefaultRoot                    ~ 


/etc/rc.d/init.d/proftpd restart


2012년 3월 25일 일요일

mod_wsgi-3.3 설치 및 테스트

새로 설치한 python경로로 이동하여 공용 라이브러리를 심볼릭 링크
# cd /usr/local/python2.7/lib/python2.7/config
# ln -s ../../libpython2.7.so


# cd /usr/local/src/mod_wsgi-3.3
# ./configure --with-apxs=/usr/local/httpd/bin/apxs --with-python=/usr/local/python2.7/bin/python

# make && make install



apache httpd.conf 추가
# vi /usr/local/httpd/conf/httpd.conf


LoadModule wsgi_module modules/mod_wsgi.so
AddHandler wsgi-script .wsgi



WSGIScriptAlias /myapp /usr/local/httpd/htdocs/wsgi/test.wsgi
<Directory /usr/local/httpd/htdocs/wsgi>
Order allow,deny
Allow from all
</Directory>



apache 2.4.1 데몬 실행 실패


apache설치 후 데몬이 실행되지 않는 문제 발생. 

httpd.conf 구문 오류 체크가 정상인데 데몬이 실행되지 않음

아파치 로그를 확인 결과 proxy_balancer 모듈을 로드하지 못해 발생.

구체적인 원인 확인 필요.

# cat /usr/local/apache/logs/error_log

[Mon Mar 26 18:49:20.789764 2012] [proxy_balancer:emerg] [pid 2410:tid 139782170601216] AH01177: Failed to lookup provider 'shm' for 'slotmem': is mod_slotmem_shm loaded??
[Mon Mar 26 18:49:20.789924 2012] [:emerg] [pid 2410:tid 139782170601216] AH00020: Configuration Failed, exiting

2012년 3월 16일 금요일

PHP 64-bit Standard Configuration


./configure \
--enable-bcmath \
--enable-calendar \
--enable-dbase \
--enable-exif \
--enable-fastcgi \
--enable-force-cgi-redirect \
--enable-ftp \
--enable-gd-native-ttf \
--enable-libxml \
--enable-magic-quotes \
--enable-mbstring \
--enable-pdo=shared \
--enable-safe-mode \
--enable-soap \
--enable-sockets \
--enable-wddx \
--enable-zend-multibyte \
--enable-zip \
--prefix=/usr/local/apache/php \
--with-bz2 \
--with-curl=/opt/curlssl/ \
--with-curlwrappers \
--with-freetype-dir=/usr \
--with-gd \
--with-gettext \
--with-imap=/opt/php_with_imap_client/ \
--with-imap-ssl=/usr \
--with-jpeg-dir \
--with-kerberos \
--with-libdir=lib64 \
--with-libexpat-dir=/usr \
--with-libxml-dir=/opt/xml2 \
--with-libxml-dir=/opt/xml2/ \
--with-mcrypt=/opt/libmcrypt/ \
--with-mhash=/opt/mhash/ \
--with-mime-magic \
--with-ming=/opt/ming/ \
--with-mm=/opt/mm/ \
--with-mysql=/usr \
--with-mysql-sock=/var/lib/mysql/mysql.sock \
--with-mysqli=/usr/bin/mysql_config \
--with-openssl=/usr \
--with-openssl-dir=/usr \
--with-pdo-mysql=shared \
--with-pdo-sqlite=shared \
--with-pic \
--with-png-dir=/usr \
--with-pspell \
--with-sqlite=shared \
--with-tidy=/usr \
--with-ttf \
--with-xmlrpc \
--with-xpm-dir=/usr \
--with-xsl=/opt/xslt/ \
--with-zlib \
--with-zlib-dir=/usr

2012년 3월 14일 수요일

apple push 인증서 생성

개발용 인증서
$ openssl pkcs12 -clcerts -nokeys -out apns-dev-cert.pem -in apns-dev-cert.p12

$ openssl pkcs12 -nocerts -out apns-dev-key.pem -in apns-dev-key.p12

$ openssl rsa -in apns-dev-key.pem -out apns-dev-key-noenc.pem

$ cat apns-dev-cert.pem apns-dev-key-noenc.pem > apns-dev.pem

배포용 인증서
$ openssl pkcs12 -clcerts -nokeys -out apns-cert.pem -in apns-cert.p12

$ openssl pkcs12 -nocerts -out apns-key.pem -in apns-key.p12

$ openssl rsa -in apns-key.pem -out apns-key-noenc.pem

$ cat apns-cert.pem apns-key-noenc.pem > apns.pem


인증서가 제대로 만들어졌는지 확인
$ openssl s_client -ssl3 -connect gateway.sandbox.push.apple.com:2195 -cert apns-dev.pem

Vim 단축키

출처 : http://blog.outsider.ne.kr/540


h, j, k, l - 좌,하,상,우 커서이동

i - 현재 커서 위치에 Insert 하기
I - 현재 줄 맨앞에 Insert 하기
a - 현재 커서 다음칸에 Insert 하기
A - 현재 줄 맨뒤에 Insert 하기
o - 윗줄에 Insert 하기
O - 아랫줄에 Insert 하기

w - 단어 첫글자로 이동하기
W - 화이트스페이스 단위로 다음 글자로 이동하기
b - 백워드 방향으로 단어의 첫글자로 이동하기
B- 백워드 방향으로 화이트스페이스 단위로 다음 글자로 이동하기
e - 단어의 마지막 글자로 이동하기
ge - 백워드 방향으로 단어의 마지막 글자로 이동하기
gg - 문서 맨 앞으로 이동
G - 문서 맨끝으로 이동
^ - 문장 맨 앞으로 이동
0 - 라인 맨 앞으로 이동
$ - 문장 맨 뒤로 이동
f문자 - 문자의 위치로 이동 ; 를 누르면 계속 이동
F문자 - 백워드로 문자의 위치로 이동
t문자 - 문자의 앞위치로 이동 
T문자 - 백워드방향으로 문자의 앞위치로 이동

/단어 - 문서에서 단어 찾기 n이나 N으로 다음/이전 찾기
* - 현재 단어를 포워드 방향으로 찾기
# - 현재 단어를 백워드 방향으로 찾기

Ctrl + f - 다음 페이지 이동
Ctrl + b - 이전 페이지 이동
Ctrl + u - 페이지절반만큼 다음으로 이동
Ctrl + d - 페이지절반만큼 이전으로 이동
H - 현재 화면의 맨 위라인으로 이동
M - 현재 화면의 중간 라인으로 이동
L - 현재 화면의 마지막 라인으로 이동

]] - 포워드 방향으로 여는 컬리 블레이스( { )로 이동
[[ - 백워드 방향으로 여는 컬리 블레이스( { )로 이동
][ - 포워드 방향으로 닫는 컬리 블레이스( { )로 이동
[] - 백워드 방향으로 닫는 컬리 블레이스( { )로 이동
% - {}나 ()에서 현재 괄호의 짝으로 이동

dd - 현재 줄 잘라내기
dw - 단어 잘라내기
yy - 현재 줄 복사하기
p - 붙혀넣기
r - 현재 글자 교체하기
u - Undo
Ctrl + R : Redo
x - 현재 글자 지우기
X - 앞의 글자 지우기
> - 들여쓰기
< - 내어쓰기
. - 이전 명령어를 다시 실행

v - 비쥬얼모드(비쥬얼 모드에서 커서 이동해서 블럭지정 가능)
y - 복사하기
c - 잘라내기
cw - 단어 잘라내기
J - 다음 라인을 현재 줄의 끝으로 이어 붙힘
~ : 선택 문자 대소문자 변경
Ctrl + A : 숫자를 증가시키기
Ctrl + X : 숫자를 감소시키기

:w - 문서 저장하기
:q - 현재 문서 닫기
:q! - 저장하지 않고 닫기
:wq - 저장하고 닫기
:숫자 - 지정한 라인넘버로 이동

:new - 가로로 분할된 창 열기
:vs - 세로로 분할된 창 열기
Ctrl + w - 분할창 간에 이동하기
:tabnew - 새로운 탭 열기
:gt - 다음 탭으로 이동하기
:gT - 이전 탭으로 이동하기
:e ./ - 현재 탭에 오픈할 파일 탐색하기( ./ 는 현재위치에서 탐색 시작)
:colorscheme 스키마명 - VIM의 칼라스키마를 변경함(blue, desert, evening 등.. 스키마명에서 탭누르면 자동완성됨)

zc - 코드 접기(fold)
zo - 접힌 코드 펼치기
zd - fold 지우기
zR - 접힌 코드 모두 펼치기
zM - 코드 모두 접기
zD - 모든 fold 지우기

:buffers - 현재 Vim에서 여러 파일을 열었을때 버퍼에 있는 목록 확인
:buffer 숫자 - 버퍼 목록에 나온 숫자를 입력하면 해당 파일을 오픈함 ( :buffer 대신 :b 도 가능)
:bnext - 버퍼에 있는 다음 파일로 이동 ( :bn 도 가능)
:bprevious - 버퍼에 있는 이전 파일로 이동 ( :bp 도 가능)
:ball - 버퍼 목록에 있는 파일들이 가로로 분할된 창에 열림

 Vim Documentation 

2012년 3월 13일 화요일

[펌] apache-2.4.1 설치

출처 : http://sir.co.kr/bbs/board.php?bo_table=pg_linux&wr_id=172

눈에 띄는 부분이 MPM 이 기존엔 prefork,worker 방식을 지원 했다면 이번 2.4.1 버전에서는 정식으로beos, leader, mpmt_os2, perchild, prefork, threadpool, worker 등의 이벤트 동작방식을 지원 하네요.


그리고 apr, apr-util을 한번만 컴파일 해놓으면 아파치 버전업 할때 다시 컴파일을 하지 않아도 되는군요.물론 아파치 재컴파일시 apr, apr-util의 prefix 위치를 지정 해 주어야 합니다...^^;;


아직 성능적으로는 테스트 중이라 뭐라 말씀 드릴수없으나 아파치구동시 httpd-vhosts.conf, httpd-default.conf, 등이 httpd.conf 파일내에 위치한 LoadModule 과 연동이 되어야 정상적으로 start 가 됩니다. 그리고 httpd-vhosts.conf 에서는 NameVirtualHost *:80 가 없어 졌네요....^^
우선 필요한 라이브러리를 먼저 설치 해주신후에 아래 설치 방법을 진행 해 주세요....^^
필요한 소스와 라이브러리 설치는 이전에 리포팅한 게시물을 참조 하시면 되겠습니다.


@ 아파치 설치전 apr 설치
# cd /usr/local/src
# wget http://archive.apache.org/dist/apr/apr-1.4.6.tar.gz
# wget http://archive.apache.org/dist/apr/apr-util-1.4.1.tar.gz
# tar zxvf apr-1.4.6.tar.gz
# cd /usr/local/src/apr-1.4.6
# ./configure --prefix=/usr/local/apr
# make;make install
# cd /usr/local/src
# tar zxvf apr-util-1.4.1.tar.gz
# cd /usr/local/src/apr-util-1.4.1
# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
# make;make install

@ 아파치 설치 2.4.1
# cd /usr/local/src
# wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.30.tar.gz
# tar zxvf pcre-8.30.tar.gz
# cd pcre-8.30
# make clean;./configure --prefix=/usr/local;make -j4;make instal
# cd /usr/local/src
# wget http://apache.ziply.com//httpd/httpd-2.4.1.tar.gz
# wget http://linux-files.com/httpd/httpd-2.4.1.tar.gz
# tar zxvf httpd-2.4.1.tar.gz
# cd httpd-2.4.1
# make clean
# vi server/mpm/prefork/prefork.c
@ #define DEFAULT_SERVER_LIMIT 256 ##ulimit -a max user processes 값을 넘지 않도록 256의 배수만큼 주정해준다. Ex) 32768
# ./configure --prefix=/usr/local/apache --enable-rule=SHARED_CORE --enable-so --enable-rewrite --enable-vhost-alias --enable-ssl --enable-proxy --enable-shared=max --enable-modules=shared --enable-mods-shared=all --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util
# make; make install
# cp /usr/local/apache/bin/apachectl /etc/init.d/httpd
@ chkconfig를 이용해서 자동실행 등록해야 하지만 이전에 실행 스크립트 파일에 아래 내용 추가가 선행되어야 한다.
# vi /etc/init.d/httpd
-httpd 파일
#chkconfig: 2345 90 90
#description: init file for Apache server daemon
#processname: /usr/local/apache/bin/apachectl
#config: /usr/local/apache/conf/httpd.conf
#pidfile: /usr/local/apache/logs/httpd.pid
이를 추가한다.
# chkconfig --add httpd
# chkconfig --list | grep httpd


@ 아파치 설정

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

LoadModule vhost_alias_module modules/mod_vhost_alias.so <-- 주석제거
LoadModule userdir_module modules/mod_userdir.so <-- 주석제거
LoadModule slotmem_shm_module modules/mod_slotmem_shm.so <-- 주석제거

@ 접속이 안될경우 80포트 열어 주어야 한다.

#vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT =>추가
# /etc/init.d/iptables restart 또는 service iptables restart

2012년 3월 9일 금요일

리눅스 파티션 나누기

 36GB정도의 하드디스크 기준.

[네임서버로 사용할 경우] 
/ 1000MB 
/boot 150MB 
/usr 5500MB 
/tmp 500MB 
swap 200~500MB 
/usr/local 1000MB 
/home 1000MB 
/var 나머지 모두 할당 


[웹서버로 사용할 경우] 
/ 1000MB 
/boot 150MB 
/usr 5500MB 
/tmp 500MB 
swap 200~500MB 
/usr/local 1000MB 
/var 5000MB 
/home 나머지 모두 할당 

[메일서버로 사용할 경우] 
/ 1000MB 
/boot 150MB 
/usr 5500MB 
/tmp 500MB 
swap 200~500MB 
/usr/local 1000MB 
/home 1000MB 
/var 나머지 모두 할당 

[DB서버로 사용할 경우] 
/ 1000MB 
/boot 150MB 
/usr 5500MB 
/tmp 500MB 
swap 200~500MB 
/usr/local 1000MB 
/home 1000MB 
/var 3000MB 
/var/lib 나머지 모두 할당