構築事例
Prev Home

圧縮 Web サーバーの構築

目次
 はじめに 
 イントラサーバーのスペック 
 RAM ディスクの作成 
 MySQL のインストール 
 Apache その1 
 PHP 4 のインストール 
 Apache その2 + mod_gzip + php4 
 ZendOptimizer 
 最後に 

はじめに Top
待ちに待った RedHat 7.2 が発売されました。 RedHat 7.0 , RedHat 7.1 もインストールしたのですが、 私のお気に入りの NIC ( プラネックスコミュニケーションズ製 ) FNW-9802-T が不安定になっていたので、 RedHat 7.2 が発売になるまで、保留としていました。

私がストックしているディストリビューションで、RedHat は、X.2 が安定しているようです。

RedHat 7.2 が発売になったので、インストールしてみました。単にインストールしても 面白くないので、イントラの Web サーバーと同等のサーバーにしてみました。


イントラサーバーのスペック Top
項目 現状 改善策
 接続回線   ISDN   現状維持 
 カーネル   2.0.35 ( RedHat-5.2 )   2.4.7 ( RedHat-7.2 ) 
 MySQL   3.21.33b   3.23.45 
 apache   1.3.19   1.3.22 + mod_gzip ( ワークファイルを RAM ディスクに作成 ) 
 php   3   4.0.6 + Zend Optimizer 

RAM ディスクの作成 Top
  1. RAM ディスクのマウントポジションを作成する
     
     mkdir /mnt/ramdisk 
     chmod 777 /mnt/ramdisk 
     
  2. RAM ディスクをフォーマットする
     
     mke2fs -m0 /dev/ram 2048 
     
  3. RAM ディスクをマウントする
     
     mount /dev/ram /mnt/ramdisk 
     
  4. RAM ディスクのフォーマットとマウントを /etc/rc.d/rc.local に設定すれば、 再起動時に自動的に RAM ディスクが使用可能になります。

MySQL の設定 Top
  1. ダウンロード
    http://www.mysql.com/ からダウンロードします。
    保存先は、/usr/local/src にします。
  2. 圧縮展開
     
     tar -zxvf mysql-3.23.45.tar.gz 
     
  3. ユーザー登録、グループ登録
     
     usradd mysql 
     grpadd mysql 

     
  4. コンパイル準備
     
     ./configure \ 
     --with-charset=sjis \ 
     --with-extra-charset=all \ 
     --with-mysqld-user=mysql \ 
     --with-low-memory 
     
  5. コンパイル、インストール
     
     make 
     make install 
     
  6. 環境設定
     
     /usr/local/src/mysql-3.23.45/scripts/mysql_install_db --user=mysql 
     chown -R mysql /usr/local/var 
     
     cp /usr/local/src/mysql-3.23.45/support-files/my-small.cnf /etc/my.cnf 
     
  7. 自動起動スクリプトの作成その1
     
     cp /usr/local/src/mysql-3.23.45/support-files/mysql.server /etc/rc.mysql 
     chmod +x /etc/rc.mysql 
     mv /etc/rc.mysql /etc/rc.d/init.d/ 
     cd /etc/rc.d/rc3.d 
     ln -s ../init.d/rc.mysql S90mysql 
     

Apache その1 Top
  1. ダウンロード
    http://japache.infoscience.co.jp/apache/dist/htpd/ からダウンロードします
    保存先は、 /usr/local/src に保存します。
  2. 圧縮展開
     
     tar -zxvf apache_1.3.22 
     
  3. コンパイル準備
     
     ./configure \ 
     --prefix=/usr/local/apache 
     

PHP4 Top
  1. ダウンロード
    PHP は
    http://www.php.net/downloads.php/ からダウンロードします。
    保存先は、/usr/local/src にします。
  2. 圧縮展開
     
     tar -zxvf php-4.0.6.tar.gz 
     
  3. コンパイル準備

     ./configure \ 
    	 --with-config-file=/etc/httpd \ 
    	 --disable-debug \ 
    	 --with-mysql=/usr/local \ 
    	 --with-apache=../apache_1.3.22 \ 
    	 --enable-track-vars \ 
    	 --prefix=/usr \ 
    	 --with-regex=system \ 
    	 --with-gettext \ 
    	 --with-gd=shared \ 
    	 --with-jpeg-dir=/usr \ 
    	 --with-png \ 
    	 --with-zlib \ 
    	 --enable-pic \ 
    	 --enable-sysvsem \ 
    	 --enable-sysvshm \ 
    	 --with-exec-dir=/usr/bin \ 
    	 --wnable-ftp \ 
    	 --enable-shared 
    
  4. コンパイル
     
     make 
     make install 
     

Apache その2 + mod_gzip + php4 Top
  1. mod_gzip モジュールを http://www.remotecommunications.com/apache/mod_gzip/ から
    mod_gzip 1.3.19.1a - Complete source code as a 'C' code download. (300k) をダウンロードします
    保存先は /usr/local/src/apache_1.3.22 に保存します。
  2. Apache コンパイル準備

    
     ./configure \ 
    	 --prefix=/usr/local/apache \ 
    	 --activate-module=src/modules/php4/libphp4.a \ 
    	 --add-module=mod_gzip.c 
    

  3. Apache コンパイル
    
     make 
     make install 
    
  4. PHP の設定
    
     cd ../php-4.0.6 
     cp php.ini-dist /usr/local/lib/php.ini 
    
  5. Apache で PHP を有効にします

    httpd.conf を開き( vi /usr/local/apache/conf/httpd.conf ) 下記の '#' を消します。
     
     #AddType application/x-httpd-php .php 
     

  6. PHP の動作テスト

    /usr/local/apache/htdocs/test.php を作成します
     
     <? 
     phpinfo(); 
     ?> 
     
    ブラウザーからの接続結果

  7. mod_gzip の設定

    /usr/local/apache/conf/httpd.conf を修正します
     
     <IfModule mod_gzip.c> 
     mod_gzip_on Yes 
     mod_gzip_keep_workfiles No 
     mod_gzip_minimum_file_size 100 
     mod_gzip_maximum_file_size 0 
     mod_gzip_maximum_inmem_size 60000 
     mod_gzip_dechunk Yes 
     mod_gzip_temp_dir /mnt/ramdisk 
     mod_gzip_item_include mime application/x-httpd-cgi 
     mod_gzip_item_include mime application/x-httpd-php 
     mod_gzip_item_include mime ^text/.* 
     mod_gzip_item_include mime httpd/unix-directory 
     mod_gzip_item_include file \.shtml$ 
     mod_gzip_item_include file \.php$ 
     mod_gzip_item_include file \.pl$ 
     mod_gzip_item_include file \.cgi$ 
     mod_gzip_item_include file \.css$ 
     mod_gzip_item_include file \.js$ 
     mod_gzip_item_include file image/.* 
     mod_gzip_min_http 1000 
     </IfModule> 
     
    備考 mod_gzip_temp_dir はワークファイルを作成する場所です。
    例では、RAM ディスクに作成していますが、他のディレクトリに変更してもかまいません。

  8. log にも mod_zip の圧縮が記録できるようにします

    /usr/local/apache/httpd.conf を変更します
     
     LogFormat "%h %l %u %t \"%r\" %>s %b mod_gzip : {mod_gzip_compression_ratio}npct." common_with_mod_gzip_info1 
     LogFormat "%h %l %u %t \"%r\" %>s %b mod_gzip : %{mod_gzip_result}n In:%{mod_gzip_input_size}n Out:%{mod_gzip_output_size}n :%{mod_gzip_compression_ratio}npct "common_with_mod_gzip_info2 
     CustomLog /usr/local/apache/logs/access_log common_with_mod_zip_info2 
     
    注意 LogFormat の行(2行)とCustomLog の行(1行)です。
    複数の行に書込まないでください。


ZendOptimizer Top
    ZendOptimizer は、PHP4 を更に高速化するソフトです。

  1. ダウンロード
    http://www.zend.com/ からダウンロードします
    保存先は、 /usr/local/src/ に保存します。
  2. 圧縮展開
     
     tar -zxvf ZendOptimizer-1.1.0-PHP_4.0.5-Linux_glibc21-i386.tar.gz 
     
  3. ディレクトリ作成
     
     mkdir /usr/local/Zend 
     mkdir /usr/local/Zend/lib 
     
  4. ライブラリーのコピー
     
     cp ZendOptimizer-1.1.0-PHP_4.0.5-Linux_glibc21-i386/ZendOptimizer.so /usr/local/Zend/lib 
     
  5. php.ini の環境設定
    /usr/local/lib/php.ini の最終行に追加します
     
     zend_optimizer.optimization_level=15 
     zend_extension="/usr/local/Zend/ZendOptimizer.so" 
     
  6. apache を再起動すれば、ZendOptimizer が有効になります
    私のテストした環境では、ZendOptimizer を使った方が倍近く高速になりました。

最後に Top
今となっては遅い機械ですが、最新のソフトを組み込む事で、高レスポンスのサーバーが出来ました。
本当は、486 のマシンでインストールしたかったのですが、486 のマシンが調子が悪くて、OSのインストールが 出来ませんでした。(かなり残念)今度は、OSを RedHat 6.2 にして、同じソフトをイントールしたいです。

ホームページの参照は、RAM ディスクで gzip 圧縮されて、クライアントに転送されます。 また、php は、ZendOptimizer が有効になっているので、高速に処理を行う事が可能です。 gzip は、html , php どちらも圧縮する設定にしています。

Prev Home