WEBサーバの構築 Edit

Wikの処理性能がLANDISK比、十倍に。

  • /Users/www/Sites/www
    本場所を、http://eggplant.ddo.jp/www/ でアクセスすることにする。
    (適当にやりすぎかも。汗);
    Macmini:~ user$ mkdir -p /Users/www/Sites/www
    
    で、その中にファイルを用意して、オーナー、グループをapacheのものへ変更
    Macmini:~ user$ sudo chown -R www:www /Users/www
    

  • /etc/httpd/httpd.conf
    Mac OS XにはApacheとPHPが最初から入っているので、httpd.confを修正しそれらを有効にします。
    --- /etc/httpd/httpd.conf_org   Sat Jul 23 19:10:32 2005
    +++ /etc/httpd/httpd.conf  Sat Jul 23 19:14:01 2005
    @@ -235,9 +235,9 @@
     #LoadModule unique_id_module   libexec/httpd/mod_unique_id.so
     LoadModule setenvif_module    libexec/httpd/mod_setenvif.so
     #LoadModule dav_module         libexec/httpd/libdav.so
    -#LoadModule ssl_module         libexec/httpd/libssl.so
    -#LoadModule perl_module        libexec/httpd/libperl.so
    -#LoadModule php4_module        libexec/httpd/libphp4.so
    +LoadModule ssl_module         libexec/httpd/libssl.so
    +LoadModule perl_module        libexec/httpd/libperl.so
    +LoadModule php4_module        libexec/httpd/libphp4.so
     LoadModule hfs_apple_module   libexec/httpd/mod_hfs_apple.so
     LoadModule rendezvous_apple_module libexec/httpd/mod_rendezvous_apple.so
     
    @@ -279,9 +279,9 @@
     AddModule mod_so.c
     AddModule mod_setenvif.c
     #AddModule mod_dav.c
    -#AddModule mod_ssl.c
    -#AddModule mod_perl.c
    -#AddModule mod_php4.c
    +AddModule mod_ssl.c
    +AddModule mod_perl.c
    +AddModule mod_php4.c
     AddModule mod_hfs_apple.c
     AddModule mod_rendezvous_apple.c
     
    @@ -578,7 +591,7 @@
     # define per-<VirtualHost> access logfiles, transactions will be
     # logged therein and *not* in this file.
     #
    -CustomLog "/private/var/log/httpd/access_log" common
    +#CustomLog "/private/var/log/httpd/access_log" common
     
     #
     # If you would like to have agent and referer logfiles, uncomment the
    @@ -591,7 +604,7 @@
     # If you prefer a single logfile with access, agent, and referer information
     # (Combined Logfile Format) you can use the following directive.
     #
    -#CustomLog "/private/var/log/httpd/access_log" combined
    +CustomLog "/private/var/log/httpd/access_log" combined
     
     #
     # Optionally add a line containing the server version and virtual host
    @@ -879,7 +892,7 @@
         #
         # To use CGI scripts:
         #
    -    #AddHandler cgi-script .cgi
    +    AddHandler cgi-script .cgi
     
         #
         # To use server-parsed HTML files
    
  • /etc/httpd/users/www.conf
    /Users/www/Sites/www (http://eggplant.ddo.jp/www/ ) の設定を行う。
    Alias /www/ "/Users/www/Sites/www/"
    <Directory "/Users/www/Sites/www">
        Options MultiViews FollowSymLinks ExecCGI     ←CGIが使えるように(邪道?)
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
    
  • /usr/local/bin/perl
    perlを/usr/local/bin へリンクしておく。
    Macmini:~ user$ sudo mkdir /usr/local/bin
    Macmini:~ user$ sudo ln -s /usr/bin/perl /usr/local/bin/
    
  • WEBサーバの起動
    まず、confファイルの文法チェックを行い、
    Macmini:~ user$ sudo apachectl configtest
    Processing config directory: /private/etc/httpd/users/*.conf
     Processing config file: /private/etc/httpd/users/www.conf
    Syntax OK
    
    そして、システム環境設定→共有の、パーソナルWEB共有をチェックしてWEBサーバを立ち上げます。

  • ルータのポートフォワード設定
    80番ポートをサーバへフォワードするのをお忘れなく。

Dynamic DNS 自動更新 Edit

  • What's up(フリーウェア)
    http://soft.macfeeling.com/What_s_Up.html
    このような便利なソフトウェアがあるのでご紹介しておきます。

    ケチな私は、CPU/メモリリソースを節約したかったので、LANDISKで使用していた、
    ddns更新スクリプトをcronで周期的に実行するように設定しました。

  • /usr/local/bin/ddns.sh
    ddo.jp専用、Dynamic DNS更新スクリプトの例です。
    過去200回分の更新ログが、/var/log/ddns.logへ出力されます。
    #!/bin/sh
     
    DATE=`date +"%Y/%m/%d %X"`
    PATH=/sw/bin:/bin:/usr/bin
     
    wget -q -O - 'http://free.ddo.jp/dnsupdate.php?dn=ドメイン&pw=パスワード' | \
    awk '$0 ~ /SUCCESS/ || $0 ~ /FAIL/ { print date, $0;}' date="$DATE" >> /var/log/ddns.log
     
    tail -200 /var/log/ddns.log > /var/log/ddns.log.tmp
    cp /var/log/ddns.log.tmp /var/log/ddns.log
    rm /var/log/ddns.log.tmp
    実行属性とオーナの設定
    Macmini:~ user$ sudo mkdir /usr/local/bin   ← もし、無ければ
    Macmini:~ user$ sudo cp ddns更新スクリプト /usr/local/bin/ddns.sh
    Macmini:~ user$ sudo chmod +x   /usr/local/bin/ddns.sh
    Macmini:~ user$ sudo chown root /usr/local/bin/ddns.sh
    
  • cronの設定
    cronを使って1時間毎にDynamic DNSの登録を行います。
    MacOSXでは、GUIでcronの設定を行うcronniXというツールがあるようなので使ってみます。
    • CronniX
      http://www.abstracture.de/projects-en/cronnix/
      上記ページのDownloadから入手できます。
      (入手後、アイコンをアプリケーションフォルダにコピーします。)

    • 設定
      日本語化されてるんだね。らくちんです。
      • ボタン「開く」
        rootと入力して、rootのcrontabを指定します。
      • ボタン「新規」
        コマンドを起動する時間を指定して、かつ
        コマンド欄には、/usr/local/bin/ddns.shを入力
        そして、新規ボタンを押して設定完了。
      • ボタン「保存」
        設定内容を保存します。
      念のためターミナルで設定内容を確認してみます。
      Macmini:~ user$ sudo cat /var/cron/tabs/root
      # DO NOT EDIT THIS FILE - edit the master and reinstall.
      # (- installed on Sun Jul 24 13:03:31 2005)
      # (Cron version -- $FreeBSD: … 省略
      5    *    *    *    *    /usr/local/bin/ddns.sh
      
  • host名の解決
    MacOSX上のsafariで自分内のHPをアクセスすると、ドメイン名が解決できないため、
    ページが正常に表示されません。
    ドメイン名をLAN内のローカルアドレスに見せかけることで、本問題を回避します。

    /etc/hosts への追加例
    192.168.1.xxx eggplant.ddo.jp 
    

AWStats 日本語バージョン Edit

  • AWStatsとは?
    Apacheのログ解析をして、アクセス履歴を視覚的に表示してくれるツールです。
    下記サイトから、日本語化されたAWStatsを入手し、使用してみることにします。
  • インストール&設定
    • /Users/www/Sites/awstats
      本場所へ一式コピーして、http://eggplant.ddo.jp/awstats/ でLAN内からのみ
      アクセス可能なよう設定を行いました。
      tar.gzを入手すると自動的にDesktopに展開されるので、それを上記場所へ一括コピー。
      Macmini:~ user$ cd /Users/www/Sites
      Macmini:~ user$ sudo cp -R ~/Desktop/awstats_ja-1.0/wwwroot awstats
      
    • /etc/httpd/users/www.conf
      ブラウザからアクセスできるよう、Apacheの設定ファイルに、awstatsの情報を追加します。
      なお、全ての人の閲覧権限を与えることは、セキュリティ上好ましくないため、
      ローカルネットワークからのみアクセスできるよう設定します。
      以下の記述を追加します。
      Alias /awstats /Users/www/Sites/awstats
      <Location /awstats>
          Options MultiViews FollowSymLinks ExecCGI
          AddHandler cgi-script .cgi .pl
          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>
      

    • /Users/www/Sites/awstats/cgi-bin/awstats.conf
      該当行を次のように編集します。
      LogFile="/Users/www/Sites/awstats/access_log.enc"
      SiteDomain="eggplant.ddo.jp"  各自の環境にあわせます。
      HostAliases="localhost 127.0.0.1 REGEX[^192.168.]"
      DirData="/Users/www/Sites/awstats"
      DirCgi="/awstats/cgi-bin"
      DirIcons="/awstats/icon"
      
    • /usr/local/bin/awstats
      次のスクリプトを/usr/local/bin/awstatsという名前で用意します。
      #!/bin/sh
      
      AWSTATS=/Users/www/Sites/awstats
      CGIBIN=$AWSTATS/cgi-bin
      ACCESSLOG=/var/log/httpd/access_log
      
      $CGIBIN/conv_weblog_to_utf8.pl < $ACCESSLOG > $AWSTATS/access_log.enc
      $CGIBIN/awstats.pl -config=awstats.conf -update > /dev/null
      $CGIBIN/awstats.pl -config=awstats.conf -output -staticlink > $AWSTATS/index.html
      
    • 各種実行属性のセット
      Macmini:~ user$ sudo chmod +x /usr/loca/bin/awstats
      Macmini:~ user$ sudo chmod +x /Users/www/Sites/awstats/cgi-bin/*.pl
      
    • WEBサーバの再起動
      まず、confファイルの文法チェックを行い、
      Macmini:~ user$ sudo apachectl configtest
      Processing config directory: /private/etc/httpd/users/*.conf
       Processing config file: /private/etc/httpd/users/www.conf
      Syntax OK
      
      システム環境設定→共有を開いて、パーソナルWEB共有をチェック外して再チェックを
      するとWEBサーバが再起動します。

  • 動作テスト
    Macmini:~ user$ sudo /usr/loca/bin/awstats
    
    ブラウザから集計結果を見る事ができます。
    http://IP_ADDRESS/awstats/
    
  • cron設定
    cronniXで/usr/local/bin/awstatsを周期的に実行するよう設定します。




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