출처 : http://www.atblog.co.kr/?p=6287
저번에 포스팅한 글중 Apache 설치에 관한 글이 있는데
그 글에서 설치한 Apache와 연동되도록 PHP를 소스 설치하는 방법에 대해 포스팅 한다.
해당 글은 http://www.atblog.co.kr/?p=6255 에 있으니 Apache를 설치하지 않았다면 참고하길..
이 전과 마찬가지로 대부분 패키지파일은 내 서버에 올려놓고 해당 링크로 커맨드를 작성하니
필요 버전의 파일은 해당 모듈 홈페이지로 접속해 다운받길 바란다.
해당 포스팅은 Mysql과 연동하지않는 순수 PHP를 기반으로 작성했고
Mysql과 연동하는부분에선 같이 참고로 정보가 작성되어 있으니 이 역시 참고하길
– PHP : http://php.net/downloads.php
그리고 이 글을 읽기 전에 Mysql도 설치할 예정이라면 http://www.atblog.co.kr/?p=6305 부터 설치할것!
가장먼저 의존 라이브러리를 설치한다.
Shell
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# 두개는 같은 명령어다. 하나씩치려면 위, 한번에 설치하려면 하단 # 개별 설치 $ 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를 설치한다. 그리고 심볼생성까지 마무리
Shell
1 2 3 4 5 6 7 |
$ wget http://www.atblog.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 라이브러리 참조
Shell
1 |
$ ln -s /usr/local/mysql/lib /usr/local/mysql/lib64 |
다음 PHP소스를 다운받는다.
Shell
1 2 3 4 5 6 7 |
# libmcrypt-2.5.8 폴더로부터 다시 나온다. $ cd ..
# 패키지를 받고 준비 $ wget http://www.atblog.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을 설치하지 않은상태거나, 설치하지 않을거라면 주석 처리된 부분은 지울것
Shell
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 |
./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만 세팅해주자
1 2 3 4 |
$ cp php.ini-production /usr/local/apache/conf/php.ini $ vi /usr/local/apache/conf/php.ini
date.timezone = "Asia/Seoul" |
자 이제 설치가 끝났으나 잘 설치 되있나 확인 해 보자
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
$ 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 등록을 해주자
Shell
1 2 3 |
$ 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를 만들어 주소창에 타이핑
Shell
1 |
$echo "<!--?php phpinfo(); ?-->" > /usr/local/apache/htdocs/phpinfo.php</code> |
여기까지해서 정상적으로 info 화면이 나온다면 끝!