open source/linux

LAMP, APM 설치 (Linux Apache, MySQL, PHP 설치 )

vhrms 2011. 7. 21. 07:12
반응형
출처 : http://www.sysbug.com/renew/bbs/board/view.php?brdCode=board_tech&no=12

작성자 : 김용복 (ruo91@naver.com) - 2009-09-09 PM 8:11 ( 최근 수정 2009-10-24 PM 9:20 )
- 원제목 : LAMP 설치 (Linux Apache, MySQL, PHP 설치 )
- 환 경 : Linux  ( Tested CentOS-5.3, Ubuntu-8.04-LTS )
- 버   전 : Apache-2.2.14, MySQL-5.1.40, PHP-5.2.11

리눅스에서 Apache, MySQL, PHP 설치 방법입니다.
본 글은 소스 설치 기준으로 하며 Build 디렉토리는 "/usr/local/src/" 으로 하고
기본 Install 디렉토리는 "/usr/local/" 로 합니다.

0. Build에 필요한 패키지 설치
레드헷 계열 ( RedHat, CentOS, Fedora ) 
[root@ruo91 ~]# yum install -y gcc gcc-c++ ncurses-devel libtool

데비안 계열 ( Debian, Ubuntu )
[root@ruo91 ~]# sudo apt-get install gcc build-essential libncurses5-dev libtool

1. LAMP에 필요한 라이브러리 설치

- zlib 설치 ( 압축 관련 라이브러리 )
http://www.zlib.net )
[root@ruo91 ~]# mkdir /usr/local/src
[root@ruo91 ~]# cd /usr/local/src
[root@ruo91 ~]# wget http://www.zlib.net/zlib-1.2.3.tar.gz
[root@ruo91 ~]# tar xzvf zlib-1.2.3.tar.gz
[root@ruo91 ~]# cd zlib-1.2.3
[root@ruo91 ~]# ./configure
[root@ruo91 ~]# make && make install && cd .. && rm -rf zlib*

- libpng 설치 ( png 포멧 지원 라이브러리 )
ftp://ftp.simplesystems.org/pub/libpng/png/src )
[root@ruo91 ~]# wget ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.2.40.tar.gz
[root@ruo91 ~]# tar xzvf libpng-1.2.40.tar.gz
[root@ruo91 ~]# cd libpng-1.2.40
[root@ruo91 ~]# make -f scripts/makefile.linux ZLIBLIB=../../lib ZLIBINC=../../include
[root@ruo91 ~]# make -f scripts/makefile.linux install && cd .. && rm -rf libpng*

- jpeg 설치 ( jpeg 포멧 지원 라이브러리 )
http://www.ijg.org/files )
[root@ruo91 ~]# wget http://www.ijg.org/files/jpegsrc.v7.tar.gz
[root@ruo91 ~]# tar xzvf jpegsrc.v7.tar.gz
[root@ruo91 ~]# cd jpeg-7
[root@ruo91 ~]# ./configure
[root@ruo91 ~]# make && make install && cd .. && rm -rf jpeg*

- freetype2 설치 ( 글자 그릴때 사용되는 라이브러리 )
http://ftp.twaren.net/Unix/NonGNU/freetype )
[root@ruo91 ~]# wget http://ftp.twaren.net/Unix/NonGNU/freetype/freetype-2.3.9.tar.gz
[root@ruo91 ~]# tar xzvf freetype-2.3.9.tar.gz
[root@ruo91 ~]# cd freetype-2.3.9/builds/unix
[root@ruo91 ~]# ./configure
[root@ruo91 ~]# cd ../../ && make && make install && cd .. && rm -rf freetype*

- libiconv 설치 ( 문자 변환 지원 라이브러리 )
http://ftp.gnu.org/pub/gnu/libiconv )
[root@ruo91 ~]# wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.tar.gz
[root@ruo91 ~]# tar xzvf libiconv-1.13.tar.gz
[root@ruo91 ~]# cd libiconv-1.13
[root@ruo91 ~]# ./configure
[root@ruo91 ~]# make && make install && cd .. && rm -rf libiconv*

- libxml2 설치 ( XML 지원 라이브러리 )
ftp://xmlsoft.org/libxml2 )
[root@ruo91 ~]# wget ftp://xmlsoft.org/libxml2/libxml2-2.7.3.tar.gz
[root@ruo91 ~]# tar xzvf libxml2-2.7.3.tar.gz
[root@ruo91 ~]# cd libxml2-2.7.3
[root@ruo91 ~]# ./configure 
--with-html --with-http --with-pattern --with-push --with-reader 
--with-regexps --with-threads --with-writer  --with-modules 
--with-zlib=/usr/local/include --with-iconv=/usr/local/include
[root@ruo91 ~]# make && make install && cd .. && rm -rf libxml*

- expat 설치 ( fontconfig 의존성 라이브러리 )
http://sourceforge.net/projects/expat )
[root@ruo91 ~]# wget http://downloads.sourceforge.net/project/expat/expat/2.0.1/expat-2.0.1.tar.gz
[root@ruo91 ~]# tar xzvf expat-2.0.1.tar.gz
[root@ruo91 ~]# cd expat-2.0.1
[root@ruo91 ~]# ./configure
[root@ruo91 ~]# make && make install && cd .. && rm -rf expat*

- fontconfig 설치 ( XML 폰트 패턴중 알맞는 폰트를 사용자에게 보여주는.. )
http://fontconfig.org/release )
[root@ruo91 ~]# wget http://fontconfig.org/release/fontconfig-2.7.3.tar.gz
[root@ruo91 ~]# tar xzvf fontconfig-2.7.3.tar.gz
[root@ruo91 ~]# cd fontconfig-2.7.3
[root@ruo91 ~]# ./configure --with-expat=/usr/local/include
[root@ruo91 ~]# make && make install && cd .. && rm -rf fontconfig*

- gd 설치 ( 그래픽 관련 라이브러리 )
http://www.libgd.org/Downloads )
[root@ruo91 ~]# wget http://www.libgd.org/releases/gd-2.0.35.tar.gz
[root@ruo91 ~]# tar xzvf gd-2.0.35.tar.gz
[root@ruo91 ~]# cd gd-2.0.35
[root@ruo91 ~]# automake && autoconf
[root@ruo91 ~]# ./configure 
--with-png=/usr/local/include 
--with-jpeg=/usr/local/include 
--with-freetype=/usr/local/include 
--with-fontconfig=/usr/local/include 
--with-libiconv-prefix=/usr/local/include
[root@ruo91 ~]# make && make install && cd .. && rm -rf gd*

- Bz2 설치 ( Bzip2 압축 관련 라이브러리 )
http://www.bzip.org/downloads.html )
[root@ruo91 ~]# wget http://www.bzip.org/1.0.5/bzip2-1.0.5.tar.gz
[root@ruo91 ~]# tar xzvf bzip2-1.0.5.tar.gz
[root@ruo91 ~]# cd bzip2-1.0.5
[root@ruo91 ~]# make && make install && cd .. && rm -rf bzip*

2. Apache 설치 http://mirror.apache-kr.org/httpd )
[root@ruo91 ~]# cd /usr/local/src
[root@ruo91 ~]# wget http://mirror.apache-kr.org/httpd/httpd-2.2.14.tar.gz
[root@ruo91 ~]# tar xzvf httpd-2.2.14.tar.gz
[root@ruo91 ~]# cd httpd-2.2.14
[root@ruo91 ~]# ./configure --prefix=/usr/local/apache2 
--enable-mods-shared=most --enable-so --with-mpm=worker --with-z=/usr/local/include
[root@ruo91 ~]# make && make install && cd ..

3. MySQL 설치 ( ftp://ftp.iij.ad.jp/pub/db/mysql/Downloads/ )
[root@ruo91 ~]# wget ftp://ftp.iij.ad.jp/pub/db/mysql/Downloads/MySQL-5.1/mysql-5.1.40.tar.gz
[root@ruo91 ~]# tar xzvf mysql-5.1.40.tar.gz
[root@ruo91 ~]# cd mysql-5.1.40
[root@ruo91 ~]# ./configure --prefix=/usr/local/mysql 
--with-charset=euckr --with-tcp-port=3306 --with-mysqld-user=mysql
[root@ruo91 ~]# make && make install && cd ..

4. PHP 설치 ( http://kr.php.net/downloads.php )
[root@ruo91 ~]# wget http://kr.php.net/distributions/php-5.2.11.tar.gz
[root@ruo91 ~]# tar xzvf php-5.2.11.tar.gz
[root@ruo91 ~]# cd php-5.2.11
[root@ruo91 ~]# cat > install.sh
#!/bin/sh
./configure --prefix=/usr/local/php5 
--with-gd=/usr/local 
--with-zlib-dir=/usr/local/include 
--with-bz2=/usr/local/include 
--with-png-dir=/usr/local/include 
--with-jpeg-dir=/usr/local/include 
--with-iconv-dir=/use/local/include 
--with-libxml-dir=/usr/local/include 
--with-freetype-dir=/usr/local/include 
--with-libexpat-dir=/usr/local/include 
--with-apxs2=/usr/local/apache2/bin/apxs 
--with-exec-dir=/usr/local/apache2/bin 
--with-config-file-path=/usr/local/apache2/conf 
--with-mysql=/usr/local/mysql 
--enable-zip --enable-sockets --enable-gd-native-ttf 
--enable-zend-multibyte
[root@ruo91 ~]# chmod +x install.sh
[root@ruo91 ~]# ./install.sh
[root@ruo91 ~]# make && make install
[root@ruo91 ~]# cp php.ini-dist /usr/local/apache2/conf/php.ini
[root@ruo91 ~]# cd .. && rm -rf *.tar.gz

5. 설정

- MySQL 설정

MySQL 를 실행 할 계정 생성
[root@ruo91 ~]# groupadd mysql
[root@ruo91 ~]# useradd -g mysql -s /bin/false mysql
[root@ruo91 ~]# mkdir /usr/local/mysql/var
[root@ruo91 ~]# chown -R mysql.mysql /usr/local/mysql/var

MySQL DB 설치
[root@ruo91 ~]# /usr/local/mysql/bin/mysql_install_db --user=mysql

MySQL 서비스 관련 심볼링크 생성
[root@ruo91 ~]# ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
[root@ruo91 ~]# ln -s /usr/local/mysql/bin/mysqladmin /usr/bin/mysqladmin
[root@ruo91 ~]# ln -s /usr/local/mysql/bin/mysqldump /usr/bin/mysqldump
[root@ruo91 ~]# ln -s /usr/local/mysql/bin/mysqlshow /usr/bin/mysqlshow

MySQL 설정 파일 복사
[root@ruo91 ~]# cd /usr/local/mysql/share/mysql
[root@ruo91 ~]# cp -p my-medium.cnf /etc/my.cnf

MySQL 실행 스크립트 복사
[root@ruo91 ~]# cd /usr/local/mysql/share/mysql
[root@ruo91 ~]# cp -p mysql.server /etc/rc.d/init.d/mysqld

MySQL 데몬 시작
[root@ruo91 ~]# /etc/rc.d/init.d/mysqld start
Starting MySQL..[  OK  ]

MySQL 루트 비밀번호 설정
[root@ruo91 ~]# mysqladmin -u root password '비밀번호'


MySQL 사용자 계정 추가
[root@ruo91 ~]# mysql -u root -p
mysql> 
GRANT ALL ON blog.* TO '사용자ID'@'localhost' IDENTIFIED BY '비밀번호' WITH GRANT OPTION;

MySQL 데이터베이스 생성
mysql> CREATE DATABASE blog;
mysql> flush privileges;
mysql> exit

- Apache 설정
[root@ruo91 ~]# vi /usr/local/apache2/conf/httpd.conf

httpd.conf 내용중 필요한 것들을 수정/추가
#
# 서버 디렉토리
ServerRoot "/usr/local/apache2"
#
# 서버 관리자의 이메일
ServerAdmin ruo91@naver.com
#
# 서버 이름을 지정
ServerName www.yongbok.net:80
#
# 웹서버로 사용할 포트
Listen 80
#
# 웹서버를 apache 라는 사용자와 그룹으로 실행
User apache
Group apache
#
# 기본 인덱스 파일 지정
<IfModule dir_module>
    DirectoryIndex index.htm index.html index.php
</IfModule>
#
# PHP 를 사용하기 위한 옵션 추가
<IfModule mod_php3.c>
 AddType application/x-httpd-php3 .php3 .htm .html
 AddType application/x-httpd-php3-source .php3s
</IfModule>
<IfModule mod_php4.c>
 AddType application/x-httpd-php .php .htm .html
 AddType application/x-httpd-php-source .phps
</IfModule>
<IfModule mod_php5.c>
 AddType application/x-httpd-php .php .htm .html
 AddType application/x-httpd-php-source .phps
</IfModule>

아파치 시작
[root@ruo91 ~]# /usr/local/apache2/bin/apachectl start

아파치 데몬 확인
[root@ruo91 ~]# ps -aux | grep httpd
root     16315  0.0  0.8  20584  8652 ?        Ss   04:19   0:00 /usr/local/apache2/bin/httpd -k start
apache   16316  0.0  0.7  20584  7956 ?        S    04:19   0:00 /usr/local/apache2/bin/httpd -k start
apache   16317  0.0  0.7  20584  7956 ?        S    04:19   0:00 /usr/local/apache2/bin/httpd -k start
apache   16318  0.0  0.7  20584  7956 ?        S    04:19   0:00 /usr/local/apache2/bin/httpd -k start
apache   16319  0.0  0.7  20584  7956 ?        S    04:19   0:00 /usr/local/apache2/bin/httpd -k start
apache   16320  0.0  0.7  20584  7956 ?        S    04:19   0:00 /usr/local/apache2/bin/httpd -k start

PHP 작동 여부 확인
[root@ruo91 ~]# echo '<?php phpinfo(); ?>' > /usr/local/apache2/htdocs/phpinfo.php