카테고리 보관물: LINUX

minikube 부팅 시 자동 시작

OS : Ubuntu 20.04

/usr/lib/systemd/system/minikube.service

[Unit]
Description=minikube

[Service]
Type=oneshot
RemainAfterExit=yes
WorkingDirectory=/root
ExecStart=/usr/bin/minikube start –embed-certs –driver=none
ExecStop=/usr/bin/minikube stop

[Install]
WantedBy=multi-user.target

systemctl start minikube.service

systemctl status minikube.service

#부팅시 활성화

systemctl enable minikube.service

출처 : https://serverfault.com/questions/1035376/how-to-run-minikube-start-as-a-linux-service-on-startup

VMRC 콘솔의 연결이 끊어졌습니다. (VMRC console has disconnected)

vSphere 사용 중 vSphere Client를 사용하여 콘솔 연결 하려고 할때

VMRC 콘솔의 연결이 끊어졌습니다. 다시 연결하려고 시도 중입니다.

라는 메세지가 발생하며 콘솔 연결에 실패하였습니다.

 

[ 서버 환경 ]

Server : VMware ESXi 5.0.0, build-469512
Client : VMware ESXi Client 5.0.0, build-130600

 

[ 문제 해결 ]

문제를 해결하기 위해 구글 검색 시작..

구글에서 찾은 걸로는 아래 두 가지 해결 방법을 찾았습니다만,

제 경우엔 아래의 방법으로 문제를 해결할 수 없었습니다.

1. VMWare ESXi Client 최신 버전 업데이트
최신 버전으로 올려보았으나, 아무리 올려도 Disconnet 가 발생함

2. Disconnect 발생시, 작업 관리자에서 vmware-vmrc.exe 프로세스를 강제 종료 후 재접속
> 마찬가지로 아무리 시도 해봐도 안됨.


구글 검색으로 알려진 방법으로는 문제 해결이 어렵다 판단하여,

VMWare ESXi Client 를 통하지 않고, 콘솔 접근 하는 방법을 찾았습니다.


vmware-vmrc.exe 를 통해 VM Guest 콘솔로 접근하기

VMRC를 통해서 콘솔에 접근하기 위해서는 VMID를 알아야 합니다
VMID는 VM HOST 서버에 SSH로 접근하여 아래 명령어로 쉽게 알 수 있습니다.

# vim-cmd vmsvc/getallvms여기서 접속하고 싶은 VM GUEST의 vmid 번호를 기억해 둡니다.

자신의 컴퓨터의 아래 경로로 이동하여,

C:\Program Files (x86)\Common Files\VMware\VMware VMRC Plug-in\Internet Explorer

아래 명령어를 사용하면 VMWARE Client가 없어도 콘솔로 접근이 가능합니다.
vmware-vmrc.exe -h VMGUEST IP주소 -M vmid
근본적인 문제 해결은 못하였지만,

어쨋든 콘솔로 접근은 할 수 있었습니다.

nginx UDP PROXY PASS 설정

1.  현재 사용하고 있는 nginx 버전 확인

-> nginx-1.13버전 이상 사용.

-> 그 이하 버전은 udp 옵션을 지원하지 않는 것 같음.. (언제 업데이트 된거지..)

 

2. nginx.conf 설정은 아래와 같이 설정.

stream {
server {
listen 5555 udp;
proxy_udp;
}
upstream proxy_udp {
server 192.168.0.10:5555;
}
}

3. 재구동 확인.

리눅스 디스크 공간이 실제 사용량과 맞지 않음.

리눅스에서 디스크 공간이 부족하여 공간을 정리하였으나, df나 du로 확인시 서로간에 용량이 틀린점을 볼 수 있습니다.

이럴 경우 누군가가 해당 파일을 잡고 있을 때, 이러한 현상이 발생합니다.

lsof 명령으로 해당 프로세스를 확인할 수 있습니다.

lsof /home

> lsof 명령으로 이미 제거된 파일을 잡고 있는 프로세스의 PID를 확인합니다.


ps -aux | grep PID값

> 누가 쓰고 있나 한번 더 확인하고,


kill -9 PID값

> KILL 명령으로 해당 프로세스를 날리면 용량이 바로 확보됩니다.


# 리부팅이 가능한 상태라면, 리부팅만으로도 해결 가능합니다.

CentOS YUM install ERROR

CentOS를 설치하고 YUM UPDATE를 하려고 했는데 아래와 같은 메세지가 발생하며 YUM UPDATE가 진행되지 않았음.

1

이리저리 구글에도 검색해봤는데 딱히 답이 없어보임..

버전을 7.X, 6.X 바꿔가며 테스트해봤는데 동일한 증상.

뭔가 네트워크 설정 문제인것같은데….

암튼.. 여기에 많은 시간을 쏟을 수 없어 REPO를 DAUM으로 변경 후 진행하니 정상적으로 사용가능.

REPO 변경은 기존에 REPO 설정 백업 후 아래와 같이 함.

echo '[base]
name=CentOS-$releasever - Base
baseurl=http://ftp.daum.net/centos/$releasever/os/$basearch/
gpgcheck=0 
[updates]
name=CentOS-$releasever - Updates
baseurl=http://ftp.daum.net/centos/$releasever/updates/$basearch/
gpgcheck=0
[extras]
name=CentOS-$releasever - Extras
baseurl=http://ftp.daum.net/centos/$releasever/extras/$basearch/
gpgcheck=0' > /etc/yum.repos.d/Daum.repo

출처 : http://zetawiki.com/wiki/Yum_Daum_%EC%A0%80%EC%9E%A5%EC%86%8C_%EC%84%A4%EC%A0%95

스팸 댓글 남기는 IP차단

요근래, 스팸 댓글이 많이 달리고, 쓸데없는 트래픽이 증가되고 있어, 스팸댓글을 다는 IP를 차단했습니다.

195.154.188.41
195.154.188.74
195.154.173.141
195.154.191.162
195.154.189.155
195.154.211.220
195.154.188.224
62.210.177.242
62.210.89.37

뭐하는 애들인지 모르겠네요…

일단 접근 자체를 아예 봉쇄 했습니다 ㅎㅎ

LINUX “open files” 사이즈 확인

 

시스템에서 설정할 수 있는 open file 크기는 서버 스펙마다 다릅니다.

내 시스템에서 지원하는 open file크기는 아래의 명령어로 확인 가능합니다.

아래 둘중 하나의 명령어를 사용

1.  cat /proc/sys/fs/file-max

2.  sysctl fs.file-max

 

 

Server Signature 변경 후에도 적용되지 않는 현상

ModSecurity 설치 후 Server Signature를 변경 후 적용 하였으나, 실제 확인해보면

적용이 제대로 안된 것으로 나오는 현상이 있음.

[증상]

# curl -i localhost
HTTP/1.1 403 Forbidden
Date: Mon, 19 May 2014 05:28:57 GMT
Server: Apache
Content-Length: 202
Connection: close
Content-Type: text/html; charset=iso-8859-1

<!DOCTYPE HTML PUBLIC “-//IETF//DTD HTML 2.0//EN”>
<html><head>
<title>403 Forbidden</title>
</head><body>
<h1>Forbidden</h1>
<p>You don’t have permission to access /
on this server.</p>
</body></html>

 

[해결방법]

apache httpd.conf에 ServerTokens를 Full로 변경 후 아파치 재시작 하면 적용 가능

 

/etc/httpd/httpd.conf

ServerTokens Full

 

설정 변경 후 아파치 재시작. 그리고 다시 테스트

# curl -i localhost
HTTP/1.1 403 Forbidden
Date: Tue, 20 May 2014 00:43:51 GMT
Server: Microsoft-IIS/5.0
Content-Length: 202
Connection: close
Content-Type: text/html; charset=iso-8859-1

<!DOCTYPE HTML PUBLIC “-//IETF//DTD HTML 2.0//EN”>
<html><head>
<title>403 Forbidden</title>
</head><body>
<h1>Forbidden</h1>
<p>You don’t have permission to access /
on this server.</p>
</body></html>

쉘스크립트 IF문 조건식

쉘스크립트에서 자주사용하지만 매번 헷갈리는 IF문 조건식입니다.

문자열체크

[ stringName ] – 문자열이 널(NULL)인지 체크, Null이 아니면 참
[ -n stringName ] – 문자열의 사이즈가 0 이상인지 체크, 0 이상이면 참
[ -z stringName ] – 문자열의 사이즈가 0 인지 체크, 0이면 참
[ stringNameA = stringNameB ] – A문자열과 B문자열이 같은지 체크, 같으면 참
[ stringNameA != stringNameB ] – A문자열과 B문자열이 다른지 체크, 다르면 참

 

숫자 대소 관계 체크

[ intA -ge 100 ] – 숫자 A가 100보다 크거나 같은지 체크, 100 이상이면 참
[ intA -gt 100 ] – 숫자 A가 100보다 큰지 체크, 100이 넘으면 참
[ intA -le 100 ] – 숫자 A가 100보다 작거나 같은지 체크, 100 이하이면 참
[ intA -lt 100 ] – 숫자 A가 100보자 작은지 체크, 100 미만이면 참

 

파일 체크

[ -r filename ] – 해당 파일이 읽기 가능한지 체크
[ -w filename ] – 해당 파일이 쓰기 가능한지 체크
[ -x filename ] – 해당 파일이 실행 가능한지 체크
[ -s filename ] – 해당 파일의 사이즈가 제로 이상인지 체크
[ -d filename ] – 해당 파일이 디렉토리 파일인지 체크
[ -f filename ] – 해당 파일이 보통 파일인지 체크
[ -h filename ] – 해당 파일이 링크 파일인지 체크

 

조건문의 결합

[ 조건문A -a 조건문B ] – 조건문 A와 B가 모두 참인지 체크, -a는 AND
[ 조건문A -o 조건문B ] – 조건문 A와 B중 참이 하나라도 있는지 체크, -o는 OR

Facebook API ipv6 Network is unreachable

LINUX에서 FACEBOOK API 연동시 아래와 같은 오류가 발생했습니다

Failed to connect to 2a03:2880:2050:1f08:face:b00c:0:1: Network is unreachable

 이 오류는 ipv4 설정이 되있는 서버에서 ipv6가 활성화 되면서 해당 도메인의 ipv6 주소로 접근을 하려고하나, 해당 서버의 ipv6 네트워크가 정상적이지 않기 때문에 발생하는 오류입니다.

 이 문제는 해당서버의 ipv6를 disable 해주므로써 해결이 가능합니다.

vi /etc/sysctl.conf
# disable ipv6
net.ipv6.conf.all.disable_ipv6=1sysctl -p (재부팅 안하고 적용)

위와 같이 설정후 재부팅하면 적용이 가능하고, 혹시라도 안되면 아래의 사이트에서 다른 방법을 찾아봐야할 것 같습니다.

 

http://wiki.centos.org/FAQ/CentOS5#head-47912ebdae3b5ac10ff76053ef057c366b421dc4

 

9. How do I disable IPv6?

  • Edit /etc/sysconfig/network and set “NETWORKING_IPV6” to “no”
  • For 5.4 and later, replace in /etc/modprobe.conf

 

alias ipv6 off

by

options ipv6 disable=1

Alternative (which might be easier and works on any release with /etc/modprobe.d):

# touch /etc/modprobe.d/disable-ipv6.conf
# echo "install ipv6 /bin/true" >> /etc/modprobe.d/disable-ipv6.conf
  • For CentOS 5.3 or older, add the following to /etc/modprobe.conf :

 

alias ipv6 off
alias net-pf-10 off
  • Run /sbin/chkconfig ip6tables off to disable the IPv6 firewall
  • Reboot the system

<!> With the 5.4 update symbol/ipv6 module dependency capabilities have been introduced; therefore, if IPv6 has been previously disabled as above an upgrade to the bonding driver in 5.4 will result in the bonding kernel module failing to load. For the module to load properly use instead:

# touch /etc/modprobe.d/disable-ipv6.conf
# echo "options ipv6 disable=1" >> /etc/modprobe.d/disable-ipv6.conf

<!> <!> Upstream employee Daniel Walsh recommends not disabling the ipv6 module but adding the following to /etc/sysctl.conf:

net.ipv6.conf.all.disable_ipv6 = 1

리눅스 MTU 변경

MTU (Maximum Transmission Unit) : 최대 전송 단위

리눅스에서 아래의 명령으로 쉽게 MTU 값을 변경할 수 있습니다.
# ifconfig eth0 mtu 1500

리눅스에서 윈도우 공유폴더 마운트

[문제점]

리눅스에서 윈도우 공유폴더 마운트시 아래와 같은 명령어로 마운트를 합니다.

mount -t cifs //xxx.xxx.xxx.xxx/sharefolder /mnt/sharefolder -o user=’account’,password=’password’

마운트시 아래와 같은 오류가 발생했을 시 해결 방법입니다.

mount error(13): Permission denied

[해결방법]

공유폴더를 지정한 윈도우서버에서 아래의 정책을 확인합니다.

b

로컬보안정책 – 로컬정책 – 보안옵션 – LAN manager – 위그림과 같은 옵션.

 

java.lang.OutOfMemoryError: Java heap space

톰캣 운영중 http 서비스가 제대로 되지 않고 아래의 에러메시지가 catalina.out 로그에 발생함.

java.lang.OutOfMemoryError: Java heap space

1. heap size를 늘려 조치

2. /usr/local/tomcat6/bin/catalina.sh 을 열어 아래 옵션 추가
    CATALINA_OPTS=”-Xms512m -Xmx512m”;

3. 톰캣 재시작 후 정상 적용 여부 확인
    jps -lvm
    24428 sun.tools.jps.Jps -lvm -Dapplication.home=/usr/java/jdk1.7.0_21 -Xms8m
    24172 org.apache.catalina.startup.Bootstrap start -Djava.util.logging.config.file=/usr/local/tomcat6/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Xms512m -Xmx512m -Djava.endorsed.dirs=/usr/local/tomcat6/endorsed -Dcatalina.base=/usr/local/tomcat6 -Dcatalina.home=/usr/local/tomcat6 -Djava.io.tmpdir=/usr/local/tomcat6/temp

톰캣 시작 스크립트

/etc/init.d/tomcat

#!/bin/sh
tomcat=usr/local/tomcat/tomcat-6.0.35
startup=$tomcat/bin/startup.sh
shutdown=$tomcat/bin/shutdown.sh

start() {
  echo -n $”Starting Tomcat service: “
  sh $startup
  echo $?
}

stop() {
  echo -n $”Stopping Tomcat service: “
  sh $shutdown
  echo $?
}

restart() {
  stop
  start
}

status() {
  ps -aef | grep tomcat | grep -v grep
}

# Handle the different input options
case “$1” in
start)
  start
  ;;
stop)
  stop
  ;;
status)
  status
  ;;
restart)
  restart
  ;;
*)
  echo $”Usage: $0 {start|stop|restart|status}”
  exit 1
esac

exit 0

해당 파일 등록 후 service tomcat restart 로 톰캣 재시작 가능

SENDMAIL 접근권한 추가

SENDMAIL 접근 권한 추가

/etc/mail/access 파일 수정


Connect:localhost.localdomain           RELAY

Connect:localhost                       RELAY
Connect:127.0.0.1                       RELAY
121.170.XXX.XXX RELAY

해당 파일 수정완료후 아래 명령서 실행 후 SENDMAIL 재시작

makemap -v hash /etc/mail/access.db < /etc/mail/access



LINUX OPEN FILES SIZE 조절

LINUX OPEN FILES SIZE 조절

/etc/security/limits.conf

*               soft    nofile          20480
*               hard    nofile          20480

– 재부팅 못할때는 아래 명령어로 바로 적용

  ulimit -S -c 0 > /dev/null 2>&1



  ulimit -n 20480

opentracker option

opentracker 사용시 WEB에서 사용하는 OPTION


http://127.0.0.1:6969/stats?mode=option


 

































OPTION


 


peer


TASK_STATS_PEERS 


conn


TASK_STATS_CONNS 


scrp


TASK_STATS_SCRAPE


udp4


TASK_STATS_UDP 


tcp4 


TASK_STATS_TCP


busy


TASK_STATS_BUSY_NETWORKS 


torr


TASK_STATS_TORRENTS 


fscr


TASK_STATS_FULLSCRAPE 





































s24s


TASK_STATS_SLASH24S 


tpbs


TASK_STATS_TPB


herr


TASK_STATS_HTTPERRORS 


completed 


TASK_STATS_COMPLETED


top100


TASK_STATS_TOP100 


top10


TASK_STATS_TOP10


renew


TASK_STATS_RENEW


syncs


TASK_STATS_SYNCS


version 


TASK_STATS_VERSION 


everything


TASK_STATS_EVERYTHING














statedump


TASK_STATS_TRACKERSTATE


fulllog


TASK_STATS_FULLLOG


woodpeckers


TASK_STATS_WOODPECKERS 

아파치 Directory Listing 차단

아파치 Directory Listing 차단을 아래와 같이 하였으나 정상적으로 동작하지 않음.


 


 


httpd.conf


– Options Indexes 제거


 


 


위와 같이 설정후에도 Directory Listing될 경우 아래와 같이 옵션을 주면 됩니다.


 


 


httpd.conf


Options +Includes -Indexes   로 설정하니 정상적으로 Directory Listing 차단됨.


 


 


 

CentOS Network Install

준비물 : CentOS-5.7-x86_64-netinstall.iso

CD넣고 부팅

1. Instsallation Method -> HTTP 선택

2. IP할당

3. 다운로드 경로 입력
   WebSite name : ftp.daum.net
   CentOS directory : centos/5.7/os/x86_64

기본적으로 FTP가 막혀있어, HTTP로 설치가 필요해 이와 같이 진행하였습니다.

이후 설치 과정은 동일합니다.
   
 

nrpe compile 시 SSL Header 오류

nrpe-2.12
CentOS 5.6 32bit

nrpe 컴파일시 SSL Header를 찾지 못하는 오류가 발생함.

./configure
..

….
checking for SSL headers… configure: error: Cannot find ssl headers

해당 문제는 openssl-devel 패키지가 없어 발생하였음.

yum install openssl-devel 로 openssl-devel 패키지 설치 후 해결

nagios compile 시 오류

nagios-3.3.1.tar.gz
OS : CentOS 5.6 32BIT

nagios 컴파일시 다음과 같은 오류가 발생하여 더 이상 컴파일을 진행할 수가 없었다.




 [root@localhost nagios]# make fullinstall
cd ././base && make install
make[1]: Entering directory `/root/nagios/nagios/base’
make install-basic
make[2]: Entering directory `/root/nagios/nagios/base’
/usr/bin/install -c -m 775 -o nagios -g nagios -d /usr/local/nagios/bin
/usr/bin/install -c -m 774 -o nagios -g nagios nagios /usr/local/nagios/bin
/usr/bin/install -c -m 774 -o nagios -g nagios nagiostats /usr/local/nagios/bin
make[2]: Leaving directory `/root/nagios/nagios/base’
make strip-post-install
make[2]: Entering directory `/root/nagios/nagios/base’
/usr/bin/strip /usr/local/nagios/bin/nagios
/usr/bin/strip /usr/local/nagios/bin/nagiostats
make[2]: Leaving directory `/root/nagios/nagios/base’
make[1]: Leaving directory `/root/nagios/nagios/base’
cd ././cgi && make install
make[1]: Entering directory `/root/nagios/nagios/cgi’
make install-basic
make[2]: Entering directory `/root/nagios/nagios/cgi’
/usr/bin/install -c -m 775 -o nagios -g nagios -d /usr/local/nagios/sbin
for file in *.cgi; do \
                /usr/bin/install -c -m 775 -o nagios -g nagios $file /usr/local/nagios/sbin; \
        done
make[2]: Leaving directory `/root/nagios/nagios/cgi’
make strip-post-install
make[2]: Entering directory `/root/nagios/nagios/cgi’
for file in *.cgi; do \
                /usr/bin/strip /usr/local/nagios/sbin/$file; \
        done
make[2]: Leaving directory `/root/nagios/nagios/cgi’
make[1]: Leaving directory `/root/nagios/nagios/cgi’
cd ././html && make install
make[1]: Entering directory `/root/nagios/nagios/html’
/usr/bin/install -c -m 775 -o nagios -g nagios -d /usr/local/nagios/share
/usr/bin/install -c -m 775 -o nagios -g nagios -d /usr/local/nagios/share/media
/usr/bin/install -c -m 775 -o nagios -g nagios -d /usr/local/nagios/share/stylesheets
/usr/bin/install -c -m 775 -o nagios -g nagios -d /usr/local/nagios/share/contexthelp
/usr/bin/install -c -m 775 -o nagios -g nagios -d /usr/local/nagios/share/docs
/usr/bin/install -c -m 775 -o nagios -g nagios -d /usr/local/nagios/share/docs/images
/usr/bin/install -c -m 775 -o nagios -g nagios -d /usr/local/nagios/share/images
/usr/bin/install -c -m 775 -o nagios -g nagios -d /usr/local/nagios/share/images/logos
/usr/bin/install -c -m 775 -o nagios -g nagios -d /usr/local/nagios/share/includes
/usr/bin/install -c -m 775 -o nagios -g nagios -d /usr/local/nagios/share/includes/rss
/usr/bin/install -c -m 775 -o nagios -g nagios -d /usr/local/nagios/share/includes/rss/extlib
/usr/bin/install -c -m 775 -o nagios -g nagios -d /usr/local/nagios/share/ssi
/usr/bin/install -c -m 664 -o nagios -g nagios robots.txt /usr/local/nagios/share
rm -f /usr/local/nagios/share/index.html
rm -f /usr/local/nagios/share/main.html
rm -f /usr/local/nagios/share/side.html
for file in *.php; \
        do /usr/bin/install -c -m 664 -o nagios -g nagios $file /usr/local/nagios/share; done
for file in stylesheets/*.css; \
        do /usr/bin/install -c -m 664 -o nagios -g nagios $file /usr/local/nagios/share/stylesheets; done
for file in contexthelp/*.html; \
        do /usr/bin/install -c -m 664 -o nagios -g nagios $file /usr/local/nagios/share/contexthelp; done
for file in images/*.gif; \
        do /usr/bin/install -c -m 664 -o nagios -g nagios $file /usr/local/nagios/share/images; done
for file in images/*.jpg; \
        do /usr/bin/install -c -m 664 -o nagios -g nagios $file /usr/local/nagios/share/images; done
for file in images/*.png; \
        do /usr/bin/install -c -m 664 -o nagios -g nagios $file /usr/local/nagios/share/images; done
for file in images/*.ico; \
        do /usr/bin/install -c -m 664 -o nagios -g nagios $file /usr/local/nagios/share/images; done
for file in images/logos/*.*; \
        do /usr/bin/install -c -m 664 -o nagios -g nagios $file /usr/local/nagios/share/images/logos; done
for file in includes/*.*; \
        do /usr/bin/install -c -m 664 -o nagios -g nagios $file /usr/local/nagios/share/includes; done
for file in includes/rss/*; \
        do /usr/bin/install -c -m 664 -o nagios -g nagios $file /usr/local/nagios/share/includes/rss; done
/usr/bin/install: omitting directory `includes/rss/extlib’
/usr/bin/install: omitting directory `includes/rss/htdocs’
/usr/bin/install: omitting directory `includes/rss/scripts’
make[1]: *** [install] 오류 1
make[1]: Leaving directory `/root/nagios/nagios/html’

디렉토리 권한문제로 인해 발생하였으며, 검색한 결과 다음과 같은 방법으로 해결할 수 있다.

1. ./configure
2. sed -i ‘s:for file in includes/rss/\*;:for file in includes/rss/\*.\*;:g’ ./html/Makefile
   sed -i ‘s:for file in includes/rss/extlib/\*;:for file in includes/rss/extlib/\*.\*;:g’ ./html/Makefile
3. make all
4. make fullinstall

위와 같이 configure 후 Makefile의 내용 수정후 다시 make시 정상적으로 컴파일을 마칠 수 있다.

SSL적용된 아파치 재시작시 비밀번호 자동으로 입력되게 하기

1. vi /etc/httpd/conf/SSL/httpdpass.sh




 #!/bin/sh
echo
‘SSL 비밀번호’
:wq

2. chmod 755 /etc/httpd/conf/SSL/httpdpass.sh

3. vi ssl.conf
SSLPassPhraseDialog  exec:/etc/httpd/conf/SSL/highpass.sh

PHP 컴파일

아파치 worker 컴파일하면서 같이 진행한 php 컴파일입니다.





 #!/bin/sh
#####################################
# Build Configure
#buildconf: autoconf version 2.13 (ok)
#buildconf: automake version 1.5 (ok)
#buildconf: libtool version 1.4.3 (ok)
#####################################
#rm configure
#rm buildmk.stamp
#./buildconf
#./configure –help | grep xecure
#./configure –help | grep sso


#####################################
# Clean
#####################################
rm config.cache
make clean
make -dist clean


#####################################
# Confiugre Make Make Install(DSO)
#####################################
./configure \
–with-apxs2=/usr/local/apache2/bin/apxs \
–with-mysql=/usr/bin \
–with-libdir=lib64 \
–with-freetype-dir \
–with-zlib-dir \
–with-jpeg-dir \
–with-gd \
–with-openssl \
–with-mime-magic \
–with-oci8=instantclient,/usr/lib/oracle/10.2.0.3/client64/lib \
–with-config-file-path=/usr/apache2/conf \
–disable-debug \
–with-xml \
–enable-soap \
–enable-sockets \
–enable-mbstring \
–enable-bcmath \


make
make install


아파치 Worker 컴파일

아파치 Worker 컴파일

– 기본적으로 RPM으로 아파치를 설치하게되면 기본설정이 prefork입니다.
   prefork 말고 아파치에서 worker방식을 사용하기 위해 아파치 컴파일을 진행하였습니다.

httpd-2.2.17.tar
OS : RHEL5.5 64BIT

/httpd-2.2.17/server/mpm/worker/worker.c




  – 아래 부분 수정
#Ifndef DEFAULT_SERVER_LIMIT
#define DEFAULT_SERVER_LIMIT 16 -> 128 <= 변경
#endif

위의 부분만 설정 후 컴파일을 하면 됩니다.




 ./configure \
 –prefix=/usr/local/apache2 \
 –enable-so \
 –enable-ssl \
 –with-mpm=worker \

make
make install

컴파일후
/usr/local/apache2/bin/apachectl -V를 입력하면 worker 방식으로 동작하는 것을 확인할 수 있습니다.




 Server version: Apache/2.2.17 (Unix)
Server built:   Apr  5 2011 12:21:49
Server’s Module Magic Number: 20051115:25
Server loaded:  APR 1.4.2, APR-Util 1.3.10
Compiled using: APR 1.4.2, APR-Util 1.3.10
Architecture:   64-bit
Server MPM:     Worker
  threaded:     yes (fixed thread count)
    forked:     yes (variable process count)
Server compiled with….
 -D APACHE_MPM_DIR=”server/mpm/worker”
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=128
 -D HTTPD_ROOT=”/usr/apache2″
 -D SUEXEC_BIN=”/usr/apache2/bin/suexec”
 -D DEFAULT_SCOREBOARD=”logs/apache_runtime_status”
 -D DEFAULT_ERRORLOG=”logs/error_log”
 -D AP_TYPES_CONFIG_FILE=”conf/mime.types”
 -D SERVER_CONFIG_FILE=”conf/httpd.conf”

Worker 환경설정
/usr/local/apache2/conf/extra/httpd-mpm.conf




 # worker MPM
# StartServers: initial number of server processes to start
# MaxClients: maximum number of simultaneous client connections
# MinSpareThreads: minimum number of worker threads which are kept spare
# MaxSpareThreads: maximum number of worker threads which are kept spare
# ThreadsPerChild: constant number of worker threads in each server process
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule mpm_worker_module>
    StartServers          2
    MaxClients          150
    MinSpareThreads      25
    MaxSpareThreads      75
    ThreadsPerChild      25
    MaxRequestsPerChild   0

상황에 맞게 위의 수치를 변경하여 사용하실 수 있습니다.

PHP 컴파일 시 configure: error: Cannot find libmysqlclient under 오류

OS : RHEL 5.5
apache : worker

php 컴파일시 다음과 같은 오류 발생시

checking for specified location of the MySQL UNIX socket… no
checking for MySQL UNIX socket location… no
configure: error: Cannot find libmysqlclient under /usr.
Note that the MySQL client library is not bundled anymore!
make: *** No targets specified and no makefile found.  Stop.
make: *** No rule to make target `install’.  Stop.

–with-mysql=/usr/bin \
–with-libdir=lib64 \

설정후 재컴파일 하여 성공하였습니다.
상황에 따라 틀리겠지만 참고하면 좋을것같습니다.

윈도우7에서 삼바 연결시 속도 느린 현상

윈도우7에서 삼바 연결시 속도 느린 현상

시작 -> gpedit.msc 실행

로컬 그룹 정책 편집기

로컬 컴퓨터 정책 -> 컴퓨터 구성 -> Windows 설정 -> 보안 설정 -> 로컬 정책 -> 보안 옵션

– Microsoft 네트워크 클라이언트 : 타사 SMB 서버에 암호화되지 않은 암호 보내기 (사용)
– 네트워크 보안 : LAN Manager 인증 수준 (LM 및 NTLM 보내기 – 협상되면 NTLMv2 세션 보안 사용(& ) )

위와 같이 정책을 변경하면 빠른 속도로 연결이 가능합니다.

윈도우7 홈프리미엄 이하버전의 경우 로컬 그룹 정책 편집기가 없으므로 http://pips.wo.tc/191 사이트를 참조하여 사용하시면 됩니다.

VMWARE 에서 LINUX 부팅시 unknown key ‘SUBSYSTEMS’ 오류

Starting udev:
udevd[572]: add_to_rules: unknown key ‘SUBSYSTEMS’
udevd[572]: add_to_rules: unknown key ‘ATTRS{vendor}’
udevd[572]: add_to_rules: unknown key ‘ATTRS{model}’
udevd[572]: add_to_rules: unknown key ‘SUBSYSTEMS’
udevd[572]: add_to_rules: unknown key ‘ATTRS{vendor}’
udevd[572]: add_to_rules: unknown key ‘ATTRS{model}’

위와 같은 메세지가 발생하며 더이상 부팅 진행이 안될때, ctrl+c 키로 부팅은 계속 진행할 수 있음.

http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1023898

rpm db 갱신 방법

rpm에 문제가 발생하는 경우 우선 rpm –rebuilddb 해서 해결이 되면 ok

그래도 안되면 rm -f /var/lib/rpm/__db* 삭제하고

vi /etc/rpm/macros 에 %_dbi_cdb create cdb private mpool mp_mmapsize=16Mb mp_size=1Mb
내용입력하고

rpm –rebuilddb 하면 새로 rpmdb를 생성

Cron 실행시 root 에게 메일 보내지 않도록 설정


1. crontab 에 등록된 동작 실행시 root에게 메일 보내지 않도록 설정

/etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=””
HOME=/

위와 같이 설정하면 발생하는 모든 CRON은 메일로 보내지지 않게 됩니다.

2. crontab 에 등록된 일부 동작에만 root에게 메일 보내지 않도록 설정

아래와 같이 설정하면 일부만 메일로 보내지지 않도록 설정할 수 있습니다.

/etc/crontab
00 05 * * * /root/bin/sync.sh > /dev/null 2>&1

설정후 크론데몬 재시작
service crond restart

Sendmail 다른 메일서버로 Relay 걸기


Sendmail로 메일을 보낼 때 25번 포트가 오픈이 안되거나, 제한적인 경우 내부에 있는 다른 메일서버로 Relay를 걸어 발송할 수 있습니다.

[설정방법]
/etc/mail/sendmail.cf


# “Smart” relay host (may be null)
DS [mail.domain.co.kr]


RELAY 메일 서버의 주소를 위와 같은 위치에 적어줌으로써 문제가 해결됩니다.
작업을 마친 후 Sendmail 을 재시작하면 Relay를 적용할 수 있습니다.

만약 해당 메일서버에서 인증된 사용자만 메일을 발송하도록 제한을 걸었두었다면 아래의 작업도 추가해주어야 정상적으로 메일을 발송할 수 있습니다.


/etc/php.ini
; For Unix only.  You may supply arguments as well (default: “sendmail -t -i”).
sendmail_path = /usr/sbin/sendmail -t -i -fusermail@domain.ac.kr


위와 같이 php.ini에 설정을 한후 httpd를 재시작하면 문제는 해결됩니다.

SSH 접속시 오류 메세지 종류

1. No route to host
   -> 접속대상이 없거나, iptable로 차단하였을 경우

2. Connection refused
   -> ssh 서비스가 동작중이지 않거나, 다른 포트로 운영되는 경우

3. Connection closed by remote host
   -> tcp_wrapper로 막아놓은 경우

VI 에디터 색깔 안나올때..

리눅스 설치 후 VI 에디터에서 색이 안나올 때 사용하는 방법입니다.

일단 vim-enhanced 를 설치가 되어 있는지 확인을 하시고, 만약 설치가 안되어있으면 설치를 합니다.

vi /etc/profile.d/vim.sh 파일을 열어
[‘/usr/bin/id -u’ -le 100] && return < 이부분을 주석처리 합니다.

그리고 로그아웃 후 재 접속하시면 색깔이 표시됩니다.