[Linux/CentOS] PHP 소스 컴파일 설치 (Apache 컴파일설치 연동) - WEBSHARE

[Linux/CentOS] PHP 소스 컴파일 설치 (Apache 컴파일설치 연동)

phplogo-highres

 

저번에 포스팅한 글중 Apache 설치에 관한 글이 있는데
그 글에서 설치한 Apache와 연동되도록 PHP를 소스 설치하는 방법에 대해 포스팅 한다.
해당 글은  https://www.webshare.co.kr/?p=6255 에 있으니 Apache를 설치하지 않았다면 참고하길..

 

이 전과 마찬가지로 대부분 패키지파일은 내 서버에 올려놓고 해당 링크로 커맨드를 작성하니
필요 버전의 파일은 해당 모듈 홈페이지로 접속해 다운받길 바란다.

해당 포스팅은 Mysql과 연동하지않는 순수 PHP를 기반으로 작성했고
Mysql과 연동하는부분에선 같이 참고로 정보가 작성되어 있으니 이 역시 참고하길
– PHP : http://php.net/downloads.php

 

그리고 이 글을 읽기 전에 Mysql도 설치할 예정이라면 https://www.webshare.co.kr/?p=6305 부터 설치할것!

 

 

가장먼저 의존 라이브러리를 설치한다.

# 두개는 같은 명령어다. 하나씩치려면 위, 한번에 설치하려면 하단
# 개별 설치
$ yum install libxml2-devel
$ yum install bzip2-devel
$ yum install libcurl-devel
$ yum install gdbm-devel
$ yum install libvpx-devel
$ yum install libvpx
$ yum install libjpeg-turbo-devel
$ yum install libpng-devel
$ yum install libXpm libXpm-devel
$ yum install freetype-devel
$ yum install t1lib t1lib-devel
$ yum install gmp-devel
$ yum install libc-client libc-client-devel
$ yum install pam-devel
$ yum install libicu libicu-devel
$ yum install openldap-devel
$ yum install readline-devel
$ yum install libedit-devel
$ yum install libtidy libtidy-devel
$ yum install libxslt libxslt-devel
$ yum install krb5-devel
$ yum install openssl-devel
$ yum install db4-devel
$ yum -y install expat*

# 한번에 설치
yum -y 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를 설치한다. 그리고 심볼생성까지 마무리

$ wget https://www.webshare.co.kr/file/package/libmcrypt-2.5.8.tar.gz
$ tar zxvf 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

 

만약! Mysql을 설치했다면.. 아래 코드를 넣는다. Mysql 라이브러리 참조

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

 

다음 PHP소스를 다운받는다.

# libmcrypt-2.5.8 폴더로부터 다시 나온다.
$ cd ..

# 패키지를 받고 준비
$ wget https://www.webshare.co.kr/file/package/php-5.6.4.tar.gz
$ tar zxvf php-5.6.4.tar.gz
$ cd php-5.6.4

 

이제 PHP를 설치한다
여기서 중요! Mysql을 설치하지 않은상태거나, 설치하지 않을거라면 주석 처리된 부분은 지울것

./configure --prefix=/usr/local/php \
--with-apxs2=/usr/local/apache/bin/apxs --with-config-file-path=/usr/local/apache/conf \
--with-mysql=/usr/local/mysql --with-mysql-sock=/var/mysql \     # Mysql 미사용 삭제
--with-mysqli=/usr/local/mysql/bin/mysql_config \                        # Mysql 미사용 삭제
--with-pdo-mysql=shared,/usr/local/mysql \                                   # Mysql 미사용 삭제
--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 \                                                                           # Mysql 미사용 삭제
--enable-dba=shared --enable-mod-charset \
--enable-dom --enable-mbregex --enable-inline-optimization \
--enable-sigchild --enable-soap \
--enable-maintainer-zts \
--enable-opcache=no

# 대충 아래와 같은 문구가 찍히면 설정 완료!
... 중략
Thank you for using PHP.

config.status: creating php5.spec
config.status: creating main/build-defs.h
config.status: creating scripts/phpize
config.status: creating scripts/man1/phpize.1
config.status: creating scripts/php-config
config.status: creating scripts/man1/php-config.1
config.status: creating sapi/cli/php.1
config.status: creating sapi/cgi/php-cgi.1
config.status: creating ext/phar/phar.1
config.status: creating ext/phar/phar.phar.1
config.status: creating main/php_config.h
config.status: executing default commands


$ make

# 대략 이런 로그...
Installing PHP SAPI module:       apache2handler
/usr/local/apache/build/instdso.sh SH_LIBTOOL='/usr/local/apr/build-1/libtool' libphp5.la /usr/local/apache/modules
/usr/local/apr/build-1/libtool --mode=install install libphp5.la /usr/local/apache/modules/
libtool: install: install .libs/libphp5.so /usr/local/apache/modules/libphp5.so
libtool: install: install .libs/libphp5.lai /usr/local/apache/modules/libphp5.la
libtool: install: warning: remember to run `libtool --finish /home/php-5.6.4/libs'
chmod 755 /usr/local/apache/modules/libphp5.so
[activating module `php5' in /usr/local/apache/conf/httpd.conf]
Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-zts-20131226/
Installing PHP CLI binary:        /usr/local/php/bin/
Installing PHP CLI man page:      /usr/local/php/php/man/man1/
Installing PHP CGI binary:        /usr/local/php/bin/
Installing PHP CGI man page:      /usr/local/php/php/man/man1/
Installing build environment:     /usr/local/php/lib/php/build/
Installing header files:          /usr/local/php/include/php/
Installing helper programs:       /usr/local/php/bin/
  program: phpize
  program: php-config
Installing man pages:             /usr/local/php/php/man/man1/
  page: phpize.1
  page: php-config.1
Installing PEAR environment:      /usr/local/php/lib/php/
[PEAR] Archive_Tar    - already installed: 1.3.12
[PEAR] Console_Getopt - already installed: 1.3.1
[PEAR] Structures_Graph- already installed: 1.0.4
[PEAR] XML_Util       - already installed: 1.2.3
[PEAR] PEAR           - already installed: 1.9.5
Wrote PEAR system config file at: /usr/local/php/etc/pear.conf
You may want to add: /usr/local/php/lib/php to your php.ini include_path
/home/php-5.6.4/build/shtool install -c ext/phar/phar.phar /usr/local/php/bin
ln -s -f /usr/local/php/bin/phar.phar /usr/local/php/bin/phar
Installing PDO headers:          /usr/local/php/include/php/ext/pdo/

# 끝으로 인스톨!
$ make install
#...중략 (그리고 길어서 생략)

 

이다음 환경설정해야 하는부분이 있는데 다른부분은 원하는대로 설정하고
우선 TImezone만 세팅해주자

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

date.timezone = "Asia/Seoul"

 

자 이제 설치가 끝났으나 잘 설치 되있나 확인 해 보자

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

# PHP 모듈이 정상적으로 추가되었는지 확인
LoadModule php5_module        modules/libphp5.so

# 마임타입 추가

    ... 중략 ... 
    AddType application/x-httpd-php .php .html 
    AddType application/x-httpd-php-source .phps


# index.php 연결

    DirectoryIndex index.php index.html


 

끝으로 심볼릭 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

 

설치가 끝났다.
이제 테스트용 문서를 작성하고 확인 해 보자

/usr/local/apache/htdocs 에 아래와 같은 내용으로 phpinfo.php를 만들어 주소창에 타이핑

$echo "" > /usr/local/apache/htdocs/phpinfo.php 

 

여기까지해서 정상적으로 info 화면이 나온다면 끝!


게시됨

카테고리

작성자

태그:

댓글

“[Linux/CentOS] PHP 소스 컴파일 설치 (Apache 컴파일설치 연동)”에 대한 32개의 응답

  1.  아바타
    익명

    굿 입니다.

    1. 김주환 아바타

      감사합니다^^

  2. 에누리쇼핑 (@enurishopping) 아바타

    centos 7 아파치 설치건으로 왔습니다.

    1. 김주환 아바타

      궁금한점은 댓글 주세요ㅎㅎ

  3.  아바타
    익명

    구굿

  4.  아바타
    익명

    공부하려고 왔어용

    1. 김주환 아바타

      좋은 자료가 되시길 바래요ㅎ

  5.  아바타
    익명

    설치에 문제가 있어 방황하다 찾아 들어왔습니다. 좋은 정보 감사합니다.

    1. 김주환 아바타

      방황. .ㅋㅋ
      환경에 따라 사람듀의 메뉴얼과 달리
      자 되지 않을때가 많죠.
      성공하시길ㅎㅎ

  6. hl 아바타
    hl

    참고할께요~

    1. 김주환 아바타

      감사합니다 (__)(–)

  7. 개발자 아바타
    개발자

    ^^ 감사합니다.

    1. 김주환 아바타

      같은 개발자시군요!
      감사합니다.
      버그없이 즐코딩 되는 날을 보내시길 기원하며! ㅋㅋㅋ

  8. 개발자 아바타
    개발자

    본문 확인하려고 댓글 다시 남깁니다.. ㅎㅎ 이 포스팅이 가장 보기 쉬운 것 같아요. 감사합니다.

  9. 김태욱 아바타
    김태욱

    보고싶네요,,

  10. 지대로 아바타
    지대로

    감사합니다^^

    1. 김주환 아바타

      감사합니다 ㅎㅎ
      좋은하루되세요^^

  11.  아바타
    익명

    감사합니다.

  12.  아바타
    익명

    ㅎㅎ 감사합니다.

  13. 김도형 아바타
    김도형

    잘 읽었습니다 좋은 자료 감사합니다

    1. 김주환 아바타

      감사합니다 ㅎㅎ
      도움이 되셨을란지 모르겠네요!
      부디 좋은결과가 있으시길 바래요^^

  14.  아바타
    익명

    configure: error: DBA: Could not find necessary header file(s).
    오류는 어떻게 해결하나요? 구글에 쳐서 yum으로 설치도 해봤는데 안되네요

    1. 김주환 아바타

      # yum install gdbm-devel
      한번 설치 해보시겠나요?

  15. 익명 아바타
    익명

    checking for curl_easy_strerror in -lcurl… yes
    checking for curl_multi_strerror in -lcurl… yes
    checking for QDBM support… no
    checking for gdbm_open in -lgdbm… yes
    checking for GDBM support… yes
    checking for NDBM support… no
    checking for TCADB support… no
    checking for DB4 minor version and patch level… ok
    checking if dba can be used as shared extension… yes
    checking for Berkeley DB4 support… yes
    checking for Berkeley DB3 support… no
    checking for Berkeley DB2 support… no
    checking for DB1 support… no
    checking for dbminit in -ldbm… no
    checking for dbminit in -lc… no
    checking for dbminit in -lgdbm… no
    configure: error: DBA: Could not find necessary library.

    —–
    에러가 발생하여 컴파일 설치가 진행이 되지 않습니다..

    저 에러문구에 대해서 구글링해도 나오는 정보가 거의 없다시피 하여
    php만 따로 yum으로 설치해보았는데 apache와 연동하는 법을 모르겠어 글을 남깁니다..

    에러에 대한 해결책이나 yum으로 설치한 php와 컴파일 설치된 apache와 연동하는 법에 대해서 알 수 있을까요?

    1. 김주환 아바타

      우선 아파치와 PHP를 어떤건 패키지, 어떤건 컴파일설치
      이렇게 분류해서 설치하기보단 두개다 맞추는게 좋으니 그대로 가시는게 좋을거같구요.

      에러내용을 보면 그 말대로 존속성 라이브러리를 찾지 못한다는거에요.
      글 상단에보면 라이브러리들을 많이 설치하고 있는데, 혹시 그중에 설치가 안되는게 있는지 확인해보세요.
      버전에 따라서나 환경에 따라서 설치 안되는 경우나, 라이브러리의(패키지) 이름이 변경되는 경우도 있습니다.
      그렇다면 해당 라이브러리를 찾아서 설치해야지요~

댓글 남기기