PHPアクセラレータを入れてみる

PHP5.2へバージョンアップしたついでに、PHPアクセラレータを入れました。
こちらを参考にさせていただきました。

PHPはアクセス都度、パース→コンパイル→(中間コード)→実行を行いますが、
PHPアクセラレータを導入する事で、ある条件下でパース→コンパイルが不要となります。

代表的なPHPアクセラレータは以下です。

  • APC(Alternative PHP Cache)
  • eAccelerator
  • XCache
  • PHPA(PHP Accelerator)

    PHPAはPHP5系をサポートしていない為、選択肢としては残りの3つからとなりますが、
    特に性能を求めている訳でもないので、他の方々もよくいれているAPCにします。

    まず、yumのリポジトリを設定します。

    [root@centos]# vi /etc/yum.repos.d/sea-mew.repo
    [sea-mew-noarch]
    name=SeaMew Fedora AddIn Packages
    baseurl=ftp://sea-mew.jp/yum/el5/noarch/
    enabled=1
    gpgcheck=0
    
    [sea-mew-common]
    name=SeaMew Fedora AddIn Packages
    baseurl=ftp://sea-mew.jp/yum/el5/x86_64
    enabled=1
    gpgcheck=0
    

    パッケージがあるか検索します。

    [root@centos]# yum search php-apc
    Loaded plugins: downloadonly, fastestmirror, priorities
    Loading mirror speeds from cached hostfile
     * addons: ftp.nara.wide.ad.jp
     * base: ftp.nara.wide.ad.jp
     * epel: ftp.jaist.ac.jp
     * extras: ftp.nara.wide.ad.jp
     * remi: rpms.famillecollet.com
     * rpmforge: fr2.rpmfind.net
     * updates: ftp.nara.wide.ad.jp
    addons                                                           |  951 B     00:00
    base                                                             | 2.1 kB     00:00
    c5-testing                                                       | 1.9 kB     00:00
    epel                                                             | 3.7 kB     00:00
    epel/primary_db                                                  | 3.6 MB     00:00
    extras                                                           | 2.1 kB     00:00
    remi                                                             | 2.6 kB     00:00
    remi/primary_db                                                  | 251 kB     00:01
    rpmforge                                                         | 1.1 kB     00:00
    sea-mew-common                                                   |  951 B     00:00
    sea-mew-common/primary                                           | 2.0 MB     00:01
    sea-mew-common                                                                6548/6548
    sea-mew-noarch                                                   |  951 B     00:00
    sea-mew-noarch/primary                                           | 1.0 MB     00:01
    sea-mew-noarch                                                                3898/3898
    updates                                                          | 1.9 kB     00:00
    Reducing CentOS-5 Testing to included packages only
    Finished
    2227 packages excluded due to repository priority protections
    =================================== Matched: php-apc ===================================
    php-apc.x86_64 : The apc (Alternative PHP Cache) module for PHP
    php-apc-admin.x86_64 : Web admin GUI for apc (Alternative PHP Cache)
    

    sea-mew-common にありましたので、yumでインストールします。

    [root@centos]# yum install php-apc
    Loaded plugins: downloadonly, fastestmirror, priorities
    Loading mirror speeds from cached hostfile
     * addons: ftp.nara.wide.ad.jp
     * base: ftp.nara.wide.ad.jp
     * epel: ftp.jaist.ac.jp
     * extras: ftp.nara.wide.ad.jp
     * remi: rpms.famillecollet.com
     * rpmforge: fr2.rpmfind.net
     * updates: ftp.nara.wide.ad.jp
    Reducing CentOS-5 Testing to included packages only
    Finished
    2227 packages excluded due to repository priority protections
    Setting up Install Process
    Resolving Dependencies
    --> Running transaction check
    ---> Package php-apc.x86_64 1:3.1.6-0m set to be updated
    --> Finished Dependency Resolution
    
    Dependencies Resolved
    
    ========================================================================================
     Package           Arch             Version              Repository                Size
    ========================================================================================
    Installing:
     php-apc           x86_64           1:3.1.6-0m           sea-mew-common           304 k
    
    Transaction Summary
    ========================================================================================
    Install       1 Package(s)
    Upgrade       0 Package(s)
    
    Total download size: 304 k
    Is this ok [y/N]: y
    Downloading Packages:
    php-apc-3.1.6-0m.x86_64.rpm                                      | 304 kB     00:00
    Running rpm_check_debug
    Running Transaction Test
    Finished Transaction Test
    Transaction Test Succeeded
    Running Transaction
      Installing     : php-apc                                                          1/1
    
    Installed:
      php-apc.x86_64 1:3.1.6-0m
    
    Complete!
    

    GUIが用意されているようですので、インストールしておきます。

    [root@centos]# yum install php-apc-admin
    Loaded plugins: downloadonly, fastestmirror, priorities
    Loading mirror speeds from cached hostfile
     * addons: ftp.nara.wide.ad.jp
     * base: ftp.nara.wide.ad.jp
     * epel: ftp.jaist.ac.jp
     * extras: ftp.nara.wide.ad.jp
     * remi: rpms.famillecollet.com
     * rpmforge: fr2.rpmfind.net
     * updates: ftp.nara.wide.ad.jp
    Reducing CentOS-5 Testing to included packages only
    Finished
    2227 packages excluded due to repository priority protections
    Setting up Install Process
    Resolving Dependencies
    --> Running transaction check
    ---> Package php-apc-admin.x86_64 1:3.1.6-0m set to be updated
    --> Finished Dependency Resolution
    
    Dependencies Resolved
    
    ========================================================================================
     Package               Arch           Version              Repository              Size
    ========================================================================================
    Installing:
     php-apc-admin         x86_64         1:3.1.6-0m           sea-mew-common          22 k
    
    Transaction Summary
    ========================================================================================
    Install       1 Package(s)
    Upgrade       0 Package(s)
    
    Total download size: 22 k
    Is this ok [y/N]: y
    Downloading Packages:
    php-apc-admin-3.1.6-0m.x86_64.rpm                                |  22 kB     00:00
    Running rpm_check_debug
    Running Transaction Test
    Finished Transaction Test
    Transaction Test Succeeded
    Running Transaction
      Installing     : php-apc-admin                                                    1/1
    /var/tmp/rpm-tmp.74136: line 1: fg: no job control
    エラー: %post(php-apc-admin-3.1.6-0m.x86_64) スクリプトの実行に失敗しました。終了ステー タス 1
    
    Installed:
      php-apc-admin.x86_64 1:3.1.6-0m
    
    Complete!
    

    エラーが出ましたが、一旦このまま進めます。
    以下をコピーし、apacheをrestartします。

  • apc-mmap.so
  • apc-sem.so
    [root@centos]# cp -a /usr/lib64/php/extensions/apc-*.so /usr/lib64/php/modules/
    [root@centos]# ls -al /usr/lib64/php/modules/apc*
    -rwxr-xr-x 1 root root 166067  1月 20 06:09 /usr/lib64/php/modules/apc-mmap.so
    -rwxr-xr-x 1 root root 163217  1月 20 06:09 /usr/lib64/php/modules/apc-pthread.so
    -rwxr-xr-x 1 root root 163395  1月 20 06:09 /usr/lib64/php/modules/apc-sem.so
    -rwxr-xr-x 1 root root 162476  1月 20 06:09 /usr/lib64/php/modules/apc-spinlocks.so
    [root@centos]# service httpd restart
    httpd を停止中:                                            [  OK  ]
    httpd を起動中:                                            [  OK  ]
    
  • さくらVPS借りてみました

    2ヶ月程前からさくらVPSのホスティング環境を借りていたのですが、
    しばらく放置していたので、少しイジリ始めました。

    環境構築時は色々なサイトを参考にさせてもらいつつも、ちょっとしたこと事で止まってしまい調べたり、、
    そもそも自分でドメインさえも取得した事がなかったので、何事も経験ですね。
    現状はひと通りのモノは入れ終わり、ある程度は動くようになっています。

    普段、ERP等のパッケージソフトに携わっているとこのあたりがうとくなりがちなので、
    これからこの環境で少しずつ検証していきます。