2010년 6월 7일 월요일

eAccelerator설치

eAccelerator는 PHP가속, 최적화, 동적 컨텐츠 캐시입니다.(PHP Op-Code Caching) 공유 메모리에 컴파일된 상태에서 캐싱으로 PHP 스크립트의 성능을 향상시킵니다. 실행 속도를 높여 스크립트를 최적화합니다.
tomcat 과 같은 was 에서는 jsp파일을 데몬이 서비스를 올리면서 메모리 상에 올리는것과 같은 역할을 합니다.
한번 접속된 페이지는 일정시간 메모리에 올리기에 동일 사이트 및 페이지에 접속했을 때 디스크 I/O 가 아닌 메모리 I/O가 일어남으로 빠르게 페이지를 보여줄수 있습니다.

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

설치
# yum -y install autoconf-*   를 먼저 설치해준후

다운받은 파일을 압축을 푼후
# ./configure --enable-eaccelerator=shared --with-php-config=/usr/local/php/bin/php-config
# make && make install

make install을 하면 아래와 같이 eacclerator.so 파일의 위치를 알려줍니다.
Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-zts-20060613/

설치가 완료 되면 캐싱된 파일이 저장될 디렉토리를 지정 해줘야 합니다.
저는 /var/tmp/eaccelerator 를 사용하겠습니다 혹은 다른위치에 생성해 준뒤에 owner를 http를 실행하는 유저로 바꿔주시고 위치를 바꿨다면 위 php.ini 파일 중 당연히 eaccelerator.cache_dir="/var/tmp/eaccelerator" 항목을 편집해주어야겠죠

# mkdir /var/tmp/eaccelerator
# chown nobody.nobody /var/tmp/eaccelerator
# chmod 700 eaccelerator

그리고 php.ini을 편집합니다.(추가)
[eAccelerator]
extension_dir=/usr/local/php/lib/php/extensions/no-debug-zts-20060613  // 모듈위치
extension="eaccelerator.so"
eaccelerator.shm_size="0"  // eAccelerator가 사용할 공유 메모리량. 단위 MBytes. 0을 지정하면 기본값 16MBytes. default = 0
eaccelerator.cache_dir="/var/tmp/eaccelerator"  // 캐쉬 디렉토리
eaccelerator.enable="1"  // eaccelerator 사용 여부
eaccelerator.optimizer="1" // 최적화 여부
eaccelerator.log_file = "/usr/local/apache/logs/eaccelerator_log"   // 로그 파일 위치
eaccelerator.check_mtime="1" // php 파일 변경 시간 체크 여부
eaccelerator.debug="0"  
eaccelerator.filter=""  // 캐싱할 php 파일을 지정한다. *.php *.html *.php3 처럼 지정할 수있으며 "" 로 비워두면 모든 php 파일이 캐싱된다.
eaccelerator.shm_max="0" // 자체 함수인 eaccelerator_put() 를 할당할 메모리 크기 (예. 10240, 10K, 1M)
eaccelerator.shm_ttl="0" // 메모리 공간이 부족할 경우 지정한 시간동안  엑세스가 없다면 스크립트 제거. 0은 삭제 안함
eaccelerator.shm_prune_period="0" //지정한 초보다 생성이 오래된 스크립트 제거. 0은 삭제 안함
eaccelerator.shm_only="0" //컴파일된 스크립트를 디스크에 캐싱할 것인지의 여부 판단
eaccelerator.compress="1" // 캐쉬된 내용 압축 여부
eaccelerator.compress_level="9"  // 압축 레벨 지정. 9는 최대 압축
eaccelerator.keys     = "shm_and_disk"
eaccelerator.sessions = "shm_and_disk"
eaccelerator.content  = "shm_and_disk"
eaccelerator.allowed_admin_path = "" // 모니터링 파일이 있는 경로

extension_dir=/usr/local/php/lib/php/extensions/no-debug-zts-20060613
위의 경로는 eacclerator.so 파일의 경로를 기술해줍니다.

저장후 아파치를 재시작한 뒤에 php -v 를 해보면 아래와같이 이전과 다르게 eAccelerator의 내용이 추가 되신걸 보실수 있습니다.

Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies
    with eAccelerator v0.9.6, Copyright (c) 2004-2010 eAccelerator, by eAccelerator    with Zend Extension Manager v1.2.2, Copyright (c) 2003-2007, by Zend Technologies
    with Suhosin v0.9.27, Copyright (c) 2007, by SektionEins GmbH
    with Zend Optimizer v3.3.3, Copyright (c) 1998-2007, by Zend Technologies

마지막으로 한가지만 더해주면 됩니다
모니터링 페이지를 생성하는것입니다
eaccelerator.allowed_admin_path 설정한 디렉토리에 control.php 파일을 복사합니다
control.php 파일은 압축푼 디렉토리안에 있습니다

control.php 파일을 편집

$auth = false;   => false 을 true 로 수정
$user = "admin";         ----> 사용자 아이디를 원하는것으로 수정
$pw = "eAccelerator";    ----> 암호도 원하는것으로 변경하면 됩니다

접속 : http://주소또는IP/control.php

댓글 없음:

댓글 쓰기