- This topic has 1개 답변, 2명 참여, and was last updated 14 years, 12 months 전에 by ELem. This post has been viewed 6056 times
-
-
"yum(rpm)으로 APM 연동설치"(https://www.fedoralinux.or.kr/forums/topic/12171) 의
다음글정도가 되겠습니다
위 링크 글에서 APM설치한 내역대로 이어서 zend optimizer 와 eAccelerator를 설치합니다
[참고] 업데이트 페도라 33 버전을 대상으로 한 APM 연동 설치글이 업데이트 되었습니다.
최근 버전 대상으로 작성된 내용으로 다음 포스팅을 확인 하시면 되며
최근에는 zend optimizer 와 eAccelerator 대신 PHP OpCache 를 사용 하고 있습니다
https://www.fedoralinux.or.kr/forums/topic/20566
zend optimizer 설치
http://www.zend.com/en/products/guard/downloads
로가서 os와 아키텍처에 맞는 버전을 다운받습니다
사용한버전은
ZendOptimizer-3.3.9-linux-glibc23-i386.tar.gz 입니다
적당한 위치에서 압축을 풉니다
# tar zxvf ZendOptimizer-3.3.9-linux-glibc23-i386.tar.gz
3.3.9 버전부터는 이전버전의 install.sh 이 제공 되지 않습니다 일단 설치된 php버전을 확인합니다
# php -v
PHP 5.2.12 (cli) (built: Dec 19 2009 01:51:45)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies
위 내용으로 5.2.12 으로 알수있습니다
압축풀고 디렉토리안에 data 디렉토리 안에 보면 아래와같이 버전별로 디렉토리가 있습니다
4_2_0_comp 4_2_x_comp 4_3_x_comp 4_4_x_comp 5_0_x_comp 5_1_x_comp 5_2_x_comp
PHP버전별로 나뉘어져 있는것인데요
php버전에 따른 zend모듈을 복사 합니다
# cd ZendOptimizer-3.3.9-linux-glibc23-i386/data/5_2_x_comp
# cp ZendOptimizer.so /usr/lib/httpd/modules/
php.ini 에 아래 내용을 추가합니다
[Zend]
zend_optimizer.version=3.3.9
zend_extension=/usr/lib/httpd/modules/ZendOptimizer.so
그리고 php –v 를 하면 전과 다르게 Zend Optimizer v3.3.9가 보입니다
추가후 혹시 php -v 하였을시 아래와 같이 나온다면
Failed loading /usr/lib/httpd/modules/ZendOptimizer.so: /usr/lib/httpd/modules/ZendOptimizer.so:
cannot restore segment prot after reloc: Permission denied
레드햇 계열인 rhel 이나 fedora나 centos인 경우에는
일단 setenforce 0 으로 selinux 기능을 끄시면 되고
vi /etc/sysconfig/selinux 열어서 SELINUX=enforcing 되어있는거을 disabled 로 변경하시면
다음부팅에도 selinux가 비활성화 됩니다eAccelerator 설치
eAccelerator는 PHP가속, 최적화, 동적 컨텐츠 캐시입니다.(PHP Op-Code Caching) 공유 메모리에 컴파일된
상태에서 캐싱으로 PHP 스크립트의 성능을 향상시킵니다. 실행 속도를 높여 스크립트를 최적화합니다
tomcat 과 같은 was 에서는 jsp파일을 데몬이 서비스를 올리면서 메모리 상에 올리는것과 같은 역할을 합니다
한번 접속된 페이지는 일정시간 메모리에 올리기에 동일 사이트 및 페이지에 접속했을 때
디스크 I/O 가 아닌 메모리 I/O가 일어남으로 빠르게 페이지를 보여줄수 있습니다
**yum 으로 설치가능하지만 php가 yum으로 설치하지않고 소스설치하여 eAccelerator도
소스설치를 합니다 php를 yum 으로 설치하게 되면 같이 수정 하겠습니다
다운로드
wget http://bart.eaccelerator.net/source/0.9.6/eaccelerator-0.9.6-rc1.tar.bz2
설치
# yum -y install autoconf-2.63-3.fc12
를 먼저 설치해준후 다운받은 파일을 압축을 푼후 디렉토리로 이동하여
# phpize
를 먼저 실행해줍니다 설치가 되어있지 않다면
yum -y install php-devel.i386
php-devel 패키지를 설치해주면 /usr/bin/ 위치에 phpize 가 위치 합니다
phpize 를 하게 되면 정상적으로 몇개의 파일이 더생성되며 configure 파일도 생성 됩니다
# ./configure
# make
# make install
make install을 하면 아래와 같이 eacclerator.so 파일의 위치를 알려줍니다
Installing shared extensions: /usr/local/lib/php/extensions/no-debug-non-zts-20060613/
그리고 php.ini 을 편집 합니다.
[eAccelerator]
extension_dir=/usr/local/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"
extension_dir=/usr/local/lib/php/extensions/no-debug-non-zts-20060613
위의 경로는 eacclerator.so 파일의 경로를 기술해 줍니다
마지막으로 cache 디렉토리를 생성합니다.
저는 /var/tmp/eaccelerator 를 사용하겠습니다
혹은 다른위치에 생성해 준뒤에 owner를 http를 실행하는 유저로 바꿔주시고(저같은경우는 apache로변경) 위치를 바꿨다면 위 php.ini 파일 중 당연히 eaccelerator.cache_dir="/var/tmp/eaccelerator" 항목을 편집 해주어야겠죠
저장후 아파치를 재시작한 뒤에 php -v 를 해보면 아래와같이 이전과 다르게 eAccelerator 의 내용이 추가 되신걸 보실수 있습니다
http://주소/phpinfo.php 로 확인해보면 아래와같이 eAccelerator내용이 추가된걸 확인할수있습니다
[Zend Optimizer / eAcclerator / 수호신 모두 정상적으로 올라온 셋팅]
아래는 상세 설명입니다
[eaccelerator]
zend_extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so" // 모듈위치
eaccelerator.shm_size = "32" // eAccelerator가 사용할 공유 메모리량. 단위 MBytes. 0을 지정하면 OS 기본값. default = 0eaccelerator.cache_dir = "/tmp/eaccelerator" // 캐쉬 디렉토리
eaccelerator.enable = "1" // eaccelerator 사용 여부
eaccelerator.optimizer = "1" // 최적화 여부
eaccelerator.debug = 0
eaccelerator.log_file = "/var/log/httpd/eaccelerator_log" // 로그 파일 위치
eaccelerator.name_space = ""
eaccelerator.check_mtime = "1" // php 파일 변경 시간 체크 여부eaccelerator.filter = "" 캐싱할 php 파일을 지정한다. *.php *.html *.php3 처럼 지정할 수있으며 "" 로 비워두면 모든 php 파일이 캐싱된다.
캐싱할 파일 지정 *.php 이면 php 파일만 , default 값이면 모든 파일 캐슁
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 = "모니터링 파일이 있는 경로"마지막으로 한가지만 더해주면 됩니다
모니터링 페이지를 생성하는것입니다
php.ini 파일에 eaccelerator.allowed_admin_path 옵션을 한줄더 넣어줍니다.
예시 ) eaccelerator.allowed_admin_path = "/var/www/eAccelerator"
위에서 설정한 디렉토리에 control.php 파일을 복사합니다
control.php 파일을 압축푼 디렉토리안에 있습니다
control.php 파일을 편집
$auth = false; => false 을 true 로 수정
$user = "admin"; ----> 사용자 아이디를 원하는것으로 수정
$pw = "eAccelerator"; ----> 암호도 원하는것으로 변경하면 됩니다전 alias를 사용하겠습니다 아래와같이 httpd.conf 에 기술해주고
Alias /eacc "/var/www/eAccelerator"
<Directory "/var/www/eAccelerator">
#AllowOverride AuthConfig
Options MultiViews
DirectoryIndex index.php
order deny,allow
Allow from all
</Directory>
/var/www/eAccelerator 위치에 control.php 를 복사한후 아파치를 재시작해준후 접속하겠습니다
http://localhost/eacc/control.php 혹은 http://주소/eacc/control.php 접속하면
현재 캐싱 상태등을 모니터링할수 있습니다 control.php을 index.php로 변경하면
그냥 http://주소/alias명 만 입력 해도 접속이 될 것 입니다
이상 글을 마치겠습니다 감사합니다.
오픈소스를 응원합니다 Blog https://hoing.io
Senior Database Administrator(MySQL, Oracle)사이트 이용 문의 사항은 댓글이나 admin@fedoralinux.or.kr 로 메일주세요
- 답변은 로그인 후 가능합니다.