'zend'에 해당하는 글 1건

eAccelerator

Server/CentOS 2009. 12. 14. 21:56
eAccelerator는 PHP가속, 최적화, 동적 컨텐츠 캐시입니다.(PHP Op-Code Caching)
  • 공유 메모리에 컴파일된 상태에서 캐싱으로 PHP 스크립트의 성능을 향상시킵니다.
  • 실행 속도를 높여 스크립트를 최적화합니다.
  • 서버의 로드를 줄이고 PHP 코드를 1~10배 빠르게 합니다.

* 요구사항
php4 or php5 / autoconf / automake / libtool / m4


1. eAccelerator 다운로드
# wget http://bart.eaccelerator.net/source/0.9.6/eaccelerator-0.9.6-rc1.tar.bz2


2. 압축풀기
# tar jxvf eaccelerator-0.9.6-rc1.tar.bz2
# cd eaccelerator-0.9.6-rc1


3. eAccelerator 컴파일
eAccelerator 를 컴파일 하려면 PHP 버전의 phpize 스크립트를 사용해야 합니다. (php-devel 패키지에 있음)
php 만 설치했다면 소스 디렉토리에서 다음의 명령을 실행합니다.
# phpize
# ./configure
# make

php 설치나 phpize / php-config 스크립트가 path 설정이 되어 있지 않다면 다음과 같이 해야 합니다. (prefix=php 설치 디렉토리)
# export PHP_PREFIX="/usr/local"
# $PHP_PREFIX/bin/phpize
# ./configure --enable-eaccelerator=shared --with-php-config=$PHP_PREFIX/bin/php-config
# make


4. eAccelerator 설치
# make install
Installing shared extensions:     /usr/local/lib/php/extensions/no-debug-non-zts-20090626/

이 명령으로 이전에 생성된 eAccelerator 바이너리가 php 확장 디렉토리에 복사될 것이고,
명령이 끝나면서 eAccelerator가 설치된 디렉토리를 출력할 것입니다.


5. eAccelerator 설정
eAccelerator 를 Zend나 PHP 확장으로 설치하고, php.ini 파일을 수정합니다.
zend_extension으로 eAccelerator를 설치하면, eaccelerator.so 라이브러리의 전체 경로를 지정합니다.

* Zend 확장 설치시 (zend 설정 위에)
zend_extension="/usr/local/lib/php/extensions/no-debug-non-zts-20090626/eaccelerator.so"
eaccelerator.shm_size="16"
eaccelerator.cache_dir="/var/cache/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"

만약 PHP의 thread safe build를 사용한다면, 'zend_extension' 대신 'zend_extension_ts'를 사용해야 합니다.

* PHP 확장 설치시
extension="eaccelerator.so"
eaccelerator.shm_size="16"
eaccelerator.cache_dir="/var/cache/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"


6. 캐쉬 디렉토리 생성
마지막으로 매우 중요한 단계로, 캐쉬 디렉토리를 생성합니다.
기본값은 /tmp/eaccelerator 이지만, 대부분의 시스템에서 이 디렉토리는 재부팅시에 삭제되므로 좋은 방법이 아닙니다.
/var/cache/eaccelerator 정도에 생성하면 좋습니다.
디렉토리를 생성하고 웹서버를 실행하는 사용자가 eAccelerator를 실행 가능하게 해야 합니다.
Apache나 Lighttpd 처럼 PHP를 실행하는 사용자로 디렉토리의 소유권을 바꿔주고, 0644 권한으로 지정하는 것이 좋습니다.
# mkdir -p /var/cache/eaccelerator
# chmod 0644 /var/cache/eaccelerator
# chown daemon:daemon /var/cache/eaccelerator


7. 작동 확인
eAccelerator가 실행될 웹서버를 재시작합니다.
# /etc/init.d/httpd restart



autoconf error

# export PHP_PREFIX="/usr/local"
# $PHP_PREFIX/bin/phpize
Configuring for:
PHP Api Version:         20090626
Zend Module Api No:      20090626
Zend Extension Api No:   220090626
Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.


* autoconf 패키지 설치로 해결
# yum -y install autoconf


WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,