DATA 전문가로 가는 길

[ Linux - Ubunto ] LAMP 설치 구성 [Ubunto8.10, Apache2.2, MySql 5, PHP5, MRTG+SNMP] 본문

OS

[ Linux - Ubunto ] LAMP 설치 구성 [Ubunto8.10, Apache2.2, MySql 5, PHP5, MRTG+SNMP]

EstenPark 2009. 5. 29. 18:08

일주일 정도 삽질과 고통의 연속을 지내면서 문서하나를 작성 하게 되었습니다..
LAMP( Linux, Apache, MySql, PHP ) 세팅 방법과 모니터링을 구현 하기 위하여 MRTG를 선택 했습니다.
Nagios를 설치 하고 싶었으나 오래된 회사의 정책?으로 MRTG를 구성 할 수 밖에 없었습니다.

Ubunto apt-get 명령어를 이용하여 소스설치가 아닌 패키지 설치로 가이드 할 생각이며, 관리 또한 편함...
하지만 설정파일의 위치를 알기 위해서는 조금의 노력이 필요하다고 생각 합니다.

1. 기본적인 설정

1-1 네트워크 설정 (기본적인 설정 : dhcp)
 pubuntu@pubuntu:/etc/network$ cat interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet dhcp
  • dhcp로 할당된 IP 정보이며, Portable Ubuntu 에서는 이상없이 네트워크가 수행 됩니다.
  • 하지만 IP 정보가 어느 순간 변경 될지 모르기 때문에 고정 아이피로 변경 하겠습니다.
1-2 네트워크 설정 (변경된 설정 : 고정 IP)
편집 : sudo /etc/network/interfaces
pubuntu@pubuntu:/etc/network$ cat  /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0

# 이부분 주석 처리 한 후 아래 처럼 설정
#iface eth0 inet dhcp
iface eth0 inet static
    address 192.220.116.82
    netmark 255.255.255.0
    network 192.220.116.0
    broadcast 192.220.116.255
    gateway 192.220.116.1

# hostname 변경
선택1) pubuntu@pubuntu:/etc$ sudo  vi /etc/hostname
estenpark
선택2) pubuntu@pubuntu:/etc$ hostname estenpark

# hosts 변경
pubuntu@pubuntu:/etc$ sudo vi /etc/hosts
127.0.0.1    localhost
127.0.1.1    estenpark
192.220.116.82 www.estenpark.com     <- network interface 설정 한 address

#DNS 설정
pubuntu@pubuntu:/etc$ sudo vi /etc/resolv.conf
168.126.63.1
168.126.63.2
참조 : http://hestory.net/2511070

#Network Restart
pubuntu@pubuntu:/etc$ sudo /etc/init.d/networking restart
sudo: unable to resolve host pubuntu
 * Reconfiguring network interfaces...   Don't seem to be have all the variables for eth0/inet.
Failed to bring up eth0.                                                                                                         [ OK ]

  • ifconfig 명령어를 사용하여 현재 사용하고 있는 eth0(이더넷)을 확인
  • /etc/network/interfaces 네트워크 설정을 변경
  • hostname, hosts, DNS 추가로 하지 않아도 됩니다.
  • 마지막 네트워크 데몬을 재시작 하면 되는데 OK가 아니면 /etc/network/interfaces 설정을 다시 확인
1-3 /etc/apt/sources.list 파일 미러 변경
# 원본
deb http://ar.archive.ubuntu.com/ubuntu/ hardy main restricted
..
..

pubuntu@pubuntu:/etc/apt$ sudo perl -i.bak -pe 's/ar\.archive\.ubuntu\.com/ftp\.daum\.net/g' sources.list
# 변경
deb http://ftp.daum.net/ubuntu/ hardy main restricted
..
..
# 패키지를 설치하면 에러 발생
pubuntu@pubuntu:/etc/apt$ sudo apt-get install libgd2-xpm-dev
sudo: unable to resolve host pubuntu
꾸러미 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다      
상태 정보를 읽는 중입니다... 완료
E: libgd2-xpm-dev 꾸러미를 찾을 수 없습니다

# apt-get의 설정을 업데이트 하면 자동으로 미러가 설정 됨
pubuntu@pubuntu:/etc/apt$ sudo apt-get update
  • APT는 어떤 패키지를 가지고 올 'sources'가 필요하다. 이 파일은 /etc/apt/sources.list 설정 파일
  • Perl One Lines 이용하여 ar.archive.ubuntu.com을 ftp.daum.net로 모두 변경 하고 *.bak 파일 생성
  • 실제로 기본 미러 사이트에서 다운 받으면 오래 걸리지만 다음(미러사이트)에서 조금 빨라 집니다.

2. LAMP 설치

2-1 라이브러리 설치
# this will install some necessary compilers
pubuntu@pubuntu:/etc/apt$ sudo apt-get install build-essential

#Install GD Libraries
pubuntu@pubuntu:/etc/apt$ sudo apt-get install libgd2-xpm-dev


2-2 Apache 설치

################################################################
#기본 구성 ( 기본적으로 구성해야 할 설치 방법 )
################################################################

pubuntu@estenpark:~$ sudo apt-get install apache2 apache2.2-common apache2-mpm-prefork apache2-utils libexpat1 ssl-cert


# 정상 설치 로그
 * Starting web server apache2
apache2: Could not reliably determine the server's fully qualified domain name,
using 127.0.1.1 for ServerName                                                                                      [ OK ]

# 프로세스 확인
pubuntu@estenpark:~$  ps -ef |grep apache |grep -v grep
root      3546     1  0 20:46 ?        00:00:00 /usr/sbin/apache2 -k start
www-data  3547  3546  0 20:46 ?        00:00:00 /usr/sbin/apache2 -k start
www-data  3548  3546  0 20:46 ?        00:00:00 /usr/sbin/apache2 -k start
www-data  3554  3546  0 20:46 ?        00:00:00 /usr/sbin/apache2 -k start
www-data  3555  3546  0 20:46 ?        00:00:00 /usr/sbin/apache2 -k start
www-data  3556  3546  0 20:46 ?        00:00:00 /usr/sbin/apache2 -k start
www-data  3822  3546  0 21:31 ?        00:00:00 /usr/sbin/apache2 -k start

# 웹 페이지 확인
http://localhost/
It works!  (해당 글씨가 나오면 Apache 세팅 완료)

#리스타트를 해주면 open connection을 죽이지 않음
pubuntu@estenpark:~$ sudo apache2ctl gracefu

################################################################
#추가 구성 ( 이부분은 자신의 개별 사이트를 관리 할 때 사용 )
################################################################

# Domain Name 설정 ( nano or gedit 사용)
# mass : 파일 이름 (원하는 파일이름으로 변경 가능)
pubuntu@estenpark:/etc/apache2/conf.d$ sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/masssite

# 파일 생성 후 URL 주소를 설정( 서버이름 )
pubuntu@estenpark:/etc/apache2$ sudo nano /etc/apache2/conf.d/mass
ServerName www.estenpark.com

# 디렉토리 생성 (mkdir 명령어로 쓱싹)
pubuntu@estenpark:~/html/mass$ pwd
/home/pubuntu/html/mass

# Change the DocumentRoot to point to the new location. For example
# Change the Directory directive, replace <Directory /var/www/> to <Directory /home/user/public_html/>
# 위 설명 처럼 웹 문서가 저장 될 장소를 설정
pubuntu@estenpark:/etc/apache2$ sudo nano /etc/apache2/sites-available/masssite
    DocumentRoot /home/pubuntu/html/mass
    <Directory /home/pubuntu/html/mass>


# apache2 명령어를 이용하여 활성화 사이트와 비활성화 사이트를 제시 
# 명령어 사용 방법 : a2dissite(apache2disable) 비활성화 사이트
a2ensite (apache2enable ) 활성화 사이트
# 비활성화 사이트
pubuntu@estenpark:/etc/apache2$ sudo a2dissite /etc/apache2/sites-available/defaul
# 활성화 사이트
pubuntu@estenpark:/etc/apache2$ sudo a2ensite /etc/apache2/sites-available/masssite
# Apache2 재시작
pubuntu@estenpark:/etc/apache2$ sudo /etc/init.d/apache2 restart

# Html 문서 작성
pubuntu@estenpark:/etc/apache2$ echo '<b>Hello! It is working!</b>' > \
/home/pubuntu/html/massl/index.html

# Web Page 확인
http://www.estenpark.com
Hello! It is working!

2-3 Mysql 설치
# 설치 중간에 Password 2번 입력
sudo apt-get install mysql-server libapache2-mod-auth-mysql php5-mysql
# 설치시 패드워드가 누락되면 아래처럼 설정 
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('yourpassword');

# 접속 확인
pubuntu@estenpark:~$ mysql - root -p
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.0.51a-3ubuntu5.4 (Ubuntu)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>

# 에러날 경우 처리 방법 (프로그램을 시도 중 스레드가 생성 되지 않아서 나는 에러로 확인)
pubuntu@estenpark:/var/run/mysqld$ mysql -u root
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

# 위와 같이 에러가 날 경우  in -s 로 링크를 설정
pubuntu@estenpark:/var/run/mysqld$ cd /tmp
pubuntu@estenpark:/tmp$ sudo ln -s /var/run/mysqld/mysqld.sock mysqld.sock
pubuntu@estenpark:/tmp$ sudo /etc/init.d/mysql start &


# IP 접근 범위 설정
pubuntu@estenpark:~$ sudo vim /etc/mysql/my.cnf
...
...
#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
#bind-address            = 127.0.0.1
bind-address            = 192.x          
#bind-address 모두 주석 처리 해도 됨


3. phpmyadmin adn mysql-admin 설치
pubuntu@estenpark:/etc/apache2$ sudo apt-get install phpmyadmin
글 타기 : http://team1ab.textcube.com/6 자세한 설명 나옴

pubuntu@estenpark:/etc/apache2$ sudo apt-get install mysql-admin

4. 환경 설정

4.1 PHP 환경 설정 및  Mysql 연동 방법( Ubuntu 8.10)
# mysql(i).so file 설정
pubuntu@estenpark:~$ gksudo "gedit /etc/php5/apache2/php.ini"
; Directory in which the loadable extensions (modules) reside.
extension_dir = "/usr/lib/php5/20060613+lfs"     
                 => /usr/lib/php5 디렉토리에서 2006****를 확인



# Now create the default directory for extensions
pubuntu@estenpark:~$ sudo mkdir /usr/lib/php5/ext
# Copy the extension file to the new directory
pubuntu@estenpark:~$ sudo cp /usr/lib/php5/20051025/mysql.so /usr/lib/php5/ext/mysql.so


4.2 Apache2 재시작 및 PHP installation 확인
 pubuntu@estenpark:~$ sudo /etc/init.d/apache2 restart
# phpinfo() 를 확인
 pubuntu@estenpark:~$ sudo echo "<?php phpinfo(); ?>" > /home/estenpark/html/mass/test.php

# http://www.estenpark.com/test.php
PHP Version 5.2.4-2ubuntu5.6
..
..
화면이 나온다면 정상 적으로 세팅 완료


세팅 하면서 어려운 점은 없습니다.
사실 sudo apt-get insert로 패키지를 설치하면 크게 설정 변경 하지 않아도 됩니다.
저처럼 정상적으로 설정이 되지 않은 분들이 있을 거라고 생각 합니다.

이제 부터 준비 하려 했던 사이트를 제작 해보려 합니다.
능력이 된다면 웹2.0 버전으로 하고 싶고 모두 Perl로 구성 해보고 싶습니다.

이것 저것 생각 한 것은 많고 실천으로 하기에는 부족 한 현실이 안타깝지만 100개 중에 1개라도 제대로 완성 해보고 싶네요.

이상 Ubuntu 8.10 LAMP 설치 및 기타 옵션에 대한 설명 이였습니다.

mrtg + snmp 설정 부분은 추후 문서화 해드리겠습니다.

참고 자료
================================================================================
             사이트                                                      이름
================================================================================
https://help.ubuntu.com/community/ApacheMySQLPHP   (도와줘~ 우봉이)
http://ubuntuguide.org/wiki/Ubuntu:Hardy_Korea              (우봉이 설치 가이드 정식버전)
http://www.ubuntu.or.kr/                                                (우분투 한국 사용자 모임)
http://team1ab.textcube.com/6                                        (team1ab님)
http://aero.springnote.com/                                            (aero님)
http://sial.org/howto/perl/one-liner/                               (Perl Argument Overview)
http://doc.perl.kr/twiki/bin/view/Wiki/HowToStartPerl        (펄덕펄덕)
http://cafe.naver.com/perlstudy.cafe                                (대한민국Perl커뮤니티)
================================================================================


Comments