*WEBサーバの構築 [#e2d58b2c]

-/Users/www/Sites/www~
本場所を、http://eggplant.ddo.jp/www/ でアクセスすることにする。~
(適当にやりすぎかも。汗);
#pre{{
Macmini:~ user$ sudo mkdir -p /Users/www/Sites/www
}}
で、その中にファイルを用意して、オーナー、グループをapacheのものへ変更~
#pre{{
Macmini:~ user$ sudo chown -R www:www /Users/www
}}
~
-/etc/apache2/httpd.conf~
Mac OS XにはApacheとPHPが最初から入っているので、httpd.confを修正しそれらを有効にします。~
#pre{{
--- /etc/apache2/httpd.conf.orig	2008-08-10 12:17:07.000000000 +0900
+++ /etc/apache2/httpd.conf	2008-08-10 12:21:32.000000000 +0900
@@ -111,7 +111,7 @@ LoadModule userdir_module libexec/apache
 LoadModule alias_module libexec/apache2/mod_alias.so
 LoadModule rewrite_module libexec/apache2/mod_rewrite.so
 LoadModule bonjour_module     libexec/apache2/mod_bonjour.so
-#LoadModule php5_module        libexec/apache2/libphp5.so
+LoadModule php5_module        libexec/apache2/libphp5.so
 #LoadModule fastcgi_module     libexec/apache2/mod_fastcgi.so
 
 <IfModule !mpm_netware_module>
@@ -285,13 +285,13 @@ LogLevel warn
     # define per-<VirtualHost> access logfiles, transactions will be
     # logged therein and *not* in this file.
     #
-    CustomLog /private/var/log/apache2/access_log common
+    #CustomLog /private/var/log/apache2/access_log common
 
     #
     # If you prefer a logfile with access, agent, and referer information
     # (Combined Logfile Format) you can use the following directive.
     #
-    #CustomLog /private/var/log/apache2/access_log combined
+    CustomLog /private/var/log/apache2/access_log combined
 </IfModule>
 
 <IfModule alias_module>
@@ -388,7 +388,7 @@ DefaultType text/plain
     # To use CGI scripts outside of ScriptAliased directories:
     # (You will also need to add "ExecCGI" to the "Options" directive.)
     #
-    #AddHandler cgi-script .cgi
+    AddHandler cgi-script .cgi
 
     # For type maps (negotiated resources):
     #AddHandler type-map var

}}

-/etc/apache2/users/www.conf~
/Users/www/Sites/www (http://eggplant.ddo.jp/www/ ) の設定を行う。
#pre{{
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 へリンクしておく。~
#pre{{
Macmini:~ user$ sudo mkdir /usr/local/bin
Macmini:~ user$ sudo ln -s /usr/bin/perl /usr/local/bin/
}}
-WEBサーバの起動~
まず、confファイルの文法チェックを行い、~
#pre{{
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 自動更新 [#d9725f30]
-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へ出力されます。~
#code(nonumber){{
#!/bin/sh

DATE=`date +"%Y/%m/%d %X"`
PATH=/opt/local/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
}}
実行属性とオーナの設定~
#pre{{
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''を入力~
そして、新規ボタンを押して設定完了。~
---ボタン「保存」~
設定内容を保存します。~
--
念のためターミナルで設定内容を確認してみます。~
#pre{{
Macmini:~ user$ sudo cat /var/at/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 への追加例~
#pre{{
192.168.1.xxx eggplant.ddo.jp 
}}
*AWStats 日本語バージョン [#icf0f164]
-AWStatsとは?~
Apacheのログ解析をして、アクセス履歴を視覚的に表示してくれるツールです。~
下記サイトから、日本語化されたAWStatsを入手し、使用してみることにします。~
--http://cyberam.dip.jp/service/awstats_ja/main.html ~
~
-インストール&設定
--/Users/www/Sites/awstats~
本場所へ一式コピーして、http://eggplant.ddo.jp/awstats/ でLAN内からのみ~
アクセス可能なよう設定を行いました。~
tar.gzを入手すると自動的にDesktopに展開されるので、それを上記場所へ一括コピー。~
#pre{{
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の情報を追加します。~
なお、全ての人の閲覧権限を与えることは、セキュリティ上好ましくないため、~
ローカルネットワークからのみアクセスできるよう設定します。~
以下の記述を追加します。~
#pre{{
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~
該当行を次のように編集します。~
#pre{{
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という名前で用意します。~
#pre{{
#!/bin/sh

AWSTATS=/Users/www/Sites/awstats
CGIBIN=$AWSTATS/cgi-bin
ACCESSLOG=/var/log/apache2/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
}}
--各種実行属性のセット~
#pre{{
Macmini:~ user$ sudo chmod +x /usr/loca/bin/awstats
Macmini:~ user$ sudo chmod +x /Users/www/Sites/awstats/cgi-bin/*.pl
}}
--WEBサーバの再起動~
まず、confファイルの文法チェックを行い、~
#pre{{
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サーバが再起動します。~
~
-動作テスト~
#pre{{
Macmini:~ user$ sudo /usr/loca/bin/awstats
}}
ブラウザから集計結果を見る事ができます。~
#pre{{
http://IP_ADDRESS/awstats/
}}
-cron設定~
cronniXで/usr/local/bin/awstatsを周期的に実行するよう設定します。~

~


#navi(Intel Mac/Leopard);

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS