본문 바로가기

리눅스

레거시 웹 서버 구축

728x90
반응형

레거시 웹 서버 구축 (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
728x90

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/

phpMyAdmin

 

728x90
반응형

'리눅스' 카테고리의 다른 글

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