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

PHP5

작성자 정보

  • 웹관리자 작성
  • 작성일

컨텐츠 정보

본문

 

로 그램명 : PHP5
파 일이름   : php-5.0.5.tar.gz
운 영체제   : Linux
라 이센스   : GPL
홈 페이지   : http://kr.php.net


  이번 리뷰는 PHP5에 관해서 다루어 본다.
다 른 간단한 프로그램이나 간단한 툴의 리뷰에서는 설치도 쉽고 특별한 기능도 한정적이므로 명료하게 소개 할 수 있으나 PHP5의 기능을 다 소개하기에는 한계가 있으므로 기존의 PHP4 버전에서 개선된점과 PHP5를 컴파일하여 설치하는 방법 및 PHP5에서 몇가지 팁들을 소개하려고 한다.


  내가 알기에는 PHP5가 나온지가 1년이 벌써 넘이간 것으로 알고있고 현재 PHP5.0.5 릴리즈 버전까지 나오고 있는데 최신버전을 웹에서 받아 설치
하 는데 APM설치함에있어 PHP 설치 부분을 소개하려 한다.


  이번 리뷰를 위해서 Fedora Core 2를 설치하였으며  Mysql - (apache 컴파일만) - PHP5 - APACHE 순의 설치방법중 PHP5부분부터 시작한다.


   먼저 소스파일을 http://kr.php.net/downloads.php#v5 에서 /usr/lcoal/ 아래에 다운받는다.
image
/usr/local/ 에 다운을 받은 후 압축을 푼다.


# wget http://boss.gnux.co.kr/download/linux/FC2/php-5.0.5.tar.gz
# ls
# tar xvfpz php-5.0.5.tar.gz


a

압 축을 풀고
# cd php-5.0.5
해 서 안의 내용을 보 면 옆그림처림 보 일것이다.


이 제 configure 해보자.

다 음과 같이 configure 해준다. 각각의 옵션내용은
./configure --help 를 해보면 상세한 설명이 나와있다.


./configure
--with-apache=/usr/local/apache_1.3.33
--with-zlib --with-gd --with-ttf --with-png
--with-expat-dir=/usr --with-gmp --with-xml
--with-language=korean --with-charset=euc_kr
--disable-debug --disable-rpath --with-iconv
--enable-safe-mode --enable-magic-quotes
--disable-dmalloc --enable-bcmath
--enable-dio --enable-gd-native-ttf
--enable-sysvsem --enable-sysvshm
--enable-wddx --enable-versioning
--enable-pic --enable-inline-optimization
--enable-memory-limit --enable-mbstring
--enable-mbregex --enable-mbstr-enc-trans
--with-config-file- --enable-ftp --disable-debug --enable-track-vars=yes
--with-jpeg-dir --with-freetype-dir
--enable-gd-native-ttf --enable-dl
--enable-gd-imgstrttf --enable-exif
--with-mysql=/usr/local/mysql
c
위 그림과 같이 완료화면을 볼 수가 있다.
./configure가 끝났으면 다음과 같이 해준다.
아 래 -j 4는 CPU가 두 개일때 해주는 옵션으로 컴파일속도를 좀더 빠르게 한다. make install까지 끝나면 설치는 끝난것이며 php.ini-dist를 /usr/local/lib/php.ini 으로 복사하여 register_globals=On 으로 바꾸어준다.
# make -j 4 && make install
# cp php.ini-dist /usr/local/lib/php.ini
# vi /usr/local/lib/php.ini
register_globals=On (Off에서 On 으로 바꾸어주고 저장하고 나옴)


여 기까지가 설치과정이며 나는 APM을 설치하는 중 PHP5만을 컴파일하는것
을 보여준것이므로 아까 경로지정 때문에 APACHE 컨피큘러한 부분에서
나 머지 APACHE 컴파일까지 다 하고 나면 APM이 모두 설치되는 것이다.
혹 시나 이 리뷰만보고 MySql 및 apache를 설치않고 PHP5만 설치하였다고
하 여 웹에서 PHP5를 쓸수있다고 생각하는 사람이 있을까하는 마음에 일러둔다.


만 약에 기존 APM에서(PHP4 --> PHP5)로 업그레이드 하고자 한다면
두 가지 방법이 있다. 첫 번째로 데이터를 백업하고 깔끔하게 APM을 다시
(버 젼대별로 맞추어서)설치하는방법이고 두번째는 PHP5만은 다시 환경에 맞게 컴파일하는 방법이 있다.
후 자의 경우 의존성이나 라이브러리 파일이 없어 설치시 오류를 발생하는 사람이 있는데 이럴때는 php-5.0.5 안에
README.PHP4-TO-PHP5-THIN-CHANGES 파일을 참조하기 바란다.
e
설 치완료된 화면 PHPINFO() 화면이다.
잘 설치되었는지 확인하기 위해서 /usr/local/apache/htdocs/아래에
index.html 파일을 임시로 만든다.
내 용은 phpinfo를 볼수있도록 간략하게 아래와 같이 코딩하고 웹으로 띄워본다. 위와같은 화면이 뜨면 성공한것이다.


vi /usr/local/apache/htdocs/index.htm


< center>PHP5.0.5가 정상정으로 설치되었습니다.</center>
<? phpinfo(); ?>




설 치는 위와같이 해주면 되고 이제 이렇게 설치한 PHP5가 뭐가 달라졌고
어 떠한 것인지 간다하게 살펴보자.


많 은 자료들을 보면 가장 부각된 점이 객체지향을 가장 많이 언급하는 부분이다. 물론 PHP4에도 객체자향을 지원하지만 당연히 버전이 올라감에
따 라 더욱더 많은 연산자들과 지시어들이 추가 된 점을 알 수 있다.
PHP4 이하 버전의 객체지향에서 인스턴스된 객체는 항상 포인터(주소)를
가 지고 제어하는 방식이 아닌, 객체 그 자체를 변수에 올려 놓았었다.
그 로 인해 주소 연산자를 이용한 생성방법만이 자바 또는 C++ 과 같은
방 법의 객체지향 접근을 할 수 있었다.
그 러나 PHP5부터는 그것을 바꾸어 new연산자로 인스턴스된 객체의 변수에
는 객체의 주소가 저장되어, 객체를 사용할 수 있다.
위 에서 말한대로 다음과 같은 연산자와 지시어들이 추가되었다.
private, public, protected,abstract, final, interface, clone,
__constructor, __destructor, __clone, const, static, try, throw, catch,
instanceof, implements 를 들수있다.


특 징은 클래스를 함수 또는 메소드 인자로 넘길 시, 함수 또는 메소드의 원형만으로도 인자가 클래스를 포함 여부와, 또 클래스의 타입까지 알 수 있도록 지원하는 특징으로 상당히 유용함을 알 수 있다.
  자바에서의 강력한 에러 검증 검출 지시어인 try, throw, catch와 함께
사 용법 또한 자바와 매우 비슷하다. 그러므로 프로그램의 신뢰성과, 문제점
해 결 난제를 해결하는데 더 편리하게 되었다.
 static 지시어를 이용한 정적 멤버변수와 멤버메소드를 지원하며 인스턴스
된(오 브젝트) 객체를 복제한다. 이것은 변수 대 변수를 대입시에는 포인터가
대 입되나 clone자시어를 아용한 복제는 객체 자체를 복제한다.
위 에서 언급했듯이 PHP4이전 버전의 객체지향에서는 인스턴스시 객체자체
를 변수에 할당했지만, PHP5부터는 포인터(혹은 핸들)가 되므로 clone이라
는 지시어가 등장하게 되었다.
  마지막으로 언급하고 싶은것은 새로운 메모리 매니저인 젠드 엔진을 가지
고 있다. 이것은 멀티 쓰레드 환경을 위한 지원과 각 요청 후에 할당된 메모리 블록은 보다 효율적이다.


이 것으로 이번 리뷰에서는 문법적인 면보다는 PHP5의 설치및 간략하게 가장 이슈가되는 특징 몇 개를 살펴보았다.
여 기서 한가지 집고 넘어갈것은 버전이 높아짐에 따라 많은 패치가 되고
기 능들이 추가되지만 서버관리자의 입장에서 볼때 안전성을 고려한다면
무 조건 높은 버전만이 좋은 것은 아니라는 것을 말하고 싶다.
설 치과정에서도 언급했듯이 PHP만 설치했다고 서비스를 할수있는것이
아 니라 APACHE + PHP + Mysql 과 같은 구도로 서로 연관되며 구동되고
이 APM도 다른 부수적인(gd같은) 것들과 공존할수있다는 것을 보았을때
항 상 이런 높은 버전들이 하위 다른 연관 프로그램과 마찰이 생길 확률이
많 다는점에 주의해서 설치하고 사용해야 하겠다.



참 고사이트 : http://kr.php.net
test OS    : Linux (Fedora Core 2 [Kernel : 2.6.10-1.771_FC2smp] )
작 성자     : 수퍼유저코리아 안재성 (mymaster@superuser.co.kr)

관련자료

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

공지사항


뉴스광장


  • 현재 회원수 :  60,041 명
  • 현재 강좌수 :  35,855 개
  • 현재 접속자 :  114 명