강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

완벽한 웹프로그래밍언어 PHP설치

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

완벽한 웹프로그래밍언어 PHP설치

 

 

 

 

 

 

 APACHE에서 php소스코드를 인식하도록 하기 위해서는 반드시 설치되어야하는 것이며 또한 리눅스에서 가장 많이 사용하는 웹개발언어이기도 한다.

 

 

 

 그리고 바로 이어서 설명하는 PHP ZendOptimizer도 함께 설치해야한다.

 

 

 

 PHP를 설치하기 위하여 wget을 실행하여 다음과 같이 PHP압축소스파일을 가져온다.

 

 

 

  PHP압축소스파일을 가져온 다음 ls로 확인하였다.

 

 

 

 

 

[root@sulinux local]#wget ftp://ftp.linux.co.kr/php/php-5.2.5.tar.bz2

--01:43:52--  ftp://ftp.linux.co.kr/php/php-5.2.5.tar.bz2

           => `php-5.2.5.tar.bz2'

Resolving ftp.linux.co.kr... 210.127.253.100

Connecting to ftp.linux.co.kr|210.127.253.100|:21... connected.

Logging in as anonymous ... Logged in!

==> SYST ... done.    ==> PWD ... done.

==> TYPE I ... done.  ==> CWD /php ... done.

==> SIZE php-5.2.5.tar.bz2 ... 7773024

==> PASV ... done.    ==> RETR php-5.2.5.tar.bz2 ... done.

Length: 7773024 (7.4M)

 

100%[==================================================>] 7,773,024 1.32M/s in 5.6s

 

01:43:58 (1.34 MB/s) - `php-5.2.5.tar.bz2' saved [7773024]

 

[root@sulinux local]#

[root@sulinux local]#ls -l php-5.2.5.tar.bz2

-rw-r--r-- 1 root root 7773024  4 15 01:43 php-5.2.5.tar.bz2

[root@sulinux local]#

 

 

 

그리고 다음은 가져온 PHP압축소스파일을 tar로 압축해제하고 있다.

 

 

 

 압축해제를 하면 “php-버전으로 된 디렉토리가 생성되고 그 디렉토리내에는 PHP파일들이 모두 들어가게 된다.

 

 

 

 

 

[root@sulinux local]#tar xvfj php-5.2.5.tar.bz2

php-5.2.5/

php-5.2.5/ext/

php-5.2.5/ext/gd/

php-5.2.5/ext/gd/gd.c

php-5.2.5/ext/gd/gd_ctx.c

php-5.2.5/ext/gd/libgd/

php-5.2.5/ext/gd/libgd/gd.c

php-5.2.5/ext/gd/libgd/gd.h

php-5.2.5/ext/gd/libgd/gdtables.c

php-5.2.5/ext/gd/libgd/gd_gd2.c

php-5.2.5/ext/gd/libgd/gd_png.c

php-5.2.5/ext/gd/libgd/pngtogd2.c

이하생략

 

 

 

이제 컴파일하기 위하여 생성된 “php-버전디렉토리로 이동하였다.

 

 

 

 

 

[root@sulinux local]#cd php-5.2.5

[root@sulinux php-5.2.5]#

 

 

 

 

그리고 다음과 같이 configure작업을 하였다.

 

 

 

 

 

[root@sulinux php-5.2.5]#./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-apxs2=/usr/local/apache/bin/apxs --enable-ftp

creating cache ./config.cache

checking for Cygwin environment... no

checking for mingw32 environment... no

checking for egrep... grep -E

checking for a sed that does not truncate output... /bin/sed

checking host system type... i686-pc-linux-gnu

checking target system type... i686-pc-linux-gnu

checking for gcc... gcc

checking whether the C compiler (gcc  ) works... yes

checking whether the C compiler (gcc  ) is a cross-compiler... no

중략

Generating files

updating cache ./config.cache

creating ./config.status

creating php5.spec

creating main/build-defs.h

creating scripts/phpize

creating scripts/man1/phpize.1

creating scripts/php-config

creating scripts/man1/php-config.1

creating sapi/cli/php.1

creating main/php_config.h

creating main/internal_functions.c

creating main/internal_functions_cli.c

+--------------------------------------------------------------------+

| License:                                                           |

| This software is subject to the PHP License, available in this     |

| distribution in the file LICENSE.  By continuing this installation |

| process, you are bound by the terms of this license agreement.     |

| If you do not agree with the terms of this license, you must abort |

| the installation process at this point.                            |

+--------------------------------------------------------------------+

 

Thank you for using PHP.

 

[root@sulinux php-5.2.5]#

 

 

 

 

여기서 사용한 configure의 옵션을 간단히 설명하면 다음과 같다.

 

 

 

 

 

--with-apxs2=/usr/local/apache/bin/apxs

 

공유된 APACHE 모듈을 함께 연동하기 위한 컴파일 옵션이다.

 

 

 

 PHPAPACHE를 연동하기위해 php모듈을 DSO방식으로 설정하기 위한 옵션이다.

 

 

 

 또한 만약 APACHE 버전이 아닌 APACHE 1.X 버전을 사용한다면 --with-apxs2대신 --with-apxs를 사용하면 된다.

 

 

 

 그리고 APACHE 1.X버전을 정적으로 설치하였다면 --with-apache=/usr/local/apache와 같이 APACHE가 설치된 절대경로까지 지정해주면 된다.

 

 

 

 

 

--with-mysql

 

설치한 MYSQL PHP를 연동하기 위한 옵션이다.

 

 

 

 MYSQL이 설치된 위치를 지정하지 않는다면 기본적으로 인식하는 MYSQL의 위치는 /usr/local/mysql이다.

 

 

 

 

--with-freetype-dir

 

 

FreeType2를 지원하기 위한 옵션이다.

 

 

 

 설치되어있는 FreeType2의 위치를 절대경로로 지정해도 된다.

 

 

 

 만약 지정하지 않는다면 기본 라이브러리위치에서 찾게 된다.

 

 

 

 

 

--with-zlib-dir

 

 

PHP에서 zlib을 지원하기 위한 옵션이다.

 

 

 

 설치된 디렉토리까지 지정하려면 --with-zlib-dir=/usr/local/zlib과 같이 지정하면 된다.

 

 

 

 

 

--with-jpeg-dir

 

 

PHP에서 jpeg를 지원하기 위한 옵션이다.

 

 

 

 설치된 디렉토리까지 지정하려면 --with-jpeg-dir=/usr/local/jpeg와 같이 지정하면 된다.

 

 

 

 

 

--with-gd

 

 

PHP에서 GD라이브러리관련 함수를 사용하여 GD를 지원하기 위한 옵션이다.

 

 

 

 설치된 위치를 지정하려면 --with-gd=/usr/local 또는 --with-gd=/usr/local/gd등과 같이 지정하면 된다.

 

 

 

 

 

--disable-debug

 

 

PHP ZendOptimizer를 사용하기 위해서는 debugging을 사용하지 않는다.

 

 

 

 따라서 debugging 하지 않도록 설정하기 위하여 사용한 옵션이다.

 

 

 

 만약 PHP ZendOptimizer를 별도로 설치하지 않는다면 이 옵션은 사용하지 않는 것이 좋다.

 

 

 

 

 

그리고 여기서 사용하지는 않았지만 중요한 configure옵션 몇가지만 추가로 설명하겠다.

 

 

 

 

 

--with-config-file-path=/usr/local/lib

 

 

PHP설정파일 php.ini파일이 존재할 위치를 지정한 것이다.

 

 

 

 

 

--enable-ftp

 

PHP에서 FTP관련 함수들을 지원하기 위한 옵션이다.

 

 

 

 

 

--enable-sockets

 

소켓(socket)파일을 사용하기 위한 옵션이다.

 

 

 

 

 

이외에도 PHP에는 configure옵션에서 사용할 수 있는 많은 옵션들이 있다.

 

 

 

 이를 모두 확인해 보려면 “./configure --help”를 실행해 보면 된다.

 

 

 

 

, 그럼 이제 make를 실행한다.

 

 

 

 

 

[root@sulinux php-5.2.5]#make

/bin/sh /usr/local/php-5.2.5/libtool --silent --preserve-dup-deps --mode=compile gcc  -Iext/libxml/ -I/usr/local/php-5.2.5/ext/libxml/ -DPHP_ATOM_INC -I/usr/local/php-5.2.5/include -I/usr/local/php-5.2.5/main -I/usr/local/php-5.2.5 -I/usr/local/include/libxml2 -I/usr/local/php-5.2.5/ext/date/lib -I/usr/local/mysql/include/mysql -I/usr/local/php-5.2.5/TSRM -I/usr/local/php-5.2.5/Zend    -I/usr/include -g -O2  -prefer-non-pic -c /usr/local/php-5.2.5/ext/libxml/libxml.c -o ext/libxml/libxml.lo

이하생략

 

 

 

make가 정상적으로 모두 완료되었을 때에는 마지막에 다음과 같은 “Build complete.”를 볼 수 있다.

 

 

 

 

 

 

Build complete.

Don't forget to run 'make test'.

 

[root@sulinux php-5.2.5]#

 

 

 

이제 “make install”을 실행한다.

 

 

 

 

 

[root@sulinux php-5.2.5]#make install

Installing PHP SAPI module:       apache2handler

/usr/local/apache/build/instdso.sh SH_LIBTOOL='/usr/local/apache/build/libtool' libphp5.la /usr/local/apache/modules

/usr/local/apache/build/libtool --mode=install cp libphp5.la /usr/local/apache/modules/

cp .libs/libphp5.so /usr/local/apache/modules/libphp5.so

cp .libs/libphp5.lai /usr/local/apache/modules/libphp5.la

libtool: install: warning: remember to run `libtool --finish /usr/local/php-5.2.5/libs'

chmod 755 /usr/local/apache/modules/libphp5.so

[activating module `php5' in /usr/local/apache/conf/httpd.conf]

Installing PHP CLI binary:        /usr/local/php/bin/

Installing PHP CLI man page:      /usr/local/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/man/man1/

  page: phpize.1

  page: php-config.1

Installing PEAR environment:      /usr/local/php/lib/php/

[PEAR] Console_Getopt - installed: 1.2.3

[PEAR] Archive_Tar    - installed: 1.3.2

[PEAR] Structures_Graph- installed: 1.0.2

pear/PEAR can optionally use package "pear/XML_RPC" (version >= 1.4.0)

[PEAR] PEAR           - installed: 1.6.1

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

Installing PDO headers:          /usr/local/php/include/php/ext/pdo/

[root@sulinux php-5.2.5]#

 

 

 

 

컴파일이 끝난 디렉토리에는 php.ini-dist라는 파일이 있다.

 

 

 

 이 파일을 /usr/local/lib/php.ini로 이름을 바꾸어서 복사한다.

 

 

 

 

 

[root@sulinux php-5.2.5]#cp php.ini-dist /usr/local/lib/php.ini

[root@sulinux php-5.2.5]#

[root@sulinux php-5.2.5]#ls -l /usr/local/lib/php.ini

-rw-r--r-- 1 root root 45029  4 15 01:55 /usr/local/lib/php.ini

[root@sulinux php-5.2.5]#

 

 

 

이제 PHP설치가 끝났지만 확인해 봐야 할 것이 세가지있다.

 

 

 

 

 

첫번째는 방금 설치했던 PHP의 메인 설정파일인 php.ini파일의 존재여부를 확인하는 것이다.

 

 

 

 다음과 같이 확인해 보자.

 

[root@sulinux php-5.2.5]#ls -l /usr/local/lib/php.ini

-rw-r--r-- 1 root root 45029  4 15 01:55 /usr/local/lib/php.ini

[root@sulinux php-5.2.5]#

 

 

 

두번째는 아파치에서 php모듈을 사용할 수 있도록 httpd.conf파일에 PHP모듈로딩 설정이 되어 있는가를 확인하는 것이다.

 

 

 

 다음과 같이 확인할 수 있다.

 

 

 

 즉 아래 행은 PHP 설치시에 새롭게 httpd.conf파일의 설정으로 추가된 것이다.

 

 

 

 반드시 확인해야 한다.

 

 

 

 간혹 어떤 시스템관리자는 아래 설정을 직접 타이핑을 해서 입력하는 것을 보았는데 이것은 PHP설치시에 자동으로 설정되어 추가되는 것이지 직접 타이핑해서 입력하는 것이 아니다.

 

 

 

 

 

[root@sulinux php-5.2.5]#grep php /usr/local/apache/conf/httpd.conf

LoadModule php5_module        modules/libphp5.so

[root@sulinux php-5.2.5]#

 

 

 

마지막 세번째는 방금 두번째에서 확인한 libphp5.so라는 PHP모듈파일이 아파치 모듈디렉토리에 존재하는가를 확인하는 것이다.

 

 

 

 이 모듈파일 또한 PHP의 설치시에 자동으로 생성된 것이다.

 

 

 

 다음과 같이 확인하면 된다.

 

 

 

 

 

[root@sulinux php-5.2.5]#ls -l /usr/local/apache/modules/libphp5.so

-rwxr-xr-x 1 root root 12794153  4 15 01:54 /usr/local/apache/modules/libphp5.so

[root@sulinux php-5.2.5]#

 

 

 

이제 모든 것이 완벽하게 확인되었다.

 

 

 

 PHP까지 설치가 끝난 것이다.

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,035 명
  • 현재 강좌수 :  35,798 개
  • 현재 접속자 :  129 명