# httpd 소스 설치 tar xvfpz httpd-2.0.63.tar.zcd httpd-2.0.63 # apache + 64bit problemrm -f configurerm -f srclib/apr-util/configure./buildconf ./configure --prefix=/opt/webapps/apache2 --enable-so --enable-ssl --with-ssl=/usr --enable-lib64 --libdir=/usr/lib64 --enable-cache --enable-deflate --enable-proxy --enable-mem-cache --enable-expires --enable-rewrite --enable-mods-shared=mod_rewrite --enable-security --with-module=proxy:mod_security.c makemake install mkdir /var/log/httpdchmod 711 /opt/webappschmod 755 /opt/webapps/apache2chmod 644 /opt/webapps/apache2/conf/*chmod 600 /opt/
mysql replication 동기화 늦어지는 문제 skip-networking 옵션값을 off시켜야 한다. # etc/my.cnf 파일에서 아래처럼 주석처리 하면 된다. #skip-networking
# SQL처리 시 Temporary Table이 디스크에 사용되지 않도록 해야한다.# Temporary Table 현황 모니터링# Created_tmp_files 이 많다면 tmp_table_size를 늘려주기mysqladmin -uroot -p extended-status -r -i 1 | grep -E 'Created_tmp|--' 일부 쿼리는 Temporary Table을 메모리에 사용하지 않고 디스크를 바로 사용하는 경우가 있다.쿼리 자체를 수정하여 디스크를 사용하지 않도록 해야겠다. 임시 꼼수로.통계성 쿼리 질의 전에 세션 변수 설정(2G로 할당)을 한 후 해본다. 디스크 사용을 줄이기 위한 목적이지만 쿼리 자체를 수정하는게 더 좋은 방법임.set session tmp_table_size = 2 * 1024 * 1024 * 1024;set session max_heap_table_size = 2 * 1024 * 1024 * 1024;
http://cafe.naver.com/q69/7850 php로 mail함수를 이용하여 메일을 보낼때 10만건 이상의 메일을 루프문을 이용해 보내게 되면 메일을 처리할 수 있는 Queue의 용량을 초과하게된다 --------------------------------------------------------------- $result = mysql_query("select name, email from user", $db) while($row = mysql_fetch_row($result)) { . . . mail(.....) } --------------------------------------------------------------- 위와 같은 구조로 메일을 보내게 되면 일정량 이상의 메일을 발송할 때에 Sendmail 데몬에서 처리할 수 있는 메일 큐의 한도가 초과되어서 죽어버립니다. 이럴 때 Sendmail의 설정을 변경해서 처리할 수 있는 메일수를 늘린다던지....Script를 따로 만들어 mail queue를 생성해서 전송한다던지 하는 방법도 있겠지만... 이럴때 간단히 if문을 하나 추가하는것으로 20만건정도의 메일을 하루정도의 시간으로
온라인 거래처리(OLTP ; OnLine Transaction Processing) 여러과정(또는 연산)이 하나의 단위 프로세스로 실행되도록 하는 프로세스 ex) 과정 1 : 철수의 계좌에서 50,000원을 감소시킨다 과정 2 : 현금을 인출해 준다. 과정 3 : 명세표를 출력해준다 이와같은 과정은 하나의 단위로 이루어져야 함 트랜잭션 : 데이터베이스 일관성을 보존하는 프로그램 실행단위 트랜잭션의 속성 원자성 : 하나의 트랜잭션을 구성하는 단위작업들은 모두 수행되든지 아니면 모두 수행되지 않아야 함 일관성 : 하나의 트랜잭션이 수행되었을 때, 그 트랜잭션은 데이터베이스 일관성을 보전해 주어야 함 고립성 : DBMS가 여러 트랜잭션을 동시에 수행시키는 경우에도 트랜잭션들은 서로 상호 간섭을 받지 않아야 함 지속성 : 트랜잭션이 정상적으로 완료되었다면 설사 해당 변경 내용이 디스크상에 반영되기 전에 시스템 장애가 일어나더라도 트랜잭션의 완료 효과는 계속적으로 유지 되어야 함 트랜잭션 명령문 BEGIN TRAN[SACTION] [<트랜잭션 이름>] : 트랜잭션 시작 명시COMMIT TRAN[SACTION] [<트랜잭션 이름>] :
etc/hosts 파일은 localhost의 리졸버들이 사용하는파일이다 'localhost의 리졸버'의 의미는 localhost의telnet, mozilla, ftp, stmp, ... 등등 localhost가 원격의 어떤호스트에 접속하기 위해서 '호스트->IP'로 변환해 주는 테이블입니다.원격의 호스트가 사용하지 않고 localhost의 모든 리졸버가 사용하고실시간으로 변경된 /etc/hosts 파일을 확인해서 사용합니다. dns서버의 질문하여 목적지를 찾기전에 /etc/host 파일에 목적지 도메인주소의 ip주소를 입력해놓으면먼저 hosts파일의 내용을 참조한다. [root@web etc]# cat hosts# Do not remove the following line, or various programs# that require network functionality will fail.127.0.0.1 web localhost.localdomain localhost::1 localhost6.localdomain6 localhost6[root@web etc]# ll hosts-rw-r--r-- 1 root root 191 No
top 명령어 프로세스의 상태를 실시간 모니터링 할수있다.top [옵션]-d 시간 : 화면 갱신 주기-c : 생략된 명령어 전체 표시 top실행중 명령어q : top프로그램 종료숫자 1 : cpu(s)로 표시되어 평균값만 출력하는데 1을 눌러 각각의 cpu 사용량을 볼수 있다.스페이스바 : 프로세스 상태 갱신 예top - 14:32:44 up 217 days, 12:45, 1 user, load average: 0.00, 0.02, 0.00Tasks: 140 total, 1 running, 139 sleeping, 0 stopped, 0 zombieCpu(s): 0.5%us, 0.0%sy, 0.0%ni, 99.5%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%stMem: 8126608k total, 5693960k used, 2432648k free, 468156k buffersSwap: 4192924k total, 1632k used, 4191292k free, 3898592k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 15 0
cp 명령어 옵션 -a : 가능한 한 원 파일의 구조와 속성을 그대로 복사한다. -S : 복사할 때 덮어쓰게 되는 파일은 백업을 만들면서 확장자 지정 (-S=확장자) -d : 심볼릭 링크는 심볼릭 링크로 복사한다. 그리고 원본 파일과의 하드 링크 관계를 유지한다. -f : 복사 위치에 존재하는 파일을 제거하고 복사한다. -i : 복사 시 같은 이름의 파일이 존재한다면 덮어쓸 것인가 확인한다. -P : 원본 파일의 소유자, 그룹, 권한, 시간 기록을 그대로 복사한다. -R , -r : 파일과 하위 디렉토리에 포함된 파일 모두를 복사한다. -u : 변경날짜를 비교해 최신파일일 경우 복사 안함
# LoadModule rewrite_module module/mod_rewrite.so 아파치를 DSO방식으로 설치했을때 모듈을 로드하는 지시자 # LockFile logs/accept.lock → USE_FCNTL_SERIALIZED_ACCEPT 또는 USE_FLOCK_SERIALIZED_ACCEPT를 사용하여 컴파일되었을 때 사용되는 잠금 파일로의 경로. 잠금 파일의 값은 반드시 로컬 디스크에 저장되어야 함. 잠금파일 : 어떤 프로세스에서 사용중인 파일을 다른 프로세스가 함부로 변경하지 못하도록 함 httpd.lock : 웹서버가 떠 있다는 걸 알려s는 파일, 지금 웹서버 데몬이 돌고 있으니, 다른 웹서버 데몬은 돌지 말라. # PidFile logs/httpd.pid 아파치가 시작될 때 자신의 프로세스번호(PID)를 기록하는 파일 # User daemon // 리눅스 시스템에서 0~499까지 UID와 GID를 사용하므로 # Group daemon // 500번 이상의 UID와 GID를 가지는 계정으로 설정 서비스를 직접 담당하는 아파치자식프로세스들의 실행소유자와 소유그룹 (n
패스워드에 lock 걸어 잠그기 [root@push06 skel]# passwd -l kbs Locking password for user kbs. passwd: Success [root@push06 skel]# grep kbs /etc/shadow kbs:!!$1$aPkNiTws$ZV5bM4sc48RINJ0vK5U3f0:15947:0:99999:7::: [root@push06 skel]# passwd -u kbs Unlocking password for user kbs. passwd: Success.
arp 명령어는 Address Resolution Protocol의 약자로써, arp cache에 있는 IP 어드레스에 대한 HW 어드레스(대게 MAC 어드레스란 표현을 많이 사용한다)를 돌려주는 명령어이다. 이 HW 어드레스는 6 바이트로 구성되어지는데, 처음 3 바이트는 제조 벤더에 대한 교유 번호이고, 나머지 3개는 제품 일련 번호라고 한다. 결국 이 6개의 바이트는 전세계에서 유일무이한 번호가 되는데, 논리적인 IP어드레를 물리적이고 고유한 컴퓨터에 맵핑시키기 위해서는 아주 중요한 존재이다. 명령어 형식 : arp [OPTION] 옵션 -e : arp 캐쉬에 있는 HW어드레스를 리눅스 스타일로 표히 -s host HW어드레스 : arp 캐쉬에 새로운 HW어드레스를 저장 -d : arp 캐쉬에 HW어드레스를 삭제 실행 예 [root@linux root]# arp -e Address HWtype HWaddress Flags Mask Iface 192.168.10.1 ether 00:0E:E8:04:45:77 C eth0 192.168.10.21 ether 00:E0:91:04
## ethtool을 이용한 랜카드 속도설정 및 전송모드 설정하기 # 랜카드 설정상태 확인하기 ethtool eth0 # 이더넷 설정내역 -Supported link modes : 지원가능한 링크모드(속도와 전송모드) -Supports auto-negotiation : 자동협상인식기능 지원여부. 지원하고 있느냐의 여부는 아래에 있는 Auto-negotiation의 값으로 결정된다. -Speed : 현재 이 이더넷의 설정속도 -Duplex : 현재 이 이더넷의 전송모드(half는 반이중모드) -Auto-negotiation : 자동협상인식 기능을 지원하고 있을때에 실제로 자동협상에 의해 이더넷 설정을 할 것인가를 결정하는 것 # 변경하기 ethtool -s eth0 [speed 10|100|1000] [duplex half|full] [autoneg on|off] ethtool -s eth0 speed 10 duplex full autoneg on 리눅스서버에 있는 모든 이더넷을 이와 같은 방법으로 재설정이 가능하다