[CentOS 6.x] APM컴파일 설치 방법 4. PHP 설치
이제 마지막 단원 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
모르쇠로 대동단결 하지않았다면 설치에 성공한 것이다.
수고하셨습니다.
6개의 댓글