B / Y / U / S
HOME 웹 호스팅 도메인 매뉴얼 고객지원 설정정보 계정신청 2025-05-25 Sunday 
웹 호스팅
# 공지 사항
# 자주 묻는 질문
# 질문과 답변
# 가입 문의
커뮤니티
# 자유게시판
# 리눅스팁
# 아이큐 테스트
# 내홈 소개
# 겔러리
# 자료실

  리눅스팁  Go Unix Power Tools Online Book Go Bash Guide
Read No. 169 article 2002-07-07 14:43:50
NickName   풀비누
Subject   서버 설치 및 설정(redhat 7.2)
http://www.phpschool.com/bbs2/inc_view.html?
id=6970&code=tnt2&start=60&mode=&s_que=&field=&operator=&period=&category_id=

### 파티션을 나눌 때는 usr을 고려한다. 
   --->만약 mysql 의 데이터를 usr에 두려면 그만큼 넉넉하게 잡는다. 
        usr에 두지 않고 다른 곳에 둘경우에는 그곳의 파티션을 넉넉히 준다. 
### 서버 설치시 소스로 컴파일 할것이나 필요없는 서비스는 설치하지 않는다. 

### 리눅스 설치후 확인 및 설정 
1. 서버의 호스트 네임과 그밖의 몇가지를 확인한다. 
vi /etc/sysconfig/network 
(hostname과 gateway, networking을 제외한 나머지는 없어도 됨) 
-------------------------------------------------------------------- 
    NETWORKING=yes 
    FORWARD_IPV4=false 
    HOSTNAME=ns2.abc.net   
    DOMAINNAME=abc.net 
    GATEWAY=218.xxx.xxx.65 
    GATEWAYDEV=eth0 
-------------------------------------------------------------------- 

vi /etc/sysconfig/network-scripts/ifcfg-eth0 
-------------------------------------------------------------------- 
    DEVICE=eth0 
    BOOTPROTO=static 
    BROADCAST=218.xxx.xxx.127 
    IPADDR=218.xxx.xxx.99 
    NETMASK=255.255.255.192 
    NETWORK=218.xxx.xxx.64 
    ONBOOT=yes 
-------------------------------------------------------------------- 

vi /etc/hosts 
-------------------------------------------------------------------- 
     127.0.0.1          localhost localhost.localdomain 
     218.xxx.xxx.99     ns2.abc.net ns2   
-------------------------------------------------------------------- 

시스템을 재부팅후 hostname를 쳐본다. 
-->ifconfig, netstat, route 등의 명령어로 네트워크 설정된 사항들을 확인한다 
-->만약 맞지 않거나 잘못 설정되어 있다면 setup으로 다시 설정하고 확인한다. 

2. 서버의 네트웍 설정을 확인한다. 
route  또는 ifconfig등으로 바르게 설정되었는지 확인한다. 
-->맞지 않을경우 vi /etc/resolv.conf 
-------------------------------------------------------------------- 
domain abc.net 
search abc.net 
nameserver 218.xxx.xxx.99 
-------------------------------------------------------------------- 
-->netconfig로 설정한다. 

3. apm, gd, zend 설치(파일 링크 http://apmusers.com/file.rar) 

adduser hosting(임의의 계정을 하나 만든다.) 
passwd hosting(패스워드를 정한다.) 

#mysql 설치 
cd /home/hosting 
tar -zxvf mysql-3.23.49.tar.gz 
cd mysql-3.23.49 
./configure --prefix=/usr/local/mysql --localstatedir=/home/data --with-charset=euc_kr 
<--data 디렉토리를 데이터 저장소로 지정 
make 
make install 
-->useradd mysql -M -s /bin/false  <--계정만 있고 디렉토리는 생기지 않음 
cd /usr/local/mysql 
./bin/mysql_install_db 
chown -R mysql.mysql /home/data <-- 새로 생성된 data 디렉토리를 소유자와 그룹을 mysql로 
변경 
./bin/safe_mysqld --language=korean & 
-->종료시 ./bin/mysqladmin shutdown 
-->루트 패스워드 적용./bin/mysqladmin -u root password '패스워드' 
-->./bin/mysql -u root -p mysql 접속한다. 
-->계정 추가 테스트 INSERT INTO user VALUES ('localhost','program',password('패스워
드'),'N','N','N','N','N','N','N','N','N','N','N','N','N','N'); 
-->create database program; 
-->INSERT INTO db VALUES 
('localhost','program','program','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y'); 
-->flush privileges; 

#gd 

cd /home/hosting 
tar xvfz gd-1.8.4.tar.gz 
cd gd-1.8.4/ 
make 
cd .. 
mv /home/hosting/gd-1.8.4 /usr/local/gd 

#apache 1 

cd /home/hosting 
tar xvfz apache_1.3.23.tar.gz 
cd /home/hosting/apache_1.3.23 
./configure --prefix=/home/httpd/ 

#zend 

cd /home/hosting 
tar xvfz ZendOptimizer-1\[1\].2.0-PHP_4.1.0-Linux_glibc21-i386.tar.gz 
mkdir /usr/local/Zend 
mv ZendOptimizer-1.2.0-PHP_4.1.0-Linux_glibc21-i386 /usr/local/Zend/lib 

#php 

cd /home/hosting 
tar xvfz php-4.1.2.tar.gz 
mv /home/hosting/php-4.1.2 /usr/local/php 
cd /usr/local/php 
./configure --prefix=/usr/local/php/ --with-config-file-path=/usr/local/lib --exec-
prefix=/usr/local/php --with-apache=/home/hosting/apache_1.3.23 --with-
mysql=/usr/local/mysql --with-gd=/usr/local/gd --enable-ftp --enable-socket --enable-
track-vars --disable-debug 
make 
make install 

#apache 2 

cd /home/hosting/apache_1.3.23 
./configure --prefix=/home/httpd --activate-module=src/modules/php4/libphp4.a --enable-
rule=SHARED_CORE --enable-module=so --enable-shared=max 
make 
make install 
cp /usr/local/php/php.ini-dist /usr/local/lib/php.ini 
cd /usr/local/Zend/lib 
./install.sh 

vi /etc/rc.d/rc.local 
-->/home/httpd/bin/apachectl start 삽입 
-->/usr/local/mysql/bin/safe_mysqld --language=korean & 삽입 

vi /etc/profile 
--> PATH="$PATH:/usr/X11R6/bin" 를  PATH="$PATH:/usr/X11R6/bin:/usr/local/mysql/bin" 로 
바꿈 

vi /home/httpd/conf/httpd.conf 
-->318라인 #ServerName apmusers.com 에서 주석을 제거한다. 
-->404 라인 
   <IfModule mod_dir.c> 
      DirectoryIndex index.html index.htm index.php <-- 인덱스로 인식될 파일 이름을 적는
다. 
   </IfModule> 
-->814 라인에 다음을 추가한다. 
   AddType application/x-httpd-php .php .ph .inc .php3 .html .htm 
   AddType application/x-httpd-php-source .phps 

vi /home/httpd/htdocs/info.php(새파일을 만든다) 
-------------------------------------------------------------------- 
<? 
            phpinfo(); 
?> 
-------------------------------------------------------------------- 

cd /etc/skel/(계정 추가시 마다 public_html이 자동으로 생성된다) 
mkdir public_html 
chmod 701 public_html/ 

# qpopper 설치(pop3를 사용할 경우 설치한다. 
-->메일을 사용하지 않을 경우 설치 안해도 됨) 
cd /home/hosting 
tar xvzf qpopper4.0.3.tar.gz 
cd /home/hosting/qpopper4.0.3 
./configure 
make 
make install 
cd /home/hosting/qpopper4.0.3/popper 
cp popper /usr/local/bin 
cp popauth.c /usr/local/bin 
vi /etc/xinetd.d/pop3 
-------------------------------------------------------------------- 
service pop3 
{ 
        disable = no 
        flags           = REUSE 
        socket_type     = stream 
        wait            = no 
        protocol        = tcp 
        user            = root 
        server          = /usr/local/bin/popper 
        server_args     = qpopper -s 
        port            = 110 
} 
-------------------------------------------------------------------- 
위와 같이 설정 한후 
/etc/rc.d/init.d/xinetd restart 
telnet localhost 110(테스트) 

vi /etc/sendmail.cf 
--> 
# SMTP daemon options 
O DaemonPortOptions=Port=smtp,Addr=127.0.0.1, Name=MTA 
부분에서 Addr=127.0.0.1, 부분을 지운다. 

만약 root로 보내지는 메일을 받아보고 싶다면 다음과 같이하면 됩니다. 

#vi /etc/aliases 
-->제일 하단에 보면 다음과 같은 내용이 있습니다. 
# Person who should get root's mail 
root:           webmaster at irehnet.net//자기가 받을 메일 주소를 입력, 원래는 주석이 달려 
있으니 주석을 제거해야합니다. 
저장한 후에 
newaliases 
라고 쳐 주면 루트로 오는 메일은 모두 위에서 지정한 곳으로 들어옵니다. 

### 시스템에서 섬네일 만드는 것이 가능하게 할려면 다음과 같은 6개의 라이브러리 rpm을 설
치한다. 
-->먼저 다음의 명령으로 설치되엇느지 확인한다. 
rpm -qa | grep libgr 
rpm -qa | grep libjpeg 

-->설치되어 있지 않다면 다음의 rpm을 설치한다. 
rpm -ivh libgr-2.0.13-23.i386.rpm 
rpm -ivh libgr-devel-2.0.13-23.i386.rpm 
rpm -ivh libgr-progs-2.0.13-23.i386.rpm 
rpm -ivh libjpeg6a-6a-5.i386.rpm 
rpm -ivh libjpeg-6b-10.i386.rpm 
rpm -ivh libjpeg-devel-6b-10.i386.rpm 

리부팅 한번 해준다. 


### 중요화일 퍼미션 변경및 불필요한 서비스를 내린다. 

-->먼저 ps -aux 데몬들을 확인하고 삭제 할 데몬들을 죽인다.(kill -9 ) 
rpm -e --nodeps portmap-4.0-38(rpm은 자신의 환경에 맞게 제거한다) 
rpm -e --nodeps pidentd-3.0.14-1 
rpm -e --nodeps gpm-1.19.3-20 
rpm -e --nodeps gpm-devel-1.19.3-20 
rpm -e --nodeps nfs-utils-0.3.1-13 
rpm -e apmd-3.0final-34 

-->setup, 시스템 서비스에서 atd, netfs내려줌 

-->/etc/passwd 와 /etc/group 
ftp,xfs,adm,lp,news,gopher,sync,uucp,operator,games,dip(등 필요없는 계정은 주석을 달거
나 삭제한다) 

-->퍼미션 변경 
chmod 700 /etc/exports 
chmod 700 /etc/fstab 
chmod 700 /usr/bin/chage 
chmod 700 /usr/bin/wall 
chmod 755 /usr/bin/man 
chmod 700 /usr/bin/chfn 
chmod 700 /usr/bin/write 
chmod 700 /usr/sbin/usernetctl 
chmod 700 /bin/mount 
chmod 700 /bin/umount 
chmod 700 /sbin/netreport 

chmod 750 /bin/ps 
chmod 750 /bin/netstat 
chmod 750 /bin/dmesg 
chmod 750 /bin/df 
chmod 750 /usr/bin/who 
chmod 750 /usr/bin/finger 
chmod 750 /usr/bin/last 
chmod 750 /usr/bin/top 
chmod 750 /usr/bin/w 

chgrp wheel /bin/ps 
chgrp wheel /bin/netstat 
chgrp wheel /bin/dmesg 
chgrp wheel /bin/df 
chgrp wheel /usr/bin/w 
chgrp wheel /usr/bin/who 
chgrp wheel /usr/bin/finger 
chgrp wheel /usr/bin/last 
chgrp wheel /usr/bin/top 

chmod 751 /home 
chmod 751 /var/named 
chmod 600 /home/httpd/conf/httpd.conf 
chmod 110 /usr/bin/top 
chmod 550 /bin/ps 
chmod 110 /usr/bin/uptime 
chmod 110 /usr/sbin/useradd 
chmod 110 /usr/sbin/userdel 
chmod 110 /usr/bin/last 
chmod 110 /usr/bin/find 

변경해서는 안되는 중요한 파일에는 chattr을 사용하여 락을 걸어준다. 
chattr +i 파일명 --> 루트도 지우거나 수정 할수 없다. 
풀어줄때는 반대로 
chattr -i 파일명 하면된다. 


-->최상위 루트 하의 디렉토리의 퍼미션들은 다음과 같이 한다. 
drwxr-x--x    2 root     root         2048 Jun  8 14:52 bin 
drwxr-x--x    4 root     root         1024 Mar 27 04:23 boot 
drwxr-x--x   17 root     root        77824 Jun 10 09:10 dev 
drwxr-x--x   35 root     root         3072 Jun 10 10:16 etc 
drwxr-x--x   18 root     root         4096 Jun  7 16:29 home 
drwxr-x--x    2 root     root         1024 Jun 22  2001 initrd 
drwxr-x--x    7 root     root         3072 Mar 27 04:25 lib 
drwxr-x--x    2 root     root        12288 Mar 27 04:19 lost+found 
drwxr-x--x    2 root     root         1024 Aug 30  2001 misc 
drwxr-x--x    4 root     root         1024 Mar 26 19:28 mnt 
drwxr-x--x    2 root     root         1024 Aug 24  1999 opt 
dr-xr-xr-x   54 root     root            0 Jun 10  2002 proc 
drwxr-x---    3 root     root         1024 Jun  7 18:08 root 
drwxr-x--x    2 root     root         4096 Jun  7 16:00 sbin 
drwxrwxrwx    2 root     root         1024 Jun 10 09:10 tmp 
drwxr-x--x   18 root     root         4096 Mar 27 20:12 usr 
drwxr-x--x   17 root     root         4096 Mar 27 04:23 var 

-->계정 디렉토리의 퍼미션은 701로 준다.(chmod 701 계정명) 

### 전자우편만 사용할수 있는 계정추가하기 
(-d 위치 지정, -s 쉘지정, ftp도 사용할수 없다) 
useradd 계정명 -d /home/mailbox/dbckdghk -s /bin/false 
passwd 계정명 

### FTP계정만 주고 Shell계정은 주지 않기 
/etc/passwd을 연다. 
test:x:500:500::/home/test:/bin/bash <-- /bin/bash 부분입니다. 
cat /etc/shells (쉘이 등록된 것이 보임) 
/bin/bash2 
/bin/bash 
/bin/sh 
/bin/ash 
/bin/bsh 
/bin/tcsh 
/bin/csh 
이곳에 임의로 하나를 등록 합니다. 
예를 들어 /bin/nosh 이라고 아래부분에 추가한후 

cd /bin 
touch nosh 

그리고 /etc/passwd 쪽에서 쉘부분의 세팅만 바꿔 주면 됩니다. 
test:x:500:500::/home/test:/bin/nosh <-- 요깁니다. 


### ftp 명령어 모음 
ascii : 전송모드를 ASCII모드로 설정한다.(ascii또는 as) 
binary : 전송모드를 BINARY모드로 설정한다.( binary또는 bi) 
bell : 명령어 완료시에 벨소리를 나게한다.(bell) 
bye : ftp접속을 종료하고 빠져나간다.(bye) 
cd : remote시스템의 디렉토리를 변경한다.(cd 디렉토리명) 
cdup : remote시스템에서 한단계 상위디렉토리로 이동한다.(cdup) 
chmod : remote시스템의 파일퍼미션을 변경한다.(chmod 755 index.html) 
close : ftp접속을 종료한다. (close) 
delete : remote시스템의 파일을 삭제한다.(delete index.old) 
dir : remote시스템의 디렉토리 내용을 디스플레이한다.(dir) 
disconnect : ftp접속을 종료한다.(disconnect) 
exit : ftp접속을 종료하고 빠져나간다.(exit) 
get : 지정된 파일하나를 가져온다.(get index.html) 
hash : 파일전송 도중에 "#"표시를 하여 전송중임을 나타낸다.(hash) 
help : ftp명령어 도움말을 볼 수 있다.(help또는 help 명령어) 
lcd : local시스템의 디렉토리를 변경한다.(lcd 디렉토리명) 
ls : remote시스템의 디렉토리 내용을 디스플레이한다. (ls 또는 ls -l) 
mdelete : 여러개의 파일을 한꺼번에 지울 때 사용한다.( mdelete *.old) 
mget : 여러개의 파일을 한꺼번에 가져오려할 때 사용한다. ( mget *.gz) 
mput : 한꺼번에 여러개의 파일을 remote시스템에 올린다.(mput *.html) 
open : ftp접속을 시도한다.(open 168.126.72.51또는 open ftp.kornet.net) 
prompt : 파일전송시에 확인과정을 거친다. on/off 토글 (prompt) 
put : 하나의 파일을 remote시스템에 올린다.(put index.html) 
pwd : remote시스템의 현재 작업디렉토리를 표시한다.(pwd) 
quit : ftp접속을 종료하고 빠져나간다.(quit) 
rstatus : remote시스템의 상황(version, 어디서, 접속ID등)을 표시한다.(rstatus) 
rename : remote시스템의 파일명을 바꾼다.(remote 현재파일명 바꿀파일명) 
rmdir : remote시스템의 디렉토리을 삭제한다.(rmdir 디렉토리명) 
size :remote시스템에 있는 파일의 크기를 byte단위로 표시한다.(size index.html) 
status : 현재 연결된 ftp세션모드에 대한 설정을 보여준다.(status) 
type : 전송모드를 설정한다.(type 또는 type ascii 또는 type binary) 

### 메일 버츄얼 호스팅 
vi /etc/mail/local-host-names 
일단 열어서 등록하고자 하는 도메인명이 없으면 추가한다. 


vi /etc/mail/virtusertable 
hosting at 1004web.co.kr       dbckdghk(계정명) 와 같은 형태로 추가, 저장한다. 
makemap hash /etc/mail/virtusertable < /etc/mail/virtusertable 

./etc/rc.d/init.d/sendmail restart 
메일 데몬을 재시작한다. 

### 메일 포워딩 
자기계정에다 vi .forward하고서는 받고자 하는 곳의 메일 주소를 적으면 됩니다.
Regist Addr [ 211.110.41.183 ] 목록보기 윗글 아랫글
정규표현식 [ 상세 검색 ]
Page Loading [ 0.05 Sec ] SQL Time [ 0 Sec ]

Copyleft 1999-2025 by JSBoard Open Project
Theme Designed by IDOO And follow GPL2

개인정보 취급방침 이용 약관 사이트 맵 어드민 관리