« SheevaPlug OS設定 | トップページ | SheevaPlug 請求書が来ました »

2009年8月29日 (土)

SheevaPlug Apacheインストール

Apacheはaptでインストールしても良いのですが、今使っている玄箱と比較したいので、いつものようにセルフビルドする方針で行きます。

  1. OpenSSLのヘッダーファイルをインストールします
    # apt-get install libssl-dev
  2. 作業用ディレクトリを作成します。(/opt/srcallにダウンロードしたソースファイル、/opt/srcをビルド作業ディレクトリにしています)
    # cd /opt
    # mkdir srcall
    # mkdir src
    # chmod 777 srcall src
  3. Apache 2.0.63のソースをダウンロードした後、ビルドしてインストールします。
    $ cd /opt/srcall
    $ wget http://www.meisei-u.ac.jp/mirror/apache/httpd/httpd-2.0.63.tar.gz
    $ cd ../src
    $ tar zxf ../srcall/httpd-2.0.63.tar.gz
    $ cd httpd-2.0.63
    $ ./configure --disable-ipv6 --disable-include --disable-env --disable-status --disable-autoindex --disable-asis --disable-imap --enable-auth-digest --enable-ssl --with-ssl=/usr
    $ su -
    # cd /opt/src/httpd-2.0.63
    # make
    # make install

httpd.confの設定などは後回しにします。とりあえずPHPが必要なのでこちらもセルフビルドします。 また、Apache2.0.63のconfigure,makeの時間をtimeコマンドで計測してみました。なお、比較対象は無印の玄箱(PowerPC 200MHz, メモリ64MB, OS:純正OS)です。

configure

sheevakuro-box
real 3m 47.402s 9m 32.803s
user 2m 13.120s 4m 55.290s
sys 1m 33.250s 4m 31.900s

make

sheevakuro-box
real 15m 26.416s 31m 31.129s
user 13m 21.240s 25m 10.390s
sys 2m 3.160s 6m 3.380s

続いてPHP5.2.10をセルフビルドします。

  1. 必要となる前提パッケージををインストールしておきます。
    # apt-get install libxml2 libxml2-utils libxml2-dev
    # apt-get install libjpeg62 libjpeg62-dev
    # apt-get install libpng12-0 libpng12-dev
    # apt-get install libgd2-xpm libgd2-xpm-dev
    # apt-get install bison flex re2c
  2. PHP5.2.10のソースをダウンロードした後、ビルドしてインストールします。
    $ cd /opt/srcall
    $ wget http://jp2.php.net/get/php-5.2.10.tar.gz/from/jp.php.net/mirror
    $ cd ../src
    $ tar zxf ../srcall/php-5.2.10.tar.gz
    $ cd php-5.2.10
    $ ./configure --with-apxs2=/usr/local/apache2/bin/apxs --enable-pcntl --enable-mbstring --enable-mbregex --enable-zend-multibyte --without-mysql --with-pear=/usr/local/lib/php --with-openssl=/usr --with-zlib --with-zlib-dir=/usr/lib --with-gd=/usr  --enable-gd-native-ttf --enable-gd-jis-conv --with-jpeg-dir=/usr/lib --with-png-dir=/usr/lib --with-xpm-dir==/usr/lib
    $ make
    # cd /opt/src/php-5.2.10
    # make install
    うーん、なぜかインストール中にこんなWarningがたくさん出ます...
    Warning: Cannot use a scalar value as an array in phar://install-pear-nozlib.phar/PEAR/ChannelFile.php on line ...
    ググってみたけど、pearまわりのトラブル?
    http://pear.php.net/go-pear をダウンロードしてphpで実行すればよいとか、もう一度make installでいけたとか、よく分かりません。とりあえず、make installをもう一回するとエラーが出ません。
    試しに、go-pearをやると今度はpear関連のファイル配置が変になるようで、pearが動かなくなってしまいます。
    とりあえず、pear versionでこんな感じ↓で出るので次に進みます。
    # pear version
    PEAR Version: 1.8.0
    PHP Version: 5.2.10
    Zend Engine Version: 2.2.0
    Running on: Linux sheeva 2.6.30.5 #1 PREEMPT Sun Aug 16 18:37:13 MDT 2009 armv5tel
  3. php.inを編集します。
    # cp -p php.ini-dist /usr/local/lib/php.ini
    # vi /usr/local/lib/php.ini
    [mbstring]
    mbstring.language = Japanese
    mbstring.internal_encoding = UTF-8
    mbstring.http_input = auto
    mbstring.http_output = EUC-JP
    mbstring.detect_order = auto
    mbstring.substitute_character = none;

    expose_php = Off
  4. httpd.confを環境に合わせて修正します。このあたりは、たくさん情報があると思いますので省略します。
  5. PHPの実行を高速化するため、eAcceleratorをインストールします。
    $ cd /opt/srcall
    $ wget http://bart.eaccelerator.net/source/0.9.5.3/eaccelerator-0.9.5.3.tar.bz2
    $ cd ../src
    $ tar jxf ../srcall/eaccelerator-0.9.5.3.tar.bz2
    $ cd eaccelerator-0.9.5.3/
    $ /usr/local/bin/phpize
    こんなWarningが出ます。
    configure.in:158: warning: AC_CACHE_VAL(lt_prog_compiler_static_works, ...): suspicious cache-id, must contain _cv_ to be cached
    ググってみるとautoconf2.63だとダメみたいなのでバージョン2.13を入れた後、再度phpizeを実行します。
    $ su -
    # apt-get install autoconf2.13
    # exit
    $ /usr/local/bin/phpize
    $ ./configure --enable-eaccelerator --with-eaccelerator-shared-memory --with-eaccelerator-sessions --with-eaccelerator-content-caching --with-eaccelerator-disassembler --with-eaccelerator-userid=80   ←80はApacheの起動ユーザのuidです。
    $ make
    # cd /opt/src/eaccelerator-0.9.5.3
    # make install
  6. /usr/loca/lib/php.iniにeaccelerator.iniの内容を追記します。以下は私の場合の設定内容です。
    • キャッシュ内容をメモリにのみ保持します。
    • 圧縮は無しにしています。
    • キャッシュサイズを32MBにしているため、/etc/sysctl.confに kernel.shmmax=67109888 を追加してkerelの共有メモリサイズを64MBに変更しています。(SheevaPlugのkernel.shmmaxのデフォルト値は32MBでした。)
    ;; eAccelerator
    zend_extension="/usr/local/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so"
    eaccelerator.shm_size = "32"    ← 16MB以上に増やす場合は/etc/sysctl.confのkernel.shmmaxの値を増やして下さい。 
    eaccelerator.cache_dir = "/tmp/eac-cache" ← キャッシュ保存用ディレクトリ
    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 = "0" ← 圧縮無し
    eaccelerator.compress_level = "9"
    eaccelerator.keys     = "shm_only" ← メモリのみキャッシュを保存する場合
    eaccelerator.sessions = "shm_only" ← メモリのみキャッシュを保存する場合
    eaccelerator.content  = "shm_only" ← メモリのみキャッシュを保存する場合
    eaccelerator.allowed_admin_path = "/usr/local/apache2/htdocs/control.php"
  7. 後はcontrol.phpをApacheのhtdocs(上の場合は/usr/local/apache2/htdocs)に入れて動作確認します。
  8. Apacheの自動起動の設定を行います。
    # cd /etc/rc2.d
    # ln -s /usr/local/apache2/bin/apachectl S97apache
    # cd /etc/rc0.d
    # ln -s /usr/local/apache2/bin/apachectl K10apache
  9. Apacheのログローテーションの設定をします。
    # vi /etc/logrotate.d/httpd
    月1回、2世代まで保管する場合の例
    /usr/local/apache2/logs/*_log {
        monthly
        rotate 2
        postrotate
            /usr/local/apache2/bin/apachectl restart
        endscript
    }

この後、玄箱からrep2のファイルを持ってきて実行させたところ正常に動作しました。なお、期待していた実行速度ですが、明らかに速い箇所と、1.5倍ぐらいの速さのところがあり、まだまだチューニングが必要なようです。(素直にaptで入れた方が実行速度が速いって事はないよね...)

|

« SheevaPlug OS設定 | トップページ | SheevaPlug 請求書が来ました »

SheevaPlug」カテゴリの記事

コメント

こんにちは。お世話になります。
暇を見つけては、こちらのサイトを参考に、Sheevaをインストールしております。

さて、またコマンドに誤記らしき箇所を発見いたしましたので、ご連絡させていただきます。

SheevaPlug Apacheインストール
3番の8行目
# cd /opt/srcall/httpd-2.0.63

以上となりますが、ご確認のほど、宜しくお願い致します。

投稿: ふりー | 2009年10月23日 (金) 14:34

失礼しました。修正しました。

投稿: xeon | 2009年10月26日 (月) 07:27

コメントを書く



(ウェブ上には掲載しません)




« SheevaPlug OS設定 | トップページ | SheevaPlug 請求書が来ました »