완벽한 웹프로그래밍언어 PHP설치
작성자 정보
- 관리자 작성
- 작성일
컨텐츠 정보
- 2,636 조회
- 0 추천
- 목록
본문
완벽한 웹프로그래밍언어 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 모듈을 함께 연동하기 위한 컴파일 옵션이다.
PHP와 APACHE를 연동하기위해 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까지 설치가 끝난 것이다.
관련자료
-
이전
-
다음