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

zend optimizer 와 eAccelerator 설치

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

  • This topic has 1개 답변, 2명 참여, and was last updated 14 years, 12 months 전에 by
    ELem. This post has been viewed 6056 times
  • #12168
    태랑
    키 마스터
      게시글303 댓글1084 총합1387
    @admin
     

     

    "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 = 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
      참가자
        게시글74 댓글719 총합793
      @Bardisch
       

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

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

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

지금 이 순간


어머나 이야기! oops!
파일시스템 체크에서 faild가 뜨면서 부팅이 안되네요..
날씨가 많이 춥내용
혹시 커뮤니티 유저 분들 중에
안녕하세요~가입인사드립니다
여러분~ 기상~
계속 질문만해서 죄송합니다 ㅎ;;
Gnome 3.14 듀얼 모니터 사용시 mutter의 티어링 현상 문의
리눅스에서 와이어샤크 실행
BitBake + OpenEmbedded