리눅스

운영자 | 기사입력 2006/08/26 [08:43]
>
필자의 다른기사 보기 인쇄하기 메일로 보내기 글자 크게 글자 작게
리눅스
 
운영자   기사입력  2006/08/26 [08:43]


* 인터넷 설정 확인 : ipconfig
                           - eth0 : lan카드 사용여부와 ip, net mask등을 확인할 수 있다.
                           - io  : 자기자신의 컴퓨터를 지칭하기 위함. (1207.0.0.1)
 
* tail : 파일 뒷부분의 내용을 10줄출력.
             ex) # tail /var/log/messages
                   # tail -20 /var/log/messages
                   # tail -f
 
[ 교재 p200 ~ ]
 
    * 가상콘솔 모드 : ctrl + alt +f2 , x윈도우 모드 : ctrl + alt +f7
 
1. 계정생성 : useradd (adduser) 계정
 
2. 해당 계정에 비밀번호 입력 : passwd 계정
 
 <실습> user 만들고 password 등록하고, 그 아이디로 로그인 과정
             # useradd 계정
             # passwd 계정
                           - 비밀번호 동일하게 두번입력
 
             # passwd  : 본인의 패스워드가 바뀜
             # passwd 계정 : 해당계정의 패스워드 바뀜
 
3. user 삭제 : -r을 사용하지 않으면 user의 home계정이 그대로 자리를 차지 하고 있음.
             #userdel -r aaa : aaa라는 일반유저 삭제
                               - '-r'의 의미 : 유저아래의 하위디렉토리까지 전부 삭제.
                               -  shadow파일과 passwd 파일에서 일반 유저 aaa 줄을  삭제한 것과 동일
                               - userdel로 지우려면 exit로 로그아웃한 후에 user 삭제 가능
 
 4.  /etc 안의 'passwd' 파일
             - 일반 user 계정 앞에 '#'을 붙임. (삭제하지 않고 잠시 접속을 제한시킴.로그인이 안됨)
             - root 계정 외의 일반 유저들은 비밀번호를 만드는 원칙에 제한이 있다.
             - 리눅스 재설치시 passwd파일만 백업시켜두었다가 덮어쓰면 일반유저가 바로 생김.
 
               ※ /etc/passwd 파일에 저장되는 사용자 패스워드 구조
                  계정명:패스워드:uid:gid:설명:/계정위치:/쉘
                      - UID와 GID가 '0:0' (root와 같은 super user의 권한이 주어짐)
 
 5.  /etc 안의 'shadow'  : 일반 유저들은  파일내용을 볼 수 없다. 오직 root만이 그 권한이 있다.
             - password는 암호화 형태로 기억되므로 관리자도 알수 없다.
             - 관리자가 리셋 시킬 수 있다.
             - 패스워드 삭제하면 비밀번호없이 계정전환이 바로 된다.
 
 6. su : user끼리 권한 전환하는 명령
             # su 계정이름 : 계정만 이동하고 디렉토리는 변하지 않음.
                                         (권한을 완벽하게 얻는 것은 아님)
                cd ~ : 홈디렉토리로 이동
             # su - 계정이름 : 계정전환과 동시에 디렉토리 초기화 됨.
                                        (권한 전부를 얻게됨.)
             # su 계정,  패스워드 입력  : 로그아웃하지 않고 계정이동 가능
             # su - ccc
             # su bbb
 
             * root 계정은 원격접속이 불가함.
             * user끼리는 패스워드 확인해가면서 상대방 계정으로 전환이 가능.
 
 
<실습>
             # pico /etc/passwd
                  형식> root:x:0:0:root:/root:/bin/bash
                              (id)  (권한)
                           (user이름 앞에 '#'붙여 해당 user 접속 제한)
 
             # pico /etc/shadow
 
§ 사용자 계정 만들기
  useradd   아이디
  useradd aaa
이렇게  aaa 유저를 생성하면  aaa유저는 /home/aaa 디렉토리에 유저의 홈디렉토리가 생성된다.
  passwd aaa
유저 생성 후 패스워드까지 할당을 해야 유저 생성이 완료 된다.
[root@newstoon root]# passwd aaa
Changing password for user aaa.
New password:
BAD PASSWORD: it's WAY too short
Retype new password:
passwd: all authentication tokens updated successfully.         
 
 su :  유저 전환을 할 수 있는 명령어
 root 유저는 패스워드 확인 없이 일반유저로 전환을  할 수 있으며  일반 유저가 su 을 사용시 유저 전환을  하려는 아이디의 패스워드를 알아야 한다.
 
  su  aaa :  aaa 유저로 전화
  su -   aaa : - 옵션이 들어가면 aaa 유저의 환경설정파일을 읽어 드리기 때문에 -옵션을 붙여 사용하는 것이 좋다.
 
  su - root (su) :   su 로 유저에서 root로 전환시 - 옵션을 꼭쓰는것이 좋다.
 
  유저의 정보가 저장되는 파일
  /etc/passwd  (일반유저 들도 볼 수 있다.)
  /etc/shadow ( 오직 root만 볼 수 있다.)
  /etc/group  (그룹 정보를 가지고 있다.)
 
 passwd 파일
root:x:0:0::/root:/bin/bash
========================================
root:아이디:
x:패스워드(shadow파일로이동)
0:uid 번호 ( 0의 의미는 superuser의미 일반유저는 500부터시작)
0: gid 번호 
/root: 홈디렉토리
/bin/bash : 이 유저가 사용할쉘 리눅스는 bash 쉘 사용
 
 shadow
root:*********::
root:아이디
********: 패스워드는 암호화 되어 있어 무엇인지는
알수 없으며 이 패스워드를 지우면 로그인시
패스워드를 확인 하지 않는다.
 
 
 userdel -r  아이디
(-r 옵션을 추어가 지우려고 하는 아이디가 사용하는 홈디렉토리와 파일 삭제 )
임시적으로 유저의 접속을 막고자 한다면 passwd 파일 아이디 앞에 # 을 추가하면 된다.
 
* p219 ~ 그룹 관리
             - UID :
             - GID :
 
* p225 ~ : 파일 링크
1. 심볼릭 링크 걸기 (많이 사용)
             # ln -s /usr/local/src  work  : work라는 이름으로 링크 걸림
             # 'ls -al' 로 확인 : work  생성
             # cd work  (실제 디렉토리가 아님)
                  ex) 'work -> ' : 심볼릭링크가 걸렸다는 의미. (윈도우의 단축아이콘과 동일한 의미)
             # rm -rf work
 
             <실습> # ln -s /etc/passwd passwd   :  passwd라는 이름으로 링크 걸림.
                           # ls -al  (파일의 자세한 정보를 보여줌)
                           # cd passwd  (/etc/passwd 디렉토리로 이동)
                                                       ( 파일속성에 'l'이 설정, 일반 파일은 'd'가 설정.)
 
2. 하드링크 : 하나의 파일이 수정되면 링크된 다른 파일도 함께 수정됨
      ex) a.pls 의 파일내용을 수정하면 그 파일에 링크걸린 다른 파일도 함께 수정이 됨.
 
§ 심볼릭 링크
  ln -s  /usr/local/src      work
lrwx---wrx      work-> /usr/local/src
  이렇게 심볼링크를 걸면  cd work 하면 실제  /usr/local/src 이동을 한것이다.
  work를 삭제 해도 /usr/local/src 이 삭제 되는 것은 아니다.
 
* p227 ~ : 허가권(permission)과 소유권(ownership)
 
1. 소유권 변경 : chown ( 오직 관리자에게만 권한이 있음)
             - 파일허가권 형식 : 파일유형,소유자,그룹,외부사용자
             - 한개의 id는 한개의 group (기본원칙)
             -  여러명이 한개의 컴퓨터를 쓰기 때문에 사용하는 개념
 
             # ls -al
             # chown bbb:bbb ccc ( ':' 대신 '.'도 사용가능)
                        bbb(유저id):bbb(그룹id)  ccc(디렉토리명)
                                          -> ccc 디렉토리의 유저아이디와 그룹아이디를 bbb로 바꾼다는 의미.
 
             # chown bbb.bbb ccc -r : 하위 디렉토리까지 전부 소유권이 변경됨.
 
§ 소유권 변경
  chown  아이디:그룹아이디   디렉토리면
 
  chown   aaa:aaa           bbb
 
 
 
2. 허가권 변경 : chmod  (본인과 관리자만 허가권 변경이 가능)
             - 형식 :drwxrwxrwx(d:디렉토리, 본인, 그룹, 외부사용자:421421421)
             - 주로 외부사용자의 값으로 조절
 
             # chmod 707 파일 : 가장 불합리한 퍼미션
             # chmod 700 su : 본인 외의 권한에서는 su명령 사용 불가.)
            
            
3.  4개의 퍼미션을 사용 -> 's'가 들어감. 특정파일을 실행하는 동안만 그 사용자에게 root 권한이 주어짐.
                                        ( send mail에서 많이 사용)
 
             - 운영체제 개발자가 자체적으로 설정.(user들은 별루사용안함.)
 
§ 펴미션
drwx---rwx  
chmod 707   디렉토리명
 =======================================================================
 
 
             # telnet 192.168.2.40
             # su - : root를 얻겠다는 의미임. 원격지 서버에 접속.
             # ssh 192.168.2.44
             # exit : sansung 접속해제
 
<p 234 ~> mount와 umount
- mount : hdd, cdrom, fdd등을 물리적인 장치를 파일시스템으로 인식.
- umount :
# cd /mnt/
# cd cdrom
 : cdrom의 내용을 보기 위해서는 그 시스템을 활성화해야 함.(iso9660 포맷에 저장)
# cd  : 루트로 이동
# mount t iso9660 /dev/cdrom /mnt/cdrom  : 활성화 과정
# cd /mnt/cdrom  : cdrom안의 내용을 확인.
# umount /mnt/cdrom
:cdrom보다 상위디렉토리에서 명령실행
(사용중에는 umount 불가. 비활성상태에서 cdrom 열림.)
<p 198~ > 한글 설치 : zhcon
1. rpm Uvh libgii_0.8.3_2pdc.i686.rpm
2. rpm Uvh libggi_2.0.3_2pdc.i686.rpm
3. rpm Uvh zhcon_0.2.2_2pdc.i686.rpm
4. zhcon
 
* 윈도우용 파일을 리눅스로 끌어와서 실행 : mount시킴
             # fdisk l /dev/had
             # mount t vfat /dev/hda1  /mnt/floppy/
             # cd /mnt/floppy/
             # ls
             # cp autoexec.bat /root/
 
<p236 ~ > 파일시스템 자동 마운트 (/etc/fstab)
 
<p238 ~ > ext3 파일시스템
                           :저널링시스템안에 exe3라는 리눅스시스템이 존재.
<p244 ~ > Disk Quota
             - user 관리차원 (용량할당, 파일갯수제한, 유예기간 등으로 유저에게 사용 제한을
주는 기능
 
<p260 ~ > 압축관리
 
<p290 ~ > shell : bash shell을 기본 쉘로 사용
l bash 관련 설정 파일
1. # pico .bash_history : 본인이 입력한 명령 목록 기록
2. # pico .bash_profile : 도스의 autoexec.bat와 동일한 기능
- 경로(path)를 이용하여 다른 디렉토리에 수록된 명령을 사용가능하게 설정.
                           # su 계정 : 해당계정의 .bash_profile을 읽어들임
                           # su 계정 : 새로운 계정의 .bash_profile이  적용되지 않음.
                           # echo $PATH : 로그인과 함께 설정된 path 상태를 보여줌.
                           # mv /bin/ls  /mnt/
                               : ls 실행시, /mnt/ls 형식으로 실행해야 함.
* path 추가
                                        # pico .bash_profile -> :/mnt만 path에 추가
                                        # su - : root 권한으로 다시 로딩
                                        # echo $PATH
3. # /etc/profile : 시스템 전체의 path가 걸려있는 파일
4. # pico .bashrc
 
<p295 ~ >
             # ls al > aaa.txt : 실행결과가 파일로 저장
             # pico test.sh
                #!/bin/bash
                ls al /home
                tar cvfz aaa.tar.gz /home/aaa
                tar cvfz bbb.tar.gz /home/bbb
             -- 저장 후 종료 (일반유저들의 데이터 백업시 서버관리자가 주로 사용하는 작업.)
             # ./test.sh  (접근거부)
             # chmod 700 test.sh (실행권한 부여)
 
================================================================
 
1. Mount 실습
- # pico /etc/fstab    : fstab파일을 일부러 고장냄.( 부팅이 안됨)
- #shutdown r now (재부팅) 오류
- 1번 CD로 복구( cd로 부팅)
-  부트시 프롬프트 boot: linux rescue (복구모드)
- #fdisk l /dev/had
- #df h  (디스크가 얼마나 사용되었는지 보여줌)
- #cd /mnt/sysimage
- #ls al
 
2. root 패스워드를 잊어버렸을 때
- /etc/shadow 안에 들어가서 root 의 패스워드를 삭제하고 저장
(root로 로그인, 패스워드를 묻지 않고 부팅)
- #passwd로 패스워드 다시 부여
- /etc/fstab
- #sysc : 어떠한 작업후에 memory의 내용을 하드에 그대로 반영해주는 명령.
 
3. <실습> 1번cd 넣고 복구
- #linux rescue  - enter로 진행
- 하드디스크가 마운팅이 안되는 경우
: #mount t ext3/dev/hda2 /dev/hda2 /mnt/sysimage
- sh-2.05b# cd /mnt/sysimage
- sh-2.05b# cd etc
- #pico shadow
- #pico fstab
- #exit (종료후 다시 로그인)
 
4. p304 ~ : x 윈도우
# pico /etc/inittab
    : 리눅스 가동시 가장먼저 읽어들이는 파일로 부팅을 어떻게 할 것인지 설정함.
부팅모드 설정( run level) 3 : 텍스트모드로 부팅(서버용도로 쓰임)
- 5  : x 윈도우로 부팅(gui 방식으로 부팅)
 
 
5. p325 ~ : X 윈도우 매니저
- KDE :
- GNOME : 주로 사용
 
6. p358 ~ : VNC(Virtual Network Compution) 리눅스cd안에 포함.
# vncpasswd  (패스워드 설정)
# vncserver :3 (vncserver를 3번 포트로 열겠다.)
l 윈도우에서 vnc로 리눅스 화면 제어하기
- iwav.co.kr 에서 윈도우용 vnc를 다운받아 설치- 프로그램 목록에 vncviewer 실행
- 상대 컴퓨터에 vncserver가 가동중이어야 함.
- Run winvnc(App mode) : 윈도우에서 vncserver 가동.
l #ifconfig (네트워크상태 확인)
- #ifup eth0 (랜카드 살리기)
- #ifdown eth0 (랜카드 죽이기)
 
7. p361 ~ : RPM 패키지 관리
l rpm : 리눅스용 파일(설치만 하면 사용 가능함)
l 1번cd의 /mnt/cdrom/RedHat/RPMS (rpm 파일들 모음)
 
l rpm 명령
- #rpm ivh aaa.rpm (설치시 버전까지 모두 기입.)
- #rpm -Uvh aaa.rpm
(update시 주로 사용되는 옵션으로 없으면, 설치하고 버전검사까지 자동으로 함.)
-#rpm qa ( 설치된 모든 패키지 출력)
-#rpm qa | grep apache ( 내가 검사하고자 하는 패키지만 확인 : grep 패키지명)
-#rpm e 패키지명
   (삭제시 버전까지는 쓸 필요없음. 프로그램의 이름만 입력하면 됨.
삭제 전에 의존성검사를 하므로 관련 프로그램이 있을 때 삭제 오류)
-#rpm e perl-libwww-perl  --nodeps
    (의존성 검사를 하지 않고 삭제함. 삭제시 주로 사용.
-#rpm Uvh force 패키지명
     ( 기존 설치된 패키지를 무시하고 다시 설치
-#rpm qf 명령이나 파일
     (어느 패키지에 속한 명령인지를 보여줌)
 
============================================================
 
1. rpm 실습
# rpm qa | grep telnet
# rpm e telnet
# rpm e telnet-server
# rpm qa | grep httpd  Þ 웹서버 프로그램
# rpm e httpd Þ 의존성문제로 삭제 오류
# rpm e httpd --nodeps
 
2. telnet 서버 설치부터 가동까지
# telnet 127.0.0.1  Þ 내 pc에 telnet server가 가동되지 않았으므로 접속실패
 
l telnet 설치 : 1번cd와 3번cd의 RedHat/RPMS
# 1번 : rpm Uvh telnet-***.rpm
# 3번 : rpm Uvh telnet-server-***.rpm
    # cd /etc/xinetd.d Þ telnet 설치하면 생김
    # pico telnet
Þ disable 를 no로 변경후 저장
    # /etc/rd.d/init.d/xinetd restart  Þ telnet 서버를 재가동
    # telnet 127.0.0.1 Þ 로그인 창이 뜸
 
p441 Daemon (데몬)
    : 백그라운드 모드로 작동하여 비활성화 상태에서 요청이 있을 때만 동작하는 프로세스. 
1. 슈퍼데몬 :Xinetd Þ 데몬용 프로그램 중 대표적 데몬. 데몬 하나가 여러 개의 프로그
램을 관리해 줌.
2. Standard alone
 
P392 ~ 부트로더 : GRUB
    <특징> 멀티부팅이 자유롭다. (다른 운영체제와 함께 설치시 리눅스를 가장 나중에 설치할 것. 부트로더를 grub로 사용)
  <부팅과정> BIOS Þ 부트로더(GRUB> Þ OS로
 
p395 ~ grub 설정
  # pico /boot/grub/grub.conf
l /etc Þ 설정파일들을 기록하는 디렉토리
- grub 설정 파일
# /boot/grub/grub.conf
                            # /etc/grub.conf 는 심볼링크 파일이다.
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:
  You have a /boot partition.  This means that
#
          all kernel and initrd paths are relative to /boot/, eg.
#
          root (hd0,0)
#
          kernel /vmlinuz-version ro root=/dev/hda3
#
          initrd /initrd-version.img
#boot=/dev/hda
default=0
                         #  dos  
timeout=10
splashimage=(hd0,0)/grub/splash.xpm.gz
title Red Hat Linux (2.4.20-8)
        root (hd0,0)
        kernel /vmlinuz-2.4.20-8 ro root=LABEL=/
        initrd /initrd-2.4.20-8.img
title
  dos
p400 ~ grub 패스워드 설정 : x윈도우 모드에서
# hanterm 실행
# grub
# md5scrypt Þ 패스워드입력Þ비밀번호 암호화코드 블록설정 Þ 스크롤버튼을 드래그
# 다른창으로 hanterm 하나 더 실행
# pico /boot/grub/grub.conf
- eth0 의 아래부분에 붙이기 : shift + insert
l grub 모드가 잘못되어 부팅이 안될 때 1번cd로 부팅후 linux rescue로 복구
 
p 402 ~ 리눅스로 부팅이 안될 때
- 윈도우로 부팅
# fdisk/mbr  Þ grub 모드 전체를 삭제(부트로더가 지워지면 멀티부팅이 안되므
로 도스모드로 부팅이 됨.: 부트로더 초기화)
       - grub 복원
         # linux rescue : 리눅스 1번cd로 부팅
         # df Þ 하드디스크의 장치명이 보여야 함(/dev/hda2 /mnt/sysimage).
없으면 수동으로 하드디스크를 마운트시킬 것.
Þ # mount t ext3 /dev/hda2 /mnt/sysimage
# cd ..
# chroot /mnt/sysimage Þ 루트의 위치를 변경. Cd로 부팅했으나 하드디스크로
부팅한 것처럼 경로를 맞춰줌.
# grub-install /dev/had Þ 하드디스크로 부팅한 것과 같은 상태여야 함.
                       (root의 위치를 하드디스크로 변경)
l grub가 잘못되었을 때 : /boot/grub/grub.conf에서 수정
             # exit 를 두번 입력하면 변경된 환경을 적용하기 위해 재부팅 됨.
 
P404 ~ LILO : grub는 하는 역할은 같다. (우리는 grub만 사용할 꺼야!)
=============================================================
# ftp 192.168.2.40 - 로그인
> 모드변경 대부분의 프로그램이나 데이터파일(bin), 텍스트나 html파일(asc)
> mget *.rpm y로 내려받기
> bye
# rpm Uvh xkobo.***.rpm
# rpm Uvh vsftpd.***.rpm
   @ xkobo 실행 : x 윈도우 상에서 실행
   @ vsftpd : ftp 서버용 프로그램으로 inetd 모드에서 시작해야 한다.
     # /etc/rc.d/init.d/vsftpd start (무조건 처음부터 경로를 지정해서 실행)
     # ./vsftpd start ( 해당 경로로 먼지 이동후 현재경로에서 명령을 실행.)
    @ 실행파일 : 대부분이 패키지명으로 실행이 됨.
 
P455 ~ : 데몬 및 프로세스 관리
   # ps aux
      : PID값을 확인 (프로세스를 구분하는 번호.
일반 프로세스를 실행하면 PID값이 생김)
   # kill 9 PID값
           : zombie 상태의 프로세스를 강제로 죽이는 옵션
      @ 좀비 : 정상적으로 종료 안됨. 완전히 죽은 상태의 프로세스
 
p457 ~ : Background 와 Foreground 작업
    # gimp &  : 내 터미널과 상관없이 프로세스가 별도로 실행된다.
    # ftp ftp.bora.net
      @ ctrl + z : 임시중단
    # bg : 프로세스가 백그라운드에서 실행되게 바꿔줌.
  # fg : 프로세스를 포그라운드로 바꿔줌.
    @ fg나 bg는 예전에 쓰던 방법, 요즘은 창하나를 새로 띄워서 작업함.
  # pstree : 실행중인 프로세스 상태를 트리구조로 보여줌
  # top : 프로세스 상태를 실시간으로 모니터링 하게해줌.
 
P422 ~ : init와 inittab ( 시스템 초기화 프로세스 )
   # pico /etc/inittab
      @ /etc/rc.d/ : 부팅시 rc.d 디렉토리안의 어떠한 파일들을 참조하면서 실행됨
è 대부분 심볼릭링크 파일로 구성. 실제 파일들은 대부분 init.d에 수록
# vsftpd start : 무조건 명령을 path가 걸린 경로를 지정해야 함.(실행안됨)
# ./vsftpd start : 설정된 경로를 검색하지 않고 현재 경로에서 실행파일 로딩
# /etc/rc.d/init.d/vsftpd start : 무조건 경로를 지정하여 실행.
@ p424~ : runlevel
             # ./vsftpd stop
             # ./vsftpd start
             # ftp 127.0.0.1
 
             # ntsysv : 컴퓨터 부팅시 자동실행파일 설정 (서버용 파일)
             # pico /etc/rc.d/rc.local  : 부팅시 자동으로 로딩키는 설정 파일
         § /usr/local/apache/bin/apachect1 start  (경로명 잘 알아둘 것! 담에 접할 경로)
 
p441 ~ : Xinetd 데몬과 데몬관리
             # pstree : 프로세스 상태 확인
             # /etc/rc.d/init.d/vsftpd start
             § standard alone 데몬 : 컴퓨터가 자원을 많이 사용. 사용자가 많은 서버에서 독
립적으로 구현할 때 유리.
             § xinetd 데몬 : 일반 데몬들을 관리해주는 데몬 (대표적 용도 telnet)
p443 ~ : xinetd (슈퍼데몬) : inetd 데몬의 업그레이드 버전. 여러가지 데몬들을 관리.
- 설치는 기본설치로 됨
- 설정파일 : /etc/xinetd.conf  : 가장 기본적인 설정만 기록
- /etc/xinetd.d/ 안에 별도로 수록됨.
# pico /etc/xinetd.conf
# cd /etc/xinetd.d
# pico telnet
# /etc/rc.d/init.d/xinetd  restart
è 설정파일이 적용되려면 다시시작.
§ /usr/sbin/in.telnetd  ( 실제 구동되는 텔넷파일.)
(sbin : 서버용 프로그램 모음, bin : 일반 유저용 프로그램이 주로 저장)
==============================================================
 
§ 웹서버의 종류
- apache : 리눅스기반이 원칙(윈도우에서도 쓰이기는 함.)
-  IIS : 윈도우기반
- WAS(Web Application Server) : 내부적으로는 아파치를 쓰면서, 프로그램 기능을 추가한 서버임. (대용량의 서버에서 많이 사용)
§ 아파치 설치
- RPM으로 설치
- 소스 컴파일로 설치 : 우리가 사용할 방식
§ 설치순서 : MySql -> PHP -> Apache 순으로 설치가 되어야 웹서버 구동됨.
 
§ http://apache.kr.net
- Apache 1.3.31 : 서로 독립적인 버전이므로 뒤의 숫자가 높은 것이 최신버전.
- Apache 2.0.* :
§ Apache 1.3.31 (p796 ~ )
- Apache 내부에 php까지 포함해서 설치
- 기존의 apache서버는 2개의 프로세스가 가동됨( 프로그램 서버와 db서버)
- apache.kr.net -> apache 1.3.31 버전 다운로드
- 압축풀기 : # tar xvfz apache 1.3.31.*
§ 소스로 설치하는 과정
# ./configure : 실행해서 주변상태 검사
# make  -> 컴파일과정
# make install -> 컴파일 된 것을 설치
§ 설치확인
# cd /usr/local/apache/conf
# pico httpd.conf  : 서버네임 변경
# /usr/local/apache/bin/apachectl start
 
 
 
 
 
 
 
 
< 실습 >
             # cd apache_1.3.31
             # ./configure
             # make
             # make install
             # cd /usr/local/apache/conf/
             # pico httpd.conf
        - servername : 본인의 ip 주소로 변경 (line 276)
        # /usr/local/apache/bin/apachectl start  : 가동
§ cd /usr/local/apache/ -> 아파치 설치파일이 저장되는 디렉토리
- /conf -> 환경설정 파일
- /htdocs -> http 관련파일들
            (htdocs 안의 디렉토리 모두 삭제 : 자신만의 html 파일들만 모음)
# pico index.html (/usr/local/apache/htdocs 디렉토리에 저장)
- 브라우저상에서 ip주소를 입력하여 확인. (처음 설정파일이 index.html로 들어감)
# netstat an | more  ( 웹서버 구동후 80 포트가 작동되었는지 확인)
# ntsysv : rpm방식으로 설치시에 등록이 됨.
§ 소스 컴파일로 설치한 서버 -> 부팅시 자동으로 아파치 서버 구동
# pico /etc/rc.d/rc.local
   ( /usr/local/apache/bin/apachect1 start 추가 )
§ http://192.168.2.40/~username (유저들의 홈페이지임을 의미)
<실습> zzz유저에게 홈페이지 공간 할당
# 유저생성 : useradd zzz , passwd zzz
# su zzz
# mkdir public_html ( 반드시 이 디렉토리안에 유저들의 홈페이지 입력)
# cd public_html
# pico index.html
l 브라우저 상에 표시
- forbidden (퍼미션 문제임)
- index.html 의 퍼미션 확인 -> 문제없으면 상위 디렉토리 퍼미션 확인
-> 단계적으로 올라가며 확인해 볼 것.
- 퍼미션 : 701 ( 가장 최적화된 퍼미션임.) , 755(같은 유저들끼리 서로 들어갈 수 있음)
 
 
 
 
§ /usr/local/apache/bin
# pico httpd ( 실제 실행파일)
# pico apachect1 ( start시키면 httpd가 실행됨)
# ./httpd t : httpd.conf의 에러를 검사.
# ./httpd v : 현재 가동중인 아파치의 버전 확인
 
§ cd /usr/local/apache/conf
- httpd.conf.default (설정 초기값이 저장 httpd.conf 내용 초기화시에 사용)
# pico httpd.conf 
- server type standalone ( line 53 ) : 대부분의 웹서버가 독립형으로 구축
- start servers 5 : 서버가동시 여분의 프로세스 개수 지정
- index.html검색 : directoryIndex index.html ( 원하는 파일 추가 가능)
 (사용자가 주소만 입력할 때, 시작페이지를 설정한 파일로 지정.)
- public_html 검색 : userdir public_html  (가급적 변경안함.)
    - nobody 검색 : user nobody , group nobody
( # ps aux | grep httpd : 해당웹서버의 모든 통제권은 root에 있음.
자식프로세스를  nobody로 설정함. 시스템 보호 차원에서 리눅스 설치시 자동 생성되는 자식 프로세스.)
- port 80 : port번호를 내부적으로 바꿀 수 있다.(사용자가 모르게 하기위해)
     - htdocs : document root usr/local/apache/htdocs
(웹서버의 처음 시작페이지의 위지 지정. 홈페이지만 관리할 수 있는 유
저디렉토리로 변경해서 사용- 가상호스팅으로)
 
  =======================================================
* 순서 : MySql  -> Apache -> PHP -> apache ->Zend
 
<down load>
  1. mysql : www.mysql.com - product - mysql4.0 - source downloads -tarball
 
  2. php :  www.php.net - download ->php-4.3.8.tar.gz(4.8mb)
 
 3. Zend Optimizer  : www.zend.com (zendoptimizer-2[1].5.3-linux-blibc21-i386.tar.gz)
 
<설치> : 교재 p799 ~
 1. mysql : 압축풀고 cd mysql.***의 디렉토리로 이동.
     - ./configure --prefix=/usr/local/mysql --with-charset=euc_kr
     - make
    - make install
    - 설치완료후에 db유저만들고 소유권을 설정해줄것.
         # useradd mysql : db를 관리하는 유저생성
         # chown mysql:mysql /usr/local.mysqlvar -R
         # cd /usr/local/mysql/bin
    - 데이터베이스 가동
         #  /usr/local/mysql/bin/mysqld_safe &  : db가동 명령
                             ( & 기호를 사용하여 백그라운드에서 계속 가동중이게 한다.)
         # ps -aux | grep mysql
         # /usr/local/mysql/bin/mysql -u root -p ( db접속 )
             password : 엔터
            mysql>
     - 루트 패스워드 설정
       # /usr/local/mysql/bin/mysqladmin -u root password 123456
 
   * shell에 path 설정 -> /etc/profile
             -> 경로추가 : /usr/local/mysql/bin
 
 
트위터 트위터 페이스북 페이스북 카카오톡 카카오톡
기사입력: 2006/08/26 [08:43]  최종편집: ⓒ iwav
 
 
많이 본 기사