Apache/MySQL/PHP/MMCache Edit

  • はじめに
    LANDISK上にWEBアプリケーション・プラットホームを構築して、インターネット上にホームページ等を公開することを目指します。
    本節でインストールするソフトウェアを簡単に説明しておきます。
    ちなみに、Linux,Apache,MySQL,PHP or Perlで構築されたプラットホームを、その頭文字をとってLAMPと呼ぶそうです。

  • 導入準備
    debian26上に/share/wwwディレクトリ作成して、
    外部からhttp://MY_LANDISK/www/ でアクセスできる環境を構築します。
    /share/wwwディレクトリを作成します。
    landisk:~# cd /share/   
    landisk:/share# mkdir www
    landisk:/share# chmod a+rwx www
    landisk:/share# chown nobody:nogroup www
    

  • インストール
    apt-getで一気に入れてしまいます。
    各種の詳細設定はその後、行います。
    landisk:/# apt-get install apache php4 php4-cgi turck-mmcache
    landisk:/# apt-get install mysql-server php4-mysql 
    
    補足:Perl用DBI/DBDインタフェースも同時にインストールされます。

  • /etc/apache/httpd.conf (Apache設定ファイル)の編集
    LANDISKのパワーを考え、控えめな値を設定します。
    お好みに応じて変更してください。
    142行目付近
    MinSpareServers 2    ←気持ち少なめに
    MaxSpareServers 3    ← 同上
    StartServers 2       ← 同上
    
    807行目付近、コメントを削除
        AddHandler cgi-script .cgi .sh .pl 
    
    838行目付近
    AddDefaultCharset Off
    
  • /etc/apache/conf.d/www.conf
    /share/www を http://MY_LANDISK/www/ でアクセスするように設定します。
    Alias /www/ "/share/www/"
    <Directory "/share/www">
        Options MultiViews FollowSymLinks ExecCGI     ←CGIが使えるように(邪道?)
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
    
  • /etc/mysql/my.cnf (MySQL設定ファイル)の編集
    MySQLもapacheと同様、控えめな値を設定します。
    さらに、メモリを大量に使用するトランザクション機能とキャッシュ機能を無効にしました。
    (64MBしかないLANDISKの場合swapが頻発するため、逆に遅くなるような気がしたので。)
    48行目付近
    # Instead of skip-networking the default is now to listen only on
    # localhost which is more compatible and is not less secure.
    bind-address          = 127.0.0.1
    key_buffer            = 16K
    max_allowed_packet    = 1M
    thread_stack          = 64K
    #
    # Query Cache Configuration
    #
    # query_cache_limit   = 1048576
    # query_cache_size    = 16777216
    # query_cache_type    = 1
    #
    # disable InnoDB
    skip-innodb
    
    99行目付近
    [isamchk]
    key_buffer            = 8M
    
  • /etc/php4/apache/php.ini (php設定ファイル)の編集
    turck-mmcacheの値を小さめに設定しました。
    1076行目付近
    mmcache.shm_size="4"                           	; turck-mmcache
    
  • /etc/php4/cgi/php.ini (php設定ファイル)の編集
    turck-mmcacheの値を小さめに設定しました。
    1076行目付近
    mmcache.shm_size="4"                           	; turck-mmcache
    
  • 再起動
    apacheを再起動する前に、httpd.confのチェックします。
    landisk:/# apachectl configtest
    Syntax OK
    
    OKなら再起動します。
    landisk:/# /etc/init.d/apache restart
    Restarting apache.
    
    landisk:/# /etc/init.d/mysql restart
    Stopping MySQL database server: mysqld.
    Starting MySQL database server: mysqld.
    
  • 動作確認
    • Apache、PHP、MMCacheの動作確認
      /share/www/phpinfo.php を以下の内容で作成して、
      <? phpinfo(); ?>
      ブラウザでphpinfo.phpをアクセスすると、次のようなphpの情報が画面に出力されます。

      phpinfo1.jpg

      さらにphpinfoにMMCacheの項目が現れていることを確認します。

      phpinfo2.jpg


  • MySQLの動作確認
    mysqlshowコマンドを実行して、次のようなデータベースが表示されればOKです。
    landisk:~# mysqlshow
    +-----------+
    | Databases |
    +-----------+
    | mysql     |
    | test      |
    +-----------+
    
  • MySQLのrootパスワード設定
    MySQLのrootパスワードを設定しておきましょう。
    (注意:MySQLのrootパスワードであり、debianのrootパスワードではありません。)
    landisk:~# mysqladmin -u root password 'MySQLのrootパスワード'
    
    設定したパスワードでアクセスできるか確認しておきましょう。
    landisk:~# mysql -u root -p
    Enter Paaword: MySQLのrootパスワード
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 40 to server version: 3.23.49-log
    
    Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
    
    mysql> exit
    Bye
    landisk:~# 
    

  • 付録: MySQLデータベースの作成方法
    ユーザ名 user 、パスワード passwd というアカウントで、データベース testdb を作成する例を示します。
    landisk:~# mysql -u root -p
    Enter password:         ← MySQLのrootパスワード
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 173 to server version: 3.23.58
    
    Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
    
    mysql> create database testdb;
    Query OK, 1 row affected (0.09 sec)
    
    mysql> grant all on testdb.* to user@localhost identified by "passwd";
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> flush privileges;
    Query OK, 0 rows affected (0.01 sec)
    
    mysql> exit
    Bye
    landisk:~# 
    
    できたか確認してみます。
    landisk:~# mysqlshow -uuser -ppasswd testdb
    Database: testdb
    +--------+
    | Tables |
    +--------+
    +--------+
    landisk:~# 
    

Webalizer Edit

  • Webalizerとは?
    WEBサーバApacheのログ解析をして、アクセス履歴を視覚的に表示してくれるツールです。
    次のような情報をグラフィカルに表示してくれます。
    • 月毎の統計
    • 日毎の統計
    • 時間毎の統計
    • ページのアクセスランキング
    • 訪問先のサイトランキング
    • 参照先URLのランキング
    • WEBブラウザのランキング
    • 訪問国のランキング
    より詳しくは本家のサイトをご覧ください。
  • インストール
    landisk:~# apt-get install webalizer
    
  • 設定
    設定ファイル/etc/webalizer.confを修正します。
    LogFile	/var/log/apache/access.log
    HostName	landisk
    DNSCache dns_cache.db
    DNSChildren 10
    
    自分自身のアクセスを表示しないようにするには、HideURL、HedeHideReferrerオプションを追加します。
    下記は管理人の設定例です。
    IgnoreSite      eggplant.ddo.jp
    IgnoreSite      localhost
    IgnoreSite      192.168.0
    IgnoreSite      192.168.1
    
    HideURL         *.gif
    HideURL         *.GIF
    HideURL         *.jpg
    HideURL         *.JPG
    HideURL         *.png
    HideURL         *.PNG
    HideURL         *.ra
    HideURL         *.mp3
    HideURL         *.jpeg
    HideURL         *.css
    
    
  • 解析結果のアクセス許可設定
    初期状態では、外から丸見え状態になっています。
    セキュリティ上好ましくないため、次のファイルを作成し、
    ローカルネットワークからのみアクセスできるよう設定します。
    • /etc/apache/conf.d/webalizer.conf
      Alias /webalizer /var/www/webalizer
      
      <Location /webalizer>
          Order deny,allow
          Deny from all
          Allow from 127.0.0.1
        Allow from 192.168.0.0/24
        Allow from 192.168.1.0/24
      </Location>
      
    • apacheを再起動します。
      landisk:~# /etc/init.d/apache restart
      
  • ログ解析と表示
    以下のコマンドを実行すると、/var/www/webalizer に解析結果が格納されます。
    landisk:~# webalizer
    
    http://YOUR_LANDISK/webalizer/index.html より解析結果を見ることができます。

  • cronの設定
    Apacheのlogrotateが行われる前にwebalaizerが実行されるよう設定します。
    cronは毎日設定時刻になると/etc/cron.dailyに格納されたプログラムを、
    ファイル名でソートして順番に実行してゆきます。
    従って、logrotateより前にwebalizerが実行されるように、
    landisk:~# cd /etc/cron.daily
    landisk:/etc/cron.daily# mv webalizer 00webalizer
    
    とりネームしておきます。


    Counter: 12190, today: 2, yesterday: 0

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2006-06-13 (火) 20:02:26 (6690d)