Apache2の設定
pwblog側の準備が整ったので、今まで放ったらかしにしていたapache2の設定をします。apache2はpostgresqlと違い、fink installするだけで自動起動するようにインストールされるので自動起動の設定は必要ありません。しないといけないのは、
- apache2の基本設定をする
- /sw/etc/apache2/sites-available/default
- CGIを使うのでCGIモジュールを有効にする
- /sw/etc/apache2/mods-enabled/cgi.load
- pwblog用に設定ファイルを書く
- /sw/etc/apache2/sites-available/pwblog
- 設定を有効にするためにシンボリックリンクを張る
- /sw/etc/apache2/sites-enabled/pwblog
- CGIがpwblogフォルダに書き込みできるようにする
- ~/unix/sites/pwblog/
- Apache2の再起動
- /sw/sbin/apache2ctl
【1】apache2の基本設定は、私の場合、下記のように編集した。
-
- /sw/etc/apache2/sites-available/default
ServerAdmin shinya_ohtani@mail.xxxx.ne.jp DocumentRoot /sw/var/www/ <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /sw/var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all # This directive allows us to have apache2's default start page # in /apache2-default/, but still have / go to the right place RedirectMatch ^/$ /apache2-default/ </Directory> ScriptAlias /cgi-bin/ /sw/lib/cgi-bin/ <Directory "/sw/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog /sw/var/log/apache2/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /sw/var/log/apache2/access.log combined ServerSignature On Alias /doc/ "/sw/share/doc/" <Directory "/sw/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 </Directory>
ホスト名を複数持つ訳でもないのでVirtualHost設定を削除しただけ。
【2】CGIモジュールを有効にするにはmods-availableに控えているcgi.loadをmods-enabledにシンボリックリンクを張るだけ。
%cd /sw/etc/apache2/mods-enabled/ %ln -s /sw/etc/apache2/mods-available/cgi.load .
【3】pwblog用の設定ファイルは、私の場合は
-
- /sw/etc/apache2/sites-available/pwblog
Alias /pwblog/ "/Users/shinya_ohtani/unix/sites/pwblog/" <Directory "/Users/shinya_ohtani/unix/sites/pwblog/"> Options MultiViews FollowSymLinks SymLinksIfOwnerMatch ExecCGI AddHandler cgi-script .cgi .pl AllowOverride None <IfModule env_module> SetEnv PERL5LIB /sw/lib/perl5:/sw/lib/perl5/darwin </IfModule> </Directory>
環境変数PERL5LIBの設定を忘れると痛いことになります。finkでインストールしたperlモジュールはユーザログインシェルでは、.bashrcや.tcshrcにfinkをインストールした時に書き込まれたfinkの設定により、fink用のperlモジュールフォルダもperlモジュールとして認識してくれますが、apache2経由でwwwがcgiを動かす時にはその設定はないのでfinkでインストールしたperlモジュールが認識されず、まともにcgiを動かすことができません。そこで環境変数PERL5LIBをここで設定しています。設定内容はperl -Vで表示されるものと同じ内容です。
【4】pwblog用の設定を有効にするにはsites-enabledにシンボリックリンクを張るだけ。
%cd /sw/etc/apache2/sites-enabled/ %ln -s /sw/etc/apache2/sites-available/pwblog 001-pwblog
【5】CGIがpwblogフォルダに書き込みできるように権限設定
install.txtにはいろいろ書かれているようだが要するに全部、wwwさんが書き込みできるようになっていれば、とりあえずOK!。ということで、
%cd ~/unix/sites/pwblog/ %sudo chgrp -R www . %sudo chmod -R g+w . %sudo chmod a+x `find . -name "*.cgi"` `find . -name "*.pl"`
【6】全部終わったらApache2の再起動
%sudo /sw/sbin/apache2ctl restart
これで、pwblogは動き始めるはず!下記にアクセスしてadminでログインしてパスワードを変更してみよう!