레거시 웹 서버 구축 (Apache 2.2 + PHP 5.2 + MySQL 5.1 설치)
1. 설치 환경
구분 : 버전 : 설치 경로
Web Server : Apache httpd 2.2.16 : /usr/local/apache2
Application : PHP 5.2.14 : /usr/local/php
Database : MySQL 5.1.50 : /usr/local/mysql
PHP Accelerator : Zend Optimizer 3.3.3 : -
DB 관리 : phpMyAdmin 3.3.7 : Apache DocumentRoot
Character Set : EUC-KR : MySQL
전체적인 구성

2. 설치 패키지
주요 소프트웨어
- mysql-5.1.50
- httpd-2.2.16
- php-5.2.14
- ZendOptimizer-3.3.3
- phpMyAdmin-3.3.7
3. 사전 라이브러리 설치
PHP를 소스에서 컴파일하기 위해 GD, JPEG, PNG, FreeType, XML, OpenSSL, mhash 등의 개발 라이브러리를 먼저 설치한다.
yum -y install \
gd gd-devel \
libpng libpng-devel \
libjpeg libjpeg-devel \
freetype freetype-devel \
libxml2 libxml2-devel \
openssl openssl-devel \
mhash mhash-devel
기능
- GD → 이미지 처리
- libpng → PNG
- 이미지 처리 libjpeg → JPEG 이미지 처리
- FreeType → 폰트 처리
- libxml2 → XML 처리
- OpenSSL → SSL/TLS 관련 기능
- mhash → 해시 관련 기능
4. MySQL 설치
MySQL 계정 생성
useradd -m -c "MySQL Server" -d /usr/local/mysql -s /bin/false -u 27 mysql
소스 컴파일
- configure
./configure \
--prefix=/usr/local/mysql \
--localstatedir=/usr/local/mysql/data \
--with-charset=euckr \
--with-extra-charsets=all
- 컴파일 및 설치
make && make install
MySQL 기본 설정
cp /usr/local/mysql/share/mysql/my-huge.cnf /etc/my.cnf
데이터베이스 시스템 테이블을 초기화
/usr/local/mysql/bin/mysql_install_db
데이터 디렉터리의 소유권을 MySQL 계정으로 변경
chown -R mysql:mysql /usr/local/mysql/data
MySQL을 기동
/usr/local/mysql/bin/mysqld_safe &
설치 후 프로세스가 정상적으로 실행되고 있는지 확인
ps -ef | grep mysqld
또는 MySQL 클라이언트를 이용하여 접속 여부를 확인
/usr/local/mysql/bin/mysql -uroot
5. Apache HTTP Server 설치
Apache 계정 생성
useradd -c "Apache" -u 48 -s /sbin/nologin apache
Apache 컴파일 configure
./configure \
--prefix=/usr/local/apache2 \
--enable-so \
--enable-rewrite \
--enable-ssl \
--enable-proxy \
--enable-modules=all
컴파일 및 설치
make
make install
Apache 기동
/usr/local/apache2/bin/apachectl start
Apache 프로세스를 확인
ps -ef | grep httpd
설정 파일의 문법도 확인
/usr/local/apache2/bin/apachectl -t
6. PHP 설치
PHP는 Apache의 mod_php 방식으로 연동하기 위해 apxs2를 사용하여 컴파일한다.
./configure \
--prefix=/usr/local/php \
--with-mysql=/usr/local/mysql \
--with-apxs2=/usr/local/apache2/bin/apxs \
--enable-sysvshm=yes \
--enable-sysvsem=yes \
--enable-debug=no \
--with-ttf \
--with-png-dir=/usr \
--with-zlib-dir \
--with-jpeg-dir=/usr \
--with-gdbm=/usr \
--enable-ftp \
--enable-mbstring \
--enable-sockets \
--enable-wddx \
--with-freetype-dir=/usr \
--enable-bcmath \
--with-curl \
--with-mcrypt \
--enable-mbregex \
--enable-exif \
--with-gd \
--enable-gd-native-ttf \
--enable-calendar \
--with-openssl \
--with-libxml-dir
컴파일 및 설치
make
make install
PHP 설정 파일을 복사
cp /usr/local/src/php-5.2.14/php.ini-dist /usr/local/php/lib/php.ini
7. Apache와 PHP 연동
PHP를 --with-apxs2 옵션으로 빌드했기 때문에 설치 과정에서 Apache용 PHP 모듈이 생성된다.
/usr/local/apache2/modules/libphp5.so
Apache 설정
vi /usr/local/apache2/conf/httpd.conf
# Example:
# LoadModule foo_module modules/mod_foo.so
LoadModule php5_module modules/libphp5.so
#
- 수동 추가
AddType application/x-httpd-php .ph .php .php3 .inc .asp .html
AddType application/x-httpd-php-source .phps
# AddHandler allows you to map certain file extensions to "handlers":
<IfModule dir_module>
DirectoryIndex index.html index.htm index.php
</IfModule>
Apache 재시작
문법 검사
/usr/local/apache2/bin/apachectl -t
Apache를 재시작
/usr/local/apache2/bin/apachectl restart
graceful 방식은 기존 요청을 처리한 후 자식 프로세스를 종료하고 새로운 설정을 다시 읽는 방식
/usr/local/apache2/bin/apachectl graceful
8. PHP 동작 확인
Apache DocumentRoot 테스트 파일 생성
vi /usr/local/apache2/htdocs/phpinfo.php
<?php phpinfo(); ?>
웹 브라우저 접속
http://서버IP/phpinfo.php
9. Zend Optimizer 설치
기존 PHP 애플리케이션에서 Zend Optimizer가 필요한 경우 제공된 설치 프로그램을 실행한다
sh install.sh
/usr/local/php/bin/php -i | grep -i zend
10. phpMyAdmin 설치
phpMyAdmin은 별도의 컴파일 과정 없이 Apache가 서비스하는 DocumentRoot 아래에 배치하여 사용할 수 있다.
cd /usr/local/apache2/htdocs
tar xvf phpMyAdmin-3.3.7.tar.gz
mv phpMyAdmin-3.3.7 phpMyAdmin
웹 브라우저 접근
http://서버IP/phpMyAdmin/

'리눅스' 카테고리의 다른 글
| MySQL 환경 변수 (0) | 2013.09.08 |
|---|---|
| 라우팅 프로토콜의 일반적인 설명 (0) | 2013.09.07 |
| 포트 및 프로토콜 (1) | 2013.09.04 |
| Apache 서버에서 발생한 문제를 해결하는 방법 (1) | 2013.09.04 |
| mount 명령어 (1) | 2013.09.04 |