FREEDOM. FRIENDS. FEATURES. FIRST.
페도라 한국 사용자 모임

zend optimizer 와 eAccelerator 설치

게시판 Tech/Tip zend optimizer 와 eAccelerator 설치

  • This topic has 1개 답변, 2명 참여, and was last updated 11 years, 1 month 전에 by ELem. This post has been viewed 24 times
  • 만든이
    게시글
  • #12168
    태랑
    키 마스터
    • 게시글207
    • 댓글878
    • 총합1085
    • ★★
    @admin

    "yum(rpm)으로 APM 연동설치"(https://www.fedoralinux.or.kr/forums/topic/12171) 의

    다음글정도가 되겠습니다 위 링크 글에서 APM설치한 내역대로 이어서 zend optimizer와 eAccelerator를 설치합니다

     

     

    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가 비활성화 됩니다 


     

     

     

    **yum 으로 설치가능하지만 php가 yum으로 설치하지않고 소스설치하여 eAccelerator도

    소스설치를 합니다 php를 yum으로 설치하게되면 같이 수정 하겠습니다


    eAccelerator 설치

    eAccelerator PHP가속, 최적화, 동적 컨텐츠 캐시입니다.(PHP Op-Code Caching) 공유 메모리에 컴파일된

    상태에서 캐싱으로 PHP 스크립트의 성능을 향상시킵니다. 실행 속도를 높여 스크립트를 최적화합니다

     

    tomcat 과 같은 was 에서는 jsp파일을 데몬이 서비스를 올리면서 메모리 상에 올리는것과 같은 역할을 합니다

    한번 접속된 페이지는 일정시간 메모리에 올리기에 동일 사이트 및 페이지에 접속했을 때

    디스크 I/O 가 아닌 메모리 I/O가 일어남으로 빠르게 페이지를 보여줄수 있습니다

     


    다운로드

    w get http://bart.eaccelerator.net/source/0.9.6/eaccelerator-0.9.6-rc1.tar.bz2

    (호스팅 필터링때문에 이렇게 씁니다 w 와 get을 붙여야 합니다 )



    설치

    # 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 = 0

    eaccelerator.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 로 메일주세요

0 답변 글타래를 보이고 있습니다
  • 글쓴이
    답변
    • #12879
      ELem
      참가자
      • 게시글67
      • 댓글672
      • 총합739
      • ★★
      @Bardisch

      WAS에서상 PHP를 WAR형식으로 돌려주는 Quercus라는 녀석이 있더군요.
      걔도 Zend 쓸수 있나 싶습니다 ㅎㅎ;;

      http://caucho.com/resin/doc/quercus.xtp

0 답변 글타래를 보이고 있습니다
  • 답변은 로그인 후 가능합니다.