apache 2.4 + php 5.5 + mysql 5.6 설치

설치 버전

  • apache-2.4.xx
  • php-5.5.xx
  • mysql-5.6.xx

MySQL 설치

Note : MySQL 소스컴파일 설치하는 과정에 대한 내용이며, 설치 버전은 mysql-5.6의 가장 최신 버전을 사용한다.

mysql user 생성

useradd -r -s /sbin/nologin -M mysql

소스코드 다운로드
Download

다운받은 소스 파일 압축 해제

tar xvzf mysql-5.6.19.tar.gz

필요한 패키지 설치

Note : 설치에 앞서 필요한 패키지를 다운로드 한다.

yum -y install zlib curl gcc g++ gcc-c++ openssl openssl-devel libtermcap-devel ncurses-devel libc-client-devel bzip2-devel bison make cmake

설치

cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DSYSCONFDIR=/etc \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_USER=mysql \
-DMYSQL_TCP_PORT=3306 \
-DENABLE_DOWNLOADS=1
make && make install

설정파일 복사

cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf

시작 스크립트 복사

Note : 부팅시 자동으로 시작 할 수 있게 하기 위해 init 스크립트를 /etc/rc.d/init.d/로 복사한다.

cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld
chmod +x /etc/rc.d/init.d/mysqld
chkconfig mysqld on

기본 데이터베이스 생성

cd /usr/local/mysql
./scripts/mysql_install_db --user=mysql

데이터베이스 구동

service mysqld start

root 패스워드 설정

/usr/local/mysql/bin/mysqladmin -u root password 'YOUR PASSWORD'

OR

/usr/local/mysql/bin/mysql_secure_installation

Apache 설치

Note : 다음은 Apache 소스컴파일 과정이며, 설치 버전은 apache-2.4의 가장 최신 버전을 사용한다.

필요한 패키지 설치

Note : 설치 패키지 내용은 시스템 환경 마다 다소 차이가 있을 수 있다.

yum -y install zlib-devel openldap-devel pcre-devel openssl-devel libxml2-devel

apache 소스 압축 해제

tar xvzf httpd-2.4.10.tar.gz

아파치 소스에 apr 추가

Note : apr 소스 복사 기존 httpd-2.2 소스에는 apr, apr-util 이 포함되 어있었는데 2.4 버전에서 부터는 포함이 되어 있지 않아 수동으로 포함 시켜줘야 하는 번거로움이 있다.

cp apr-1.5.1.tar.gz /usr/local/src/httpd-2.4.10/srclib/
cp apr-util-1.5.3.tar.gz /usr/local/src/httpd-2.4.10/srclib/
cd /usr/local/src/httpd-2.4.10/srclib/
tar xvzf apr-1.5.1.tar.gz
tar xvzf apr-util-1.5.3.tar.gz
mv apr-1.5.1 apr
mv apr-util-1.5.3 apr-util

컴파일

./configure \
--prefix=/usr/local/apache \
--enable-all \
--enable-so \
--enable-rewrite \
--enable-ssl \
--with-include-apr \
--with-mpm=prefork
make && make install

시작 스크립트 복사

cp /usr/local/apache/bin/apachectl /etc/rc.d/init.d/httpd
chmod +x /etc/rc.d/init.d/httpd

구동 스크립트 복사후 아래 내용 추가

vi /etc/rc.d/init.d/httpd

/etc/rc.d/init.d/httpd 파일의 최상단에 다음내용을 추가.

# chkconfig: 2345 90 90
# description: init file for Apache server daemon
# processname: /usr/local/apache/bin/apachectl
# config: /usr/local/apache/conf/httpd.conf
# pidfile: /usr/local/apache/logs/httpd.pid
-----------------------------------------------------

서비스 등록

chkconfig --add httpd
chkconfig httpd on

PHP 설치

Note : 다음 내용은 PHP 소스컴파일 과정에 대한 내용이며, 설치 버전은 php-5.5의 가장 최신버전을 사용한다.

소스파일 압축 해제

tar xvzf php-5.5.17.tar.gz

필요한 패키지 설치

yum -y install libxml-devel curl-devel libjpeg-devel libpng-devel freetype-devel gd-devel libmcrypt-devel bison re2c

컴파일

Note : 컴파일 옵션은 그닥 별다른 사항은 없으나, mysql 연동하는 부분에서 mysqlnd를 사용했다.
mysqlnd를 사용한 이유는 기존 php mysql 연동시 mysql client library를 통해 연동을 했으나 mysql client library를 설치 하지 않아도 mysql 연동이 가능하고, php확장 모듈로 만들어졌기 때문에 php동작과 긴밀하게 연결되어 있어 메모리 관리 측면에서 효율적이다. 또한 mysqlnd는 여러기능의 플러그인을 지원한다.
mysqlnd에 대한 자세한 내용은 http://php.net/manual/kr/intro.mysqlnd.php에서 확인 가능하다.

./configure \
--prefix=/usr/local/php \
--with-apxs2=/usr/local/apache/bin/apxs \
--with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-gd \
--enable-ftp \
--enable-sockets \
--enable-sysvshm \
--with-zlib \
--with-jpeg-dir \
--disable-debug \
--with-curl \
--with-freetype-dir \
--enable-mbstring \
--enable-exif \
--with-iconv \
--with-openssl \
--enable-soap \
--with-mcrypt
make && make install

환경설정 파일 복사

cp /usr/local/src/php-5.5.17/php.ini-production /usr/local/php/lib/php.ini

아파치 환경 설정

vi /usr/local/apache/conf/httpd.conf

httpd.conf 파일에 다음 내용 추가 및 수정

AddType application/x-httpd-php .php .htm .html # 추가
AddType application/x-httpd-php-source .phps # 추가
DirectoryIndex index.php index.html # 이 부분은 찾아서 수정

연동 확인
/usr/local/apache/htdocs/info.php 파일을 만들어 아래 내용을 삽입 후 저장.

<?PHP
  phpinfo();
?>

웹브라우져에서 http://ip-address/info.php 호출해 php information 페이지가 잘 출력되면 성공적으로 설치된 것이다.

댓글 남기기