메뉴 닫기

PHP 가속,최적화 – accelerator 설치

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

accel-4

# 설치 진행한 환경
– CentOS 6.4 64bit
– apache 2.2.23 > /usr/local/apache/
– php 5.2.17 > /usr/local/php/
– Zendoptimizer 3.3.3 > /usr/local/Zend/lib/
– mysql 5.1.63 > /usr/local/mysql/

1. eAccelerator 설치
– eAccelerator 소스파일을 다운받아 phpize 를 이용하여 컴파일 합니다.
[root@localhost src]# wget http://acelnmp.googlecode.com/files/eaccelerator-0.9.6.1.tar.bz2
[root@localhost src]# tar xjvf eaccelerator-0.9.6.1.tar.bz2
[root@localhost src]# cd eaccelerator-0.9.6.1
[root@localhost eaccelerator-0.9.6.1]#
[root@localhost eaccelerator-0.9.6.1]#/usr/local/php/bin/phpize
Configuring for:
PHP Api Version: 20041225
Zend Module Api No: 20060613
Zend Extension Api No: 220060519
[root@localhost eaccelerator-0.9.6.1]# ./configure –enable-eaccelerator=shared –with-php-config=/usr/local/php/bin/php-config
.
.
.

checking whether to build shared libraries… yes
checking whether to build static libraries… no

creating libtool
appending configuration tag “CXX” to libtool
configure: creating ./config.status
config.status: creating config.h
[root@localhost eaccelerator-0.9.6.1]# echo $?
0
[root@localhost eaccelerator-0.9.6.1]# make
.
.
during linking
– use the `-Wl,–rpath -Wl,LIBDIR’ linker flag
– have your system administrator add LIBDIR to `/etc/ld.so.conf’

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
———————————————————————-

Build complete.
Don’t forget to run ‘make test’.

[root@localhost eaccelerator-0.9.6.1]# echo $?
0
[root@localhost eaccelerator-0.9.6.1]# make install
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-zts-20060613/
[root@localhost eaccelerator-0.9.6.1]#
[root@localhost eaccelerator-0.9.6.1]# ll /usr/local/php/lib/php/extensions/no-debug-zts-20060613/
total 420
-rwxr-xr-x 1 root root 382398 2014-09-19 07:05 eaccelerator.so* <– 모듈 생성 확인

accel-3

[root@localhost eaccelerator-0.9.6.1]#

2. eAccelerator 설정

– php.ini를 편집하여 eAccelerator를 적용합니다.

– 적용전 cache에 사용될 디렉토리도 생성하고 권한을 설정 해 줍니다.

– extension_dir은 /usr/local/php/lib/php/extensions/no-debug-zts-20060613/ 입니다
[root@localhost eaccelerator-0.9.6.1]# mkdir /var/tmp/eaccelerator
[root@localhost eaccelerator-0.9.6.1]# chmod 700 /var/tmp/eaccelerator/
[root@localhost eaccelerator-0.9.6.1]# chown nobody /var/tmp/eaccelerator/
[root@localhost eaccelerator-0.9.6.1]# vi /home/APM/apache/conf/php.ini
—————————————————————————————————————-
.
.
.
[Zend]
zend_extension_manager.optimizer=/usr/local/Zend/lib/Optimizer-3.3.3
zend_extension_manager.optimizer_ts=/usr/local/Zend/lib/Optimizer_TS-3.3.3
zend_optimizer.version=3.3.3
zend_extension=/usr/local/Zend/lib/ZendExtensionManager.so
zend_extension_ts=/usr/local/Zend/lib/ZendExtensionManager_TS.so

가장 하단부분에 다음과 같이 추가한다 (옵션 수치는 강제적인 사항은 아니며, 필요에 따라 수정할 수 있다.)

accel-1

[eAccelerator]
extension_dir=/home/APM/php/lib/php/extensions/no-debug-non-zts-20060613
extension=”eaccelerator.so”
eaccelerator.shm_size=”16″
eaccelerator.cache_dir=”/var/tmp/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″

3. apache 재시작

– apache를 재시작하고 php eAccelerator 적용을 확인합니다.

[root@localhost eaccelerator-0.9.6.1]# apachectl restart
[root@localhost eaccelerator-0.9.6.1]# php -v
PHP 5.2.17 (cli) (built: Jan 21 2013 11:42:42)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2010 Zend Technologies

with eAccelerator v0.9.6.1, Copyright (c) 2004-2010 eAccelerator, by eAccelerator
with Zend Optimizer v3.3.9, Copyright (c) 1998-2009, by Zend Technologies
[root@localhost eaccelerator-0.9.6.1]#

accel-2

# eAccelerator 옵션
– eaccelerator.shm_size = eAccelerator가 사용할 공유 메모리량. 단위 MBytes. 0을 지정하면 OS 기본값. default = 0
– eaccelerator.cache_dir = 캐싱 디렉토리를 지정. precompiled code, session data, content 등이 저장된다.
– eaccelerator.enable = eAccelerator 사용 여부. 당연히 1
– eaccelerator.optimizer = 최적화 여부. 1= enable, 0 = disable
– eaccelerator.check_mtime= php 파일 변경시간을 체크하여 반영할 것인지 여부
– eaccelerator.debug = debug 로깅 여부
– eaccelerator.filter = 캐싱할 php 파일을 지정한다. *.php *.html *.php3 처럼 지정할 수
있으며 “” 로 비워두면 모든 php 파일이 캐싱된다.
– eaccelerator.shm_max = eaccelerator_put() 함수 사용할 때 최대 할당할 수 있는 공유 메모리 크기를 bytes단위로 표시한다.
(예. 10240, 10K, 1M). 0은 제한 없음 eaccelerator_put() 함수는 공유메모리에 특정 데이터를 지정한 시간동안 넣어두는
eAccelerator 자체함수이다.
– eaccelerator.shm_ttl = 새 스크립트 파일을 캐싱할만한 공유 메모리가 없다면, ssh_ttl 초동안 액세스가 없는 모든 스크립트를
삭제한다. default = 0. 0은 삭제안함을 의미
– eaccelerator.shm_prune_period= 이 설정은 위의 shm_ttl 설정과 비슷하다.지정한 초보다 오래전에 만들어진 스크립트를 제거한다.
즉, shm_ttl은 액세스시간에, shm_prune_period는 생성시간에 따라 삭제한다. default = 0. 0은 삭제안함을 의미
– eaccelerator.shm_only = 컴파일된 스크립트를 디스크에 캐싱할 것인지 여부. session data와 content 캐싱은 이설정과 무관.
default = 0. 0이면 캐싱을 위해 디스크와 메모리를 모두 사용한다.
– eaccelerator.compress = 캐시된 내용 압축 여부
– eaccelerator.compress_level= 압축 레벨 지정. 9는 최대 압축 레벨

 

 

[polldaddy rating=”7739789″]

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다