요즘 리눅스 서버를 계속 세팅하고 있었다. 나도 리눅스에 참 익숙하지 않았는데 어느 덧 서버 세팅을 내가 나서서 하고 있게 되었다. 그런데 세팅하다보면 참 검색을 많이하게 된다. 그러면서 또 배우게 되는데 어째든 이렇게 배운 것들에 대해 정리 해 볼까한다. 


 우선 리눅스 쪽을 한 번 정리하고 나서 CentOS에만 적용되는 것을 또 한 번 정리 해 볼까 한다. 리눅스 라고 했지만 대부분 서버를 관리하거나 세팅할 때 사용되는 명령어가 대부분이다. 



일부 설정의 경우 root 권한이나 sudo 를 이용해서 설정해야 한다. 


== nameserver 설정 ==

* nameserver 란 도메인을 IP 로 변경해주는 서버이다. 이런 서버는 자체적으로 구성하기도 하고 인터넷 provider의  nameserver를 사용하기도 하고 구글 DNS 같은 공개형 네임서버도 있다. 간혹 이 서비스가 설정되지 않아 DNS를 통해 접속시 에러가 발생하기도 한다. CentOS를 설치하고 yum을 사용하려고 할 때 안되는 원인중에 하나이다. 아래와 같이 설정할 수 잇다. 8.8.8.8 과 8.8.4.4 는 구글에서 제공하는 nameserver 이다. 

* /etc/resolv.conf 파일 수정

* nameserver 8.8.8.8

  nameserver 8.8.4.4


== hostname과 ip 를 연결하는 파일

* DNS Server 를 설정한다고 해도 이 파일의 우선파일가 높음

vim /etc/hosts 파일을 수정한다.

127.0.0.1   tt.co.kr

tt.co.kr 을 접속하면 127.0.0.1(다시 말해 자기자신)에 접속하게 된다. 


== nslookup ==
 * Domain 과 IP 변환을 확인하는 명령어
  * /etc/hosts 에서 변경한 것은 반영하지 않는다. 



== iptable 설정 ==

 * iptable 은 서버자체의 방화벽이자 네트워크 설정 툴이다. 

 * vim /etc/sysconfig/iptables  에서 설정할 수 있고 그냥 명령어를 통해 바로 설정할 수도 있다. 

 * 아래와 같이 설정한다. 

-A INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT

 * 파일로 설정할 경우 /etc/init.d/iptables restart 로 재시작 시켜준다.



== yum ==

 * CentOS(redhat) 에 있는 패키지 설치툴이다. 이 툴의 최대 장점은 command 창에서 텍스트 모드로 설치할 수 있다는 것이다. 인터넷에서 패키지를 자동으로 다운받아 설치 할 수 있다. 

* 패키지 설치 : yum install 패키지명

* 패키지 삭제 : yum remove 패키지명

* 패키지 업데이트 : yum update 패키지명


== rpm ==

 * yum이 되지 않는 네트워크 환경이나 yum 으로 배포되지 않는 패키지의 경우 rpm 을 이용해야 한다. 

 * 설치 :  rpm -ivh 패키지명

 * 업그레이드 또는 설치를 자동으로 : rpm -Uvh 패키지명

 *  설치된 패키지 확인 :  rpm -qa | grep 패키지명 

  - rpm -qa 를 통해 설치된 패키지를 모두 확인할 수 있지만 grep 를 이용해 하나의 패키지를 


== 소유권 ==

 * 서버를 운영하다보면 소유권 문제로 서비스가 잘 동작하지 않는 문제가 많다. 경우에 따라서 로그파일을 남기는데 권한이 없어 문제가 생기는 경우가 많다. 이 때 사용한다.

chown [-R] [user][:group] target1 [target2 ..]

-R : 하위 디렉토리와 파일의 소유권 모두 변경한다. 가장 많이 사용하는 옵션이다. 

 일반적으로 apache의 사용자와 그룹은  apache.apache 이다.

그래서 


chown -R apache.apache  /home/www/homepage

   같은 식으로 이용할 수 있다. 

http://ko.wikipedia.org/wiki/Chown


== 파일, 디렉토리 권한 ==

 * 서버를 운영하다보면 파일 업로드나 스크립트 파일의 실행 때문에 많이 사용하는 명령어 중 하나이다.  단순 sh 파일일지라도 +x 옵션이 없어서 실행하지 못할 수 있다. 아래와 같은 방법으로 사용한다. 

 * chmod [options] mode[,mode] file1 [file2 ...] 

  -R: 재귀적으로 파일들과 디렉터리들의 모드들을 바꾼다.

 * chmod -R 777 /home/www/upload 

http://ko.wikipedia.org/wiki/Chmod