[CentOS 6.x] APM컴파일 설치 방법 4. PHP 설치

글쓴이 Engineer Myoa 날짜

1. Apache 설치하기

3. MariaDB 설치하기

 

이제 마지막 단원 PHP설치만을 남겨두고있습니다.

남겨둘 거 있나요? 후딱 끝내버립시다.

 

다만 PHP설치에서는 Apache와 MariaDB연동을 위해 약간 더 복잡합니다.

차근차근 해보시면 별 문제 없이 따라오실겁니다.

 

이 글은 atblog 블로그의

http://www.atblog.co.kr/?p=6287

atblog 블로그의 [LINUX/CENTOS] PHP 소스 컴파일 설치 (APACHE 컴파일설치 연동) 글을 참고하여 작성합니다.

 

1. 의존성 라이브러리 패키지 설치

yum install libxml2-devel bzip2-devel libcurl-devel gdbm-devel libvpx libvpx-devel libjpeg-turbo-devel libpng-devel libXpm \
libXpm-devel freetype-devel t1lib t1lib-devel gmp-devel libc-client libc-client-devel pam-devel libicu libicu-devel openldap-devel \
readline-devel libedit-devel libtidy libtidy-devel libxslt libxslt-devel expat* krb5-devel openssl-devel db4-devel

 

libmcrypt도 사전에 컴파일 설치해줍니다.

https://sourceforge.net/projects/mcrypt/files/Libmcrypt/2.5.8/

$ wget https://sourceforge.net/projects/mcrypt/files/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz

$ tar -xvzf libmcrypt-2.5.8.tar.gz
$ cd libmcrypt-2.5.8

$ ./configure
$ make
$ make install


$ ln -s /usr/local/lib/libmcrypt.so.4 /usr/local/lib64/libmcrypt.so.4
// 또는 lib64 폴더가없다면
$ ln -s /usr/local/lib /usr/local/lib64

 

만약 64비트 운영체제라면 아래와 같이 mariadb의 lib폴더를 lib64 심볼릭 링크로 생성한다.

$ ln -s /usr/local/mariadb/lib /usr/local/mariadb/lib64

// root에서 작업하고 있으므로 심볼릭 링크의 소유주도 mysql로 변경해준다.
$ chown -h mysql:mysql /usr/local/mariadb/lib64

 

http://php.net/downloads.php 에서 5.6.x 버전을 받고 설치를 준비한다.

// wget으로 직접 다운로드 받을 수 없어 ssh rz또는 FTP로 수동 업로드

$ yum install lrzsz
// rz로 전송할 분들에 한합니다.
// ssh 접속 클라이언트에서 rz 바이너리를 지원하지 않으면 FTP로 수동으로 업로드해주세요.

$ rz -E

$ tar -xvzf php-5.6.29.tar.gz
// 여러파일이 있다면 정확한 파일명을 입력하여 압축을 풀어주세요.

$ cd php-5.6.29

 

configure에 파라미터가 굉장히 많이 따라붙는다. 2가지 버전이 존재하며

2번째글의 MariaDB를 컴파일 설치한 서버와 설치하지 않은 서버는 파라미터가 약간 다르다.

유의깊게 읽고 선택하여 configuring하기 바란다.

32 비트의 경우는 –with-libdir=lib64 대신 –with-libdir=lib 으로 반드시 변경바람

 

1) MariaDB설치

$ ./configure --prefix=/usr/local/php \
--with-apxs2=/usr/local/apache/bin/apxs --with-config-file-path=/usr/local/apache/conf \
--with-mysql=/usr/local/mariadb --with-mysql-sock=/var/mysql \
--with-mysqli=/usr/local/mariadb/bin/mysql_config \
--with-pdo-mysql=shared,/usr/local/mariadb \
--with-regex=php --with-libxml-dir=/usr \
--with-openssl --with-pcre-regex \
--with-zlib --with-bz2 --with-curl \
--with-gdbm --with-db4=/usr --with-dbm \
--with-pcre-dir=/usr --with-openssl-dir=/usr \
--with-libxml-dir=/usr \
--with-gd \
--with-vpx-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr \
--with-zlib-dir=/usr --with-xpm-dir=/usr \
--with-freetype-dir=/usr --with-t1lib=/usr \
--with-gettext --with-gmp --with-mhash \
--with-imap --with-imap-ssl \
--with-kerberos \
--with-icu-dir=/usr \
--with-ldap --with-ldap-sasl \
--with-libmbfl --with-onig \
--with-mcrypt \
--with-libedit --with-readline \
--with-tidy \
--with-libexpat-dir=/usr --with-xmlrpc --with-xsl \
--with-pear --with-pic \
--with-libdir=lib64 \
--enable-bcmath --enable-calendar \
--enable-exif --enable-ftp --enable-pcntl \
--enable-gd-native-ttf --enable-gd-jis-conv \
--enable-intl --enable-mbstring \
--enable-shmop --enable-sockets \
--enable-sysvmsg --enable-sysvsem --enable-sysvshm \
--enable-wddx --enable-zip \
--enable-mysqlnd \
--enable-dba=shared --enable-mod-charset \
--enable-dom --enable-mbregex --enable-inline-optimization \
--enable-sigchild --enable-soap \
--enable-maintainer-zts \
--enable-opcache=yes

 

2) MariaDB 미설치

$ ./configure --prefix=/usr/local/php \
--with-apxs2=/usr/local/apache/bin/apxs --with-config-file-path=/usr/local/apache/conf \
--with-regex=php --with-libxml-dir=/usr \
--with-openssl --with-pcre-regex \
--with-zlib --with-bz2 --with-curl \
--with-gdbm --with-db4=/usr --with-dbm \
--with-pcre-dir=/usr --with-openssl-dir=/usr \
--with-libxml-dir=/usr \
--with-gd \
--with-vpx-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr \
--with-zlib-dir=/usr --with-xpm-dir=/usr \
--with-freetype-dir=/usr --with-t1lib=/usr \
--with-gettext --with-gmp --with-mhash \
--with-imap --with-imap-ssl \
--with-kerberos \
--with-icu-dir=/usr \
--with-ldap --with-ldap-sasl \
--with-libmbfl --with-onig \
--with-mcrypt \
--with-libedit --with-readline \
--with-tidy \
--with-libexpat-dir=/usr --with-xmlrpc --with-xsl \
--with-pear --with-pic \
--with-libdir=lib64 \
--enable-bcmath --enable-calendar \
--enable-exif --enable-ftp --enable-pcntl \
--enable-gd-native-ttf --enable-gd-jis-conv \
--enable-intl --enable-mbstring \
--enable-shmop --enable-sockets \
--enable-sysvmsg --enable-sysvsem --enable-sysvshm \
--enable-wddx --enable-zip \
--enable-dba=shared --enable-mod-charset \
--enable-dom --enable-mbregex --enable-inline-optimization \
--enable-sigchild --enable-soap \
--enable-maintainer-zts \
--enable-opcache=yes

 

configure: error: xml2-config not found. Please check your libxml2 installation.

과 같은 에러가 발생한다면

$ yum install libxml2-static libxml2-devel

로 xml2 라이브러리를 설치해주자. (위에서 얘기한 의존성 라이브러리 설치를 안해서 그렇다)

 

cannot find openssl’s evp.h

과 같은 에러가 발생한다면

https://www.openssl.org/source/ 에서 가장 최신의 openssl 소스파일을 받은 뒤(최신버전이 아닌 최신입니다. 1.1.x계열을 추천합니다)

$ wget https://www.openssl.org/source/openssl-1.1.0c.tar.gz

$ tar -xvzf openssl-1.1.0c.tar.gz

$ cd openssl-1.1.0c.tar.gz

// 64비트
$ ./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl/etc/ssl --libdir=lib64 shared zlib-dynamic

// 32비트
$ ./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl/etc/ssl --libdir=lib shared zlib-dynamic

$ make
// 오래걸립니다.

$ make install
// SSD환경이나 10K급 SAS가 아니면 오래걸립니다.

후에 위의 configure옵션에서 –with-openssl=/usr/local/openssl로 변경한다.

 

 

off_t undefined 에러발생시 yum install libzip을 수행하고

–enable-zip \ –with-libzip 파라미터를 추가한다.

 

configure가 error메시지없이(warning은 상관없음) 정상적으로 완료 됐다면

이렇게 나올 것이다.

 

이제 고대하던 대망의 make를 실행한다.

$ make

$ make install

(정작 본인은 make에서 오류나서 php 5.5를 컴파일 설치하였다)

 

설치가 완료됐다면

$ vim php.ini-production

.
.
// /를 누르면 검색모드가 된다.
/date.timezone

;date.timezone =
//을
date.timezone = "Asia/Seoul"
// 로 변경하고 저장.

$ cp php.ini-production /usr/local/apache/conf/php.ini

 

apache에서 php모듈을 불러오도록 하는지 체크한다.

$ vim /usr/local/apache/conf/httpd.conf


LoadModule php5_module        modules/libphp5.so
// 가 추가되어있다면 정상


 AddType application/x-compress .Z<br> AddType application/x-gzip .gz .tgz
// 아래에

AddType application/x-httpd-php .php .html
AddType application/x-httpd-php-source .phps
//추가한다.


<IfModule dir_module>
 DirectoryIndex index.html
</IfModule>
// 에서

<IfModule dir_module>
 DirectoryIndex index.html index.php
</IfModule>
// 로 수정

 

현재 /usr/local/php/bin 에 있는 binary파일들을 일반 PATH에 링크해준다.

$ ln -s /usr/local/php/bin/php /bin/php
$ ln -s /usr/local/php/bin/php-config /usr/local/bin/php-config
$ ln -s /usr/local/php/bin/phpize /usr/local/bin/phpize

 

$ php -v

모르쇠로 대동단결 하지않았다면 설치에 성공한 것이다.

 

 

수고하셨습니다.

 

 

카테고리: UNIX/LINUX

6개의 댓글

답글 남기기

Avatar placeholder

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다