HTTPサーバー hiawatha の使い方

パピーを名犬にするための技、テクニック

モデレータ: 暇人, YoN, nyu

返信する
アバター
シノバー
記事: 3139
登録日時: 09/03/21(土) 00:05
連絡する:

HTTPサーバー hiawatha の使い方

投稿記事 by シノバー »

パピーリナックス(Puppy Linux) 4.3 以降、hiawatha が組み込まれています。PPLOG パーソナルブログを動かすためのものですが、hiawathaは httpサーバーなので、これの活用法が本トピック。

4.3以降のパピーは初期状態で hiawathaが httpサーバーとして perlのcgiも動作するよう設定済みです。いずれかから入手した hiawathaのパッケージを重ねてインストールし、混乱されている例が多い。ご注意。

hiawathaの自動起動
メインメニューから「PPLOG」を起動することでGUIによりスタートできますが、これをパピーの起動時にhiawathaを自動起動するには、/usr/sbin/hiawatha.run へのリンクを /etc/init.d 内に作る。

これをGUIで行うには、ROX-Filer で /usr/sbin と /etc/init.d とを開いておき、/usr/sbin/hiawatha.run を /etc/init.d 内にドラッグアンドドロップ、「link(絶対パス)」を選ぶ。
あるいはコマンドラインから ln -s /usr/sbin/hiawatha.run /etc/init.d


hiawathaの設定ファイル
/etc/hiawatha/hiawatha.conf

WebページをLAN上に公開
hiawathaを起動しておき、ブラウザで http://127.0.0.1/ にアクセスすると /root/Web-Server/index.html の内容(初期状態では Hiawatha のwelcome ページ)が表示される。しかし、PCのLAN内アドレスが 192.168.11.3だったとして、http://192.168.11.3/にアクセスしてもエラーとなる。そこで
1. /etc/hiawatha/hiawatha.conf を修正。Binding の中の Interface = 127.0.0.1 と、なっているところを Interface = 0.0.0.0 に変更。
2. hiawatha をいったん停止、ふたたび起動。
3. これで http://192.168.11.3/にアクセスするとhttp://127.0.0.1/ のと同じページが表示される。

参考
http://192.168.11.3/とhttp://127.0.0.1/ とで表示ページを変えることもできる。
pplogを公開したい。 viewtopic.php?f=12&t=1483
VirtualHostについて viewtopic.php?f=12&t=1586

Webページをインターネット上に公開
1. サーバPCのLAN内IPアドレス(192.168.xxx.xxx)を固定。
3. ルータで tcpポート 80 をポートフォワード。
4 グローバルIPが固定でなければ、ダイナミック・ドメイン・ネーム・サービス(DDNS)などを利用する。
5. /etc/hiawatha/hiawatha.conf を適切に設定し、hiawathaを起動。
6. 外部からアクセスできるかを、ネット上のサービスで確認。
7. 外部からアクセスできるが、LAN内からアクセスできないときは、/etc/hosts ファイルなどで処置。

コンテンツの置き場所
トップページは標準設定だと /root/Web-Server。hiawathaを起動しておき、ブラウザで http://127.0.0.1/ にアクセスすると /root/Web-Server/index.html の内容が表示される。
http://127.0.0.1/blog/pup_pplog.pl にアクセスすると /root/Web-Server/blog/pup_pplog.pl が cgi として動作し、PPLOGを表示する。

例えば /root/Web-Server/mypage というディレクトリを作り、/root/Web-Server/mypage/index.html を作成すると、http://127.0.0.1/mypage/ にアクセスしたとき、これが表示される。

/root 以下は個人設定ファイル(pupsave)に保存される。ここに大量のコンテンツを置くことはおすすめしない。
/mnt/home 以下、たとえば /mnt/home/mypage というディレクトリを作り、それへのリンクを /root/Web-Server/mypage とする。こうすれば pupsaveの肥大が防げ、pupsaveが壊れても /mnt/home/mypage内のデータは安全。

hiawathaのマニュアル

いずれも英文情報なので辛い…… :?
HOWTO http://www.hiawatha-webserver.org/howto
マニュアル http://www.hiawatha-webserver.org/manpages
ローカルには /root/Web-Server/hiawatha.htm がある。

cgiの設定
パピーではすでにperlスクリプトがcgiとして動くよう設定されている。
ただしパピーに組み込まれている perl モジュールでは不足することがある。そのときは同じバージョンの perlモジュールを必要に応じて導入しなければならない。
追加アプリケーション Perl viewtopic.php?f=25&t=2289

hiawatha はユーザー: webuser、グループ: webgroup で動く。ファイル書き込みのあるスクリプトでは、書き込み先のディレクトリのオーナーを webuser:webgroup とするか、パーミッションを 777 とするかする。

一部のパピーで /dev/null のパーミッションが崩れていて cgiが失敗することがある。 chmod 660 /dev/null を実行した後 hiawatha をリスタートすることで修復できる。

注意:
パピー 4.3.1以前では CGIhandler の設定と CGIextension の設定が衝突していたが、パピー 5.x系では修正されている。 CGIhandler の設定は不要。次の例ではコメントアウトしている。

コード: 全て選択

#CGIhandler = /usr/bin/perl:pl
CGIextension = pl,bin,cgi
ExecuteCGI = yes
[/size]

エラーログ
エラーログは /var/log/hiawatha/error.log にできる。
最後に編集したユーザー シノバー [ 14/08/15(金) 06:46 ], 累計 5 回
The bar master, Shino's Bar
http://shinobar.net/
アバター
シノバー
記事: 3139
登録日時: 09/03/21(土) 00:05
連絡する:

よくあるエラー

投稿記事 by シノバー »

執筆予定
The bar master, Shino's Bar
http://shinobar.net/
yumiv001
記事: 6
登録日時: 13/03/19(火) 15:09

Re: HTTPサーバー hiawatha の使い方

投稿記事 by yumiv001 »

PPLOG パーソナルブログが動きません。パーミッションの設定を教えてください。 :?:
アバター
シノバー
記事: 3139
登録日時: 09/03/21(土) 00:05
連絡する:

Re: HTTPサーバー hiawatha の使い方

投稿記事 by シノバー »

yumiv001 さんが書きました:PPLOG パーソナルブログが動きません。パーミッションの設定を教えてください。 :?:
パピーのどのバージョンですか?
最初から動かないのですか、そうれとも使っているうち?

開発中のものに不具合のあったケースがありました。日本語版の正式リリースではいずれも最初は正しく設定されているはずです。
1. /dev/null のパーミッションが狂っていることがありました。 /dev/null は 666 でなければなりません。
2. l/root/Web-Server のオーナーが webuser.webgroup であるべきなのに、そうなっていない。
3. PPLOG の動作に必要な Perl モジュールが欠けている。
The bar master, Shino's Bar
http://shinobar.net/
yumiv001
記事: 6
登録日時: 13/03/19(火) 15:09

Re: HTTPサーバー hiawatha の使い方

投稿記事 by yumiv001 »

パピーのどのバージョンですか?
lucid 5.28-jp
最初から動かないのですか、そうれとも使っているうち?
使ってるうちです。
アバター
シノバー
記事: 3139
登録日時: 09/03/21(土) 00:05
連絡する:

Re: HTTPサーバー hiawatha の使い方

投稿記事 by シノバー »

/var/log/hiawatha/error.log にヒントがあるかもしれません。
The bar master, Shino's Bar
http://shinobar.net/
yumiv001
記事: 6
登録日時: 13/03/19(火) 15:09

Re: HTTPサーバー hiawatha の使い方

投稿記事 by yumiv001 »

エラーログはこうでした。
Fri 08 Aug 2014 15:51:41 +0900|192.168.0.10|/root/Web-Server/blog/pup_pplog.pl|CGI timeout
Fri 08 Aug 2014 17:13:06 +0900|192.168.0.13|/root/Web-Server/blog/pup_pplog.pl|CGI timeout
Fri 08 Aug 2014 17:21:29 +0900|192.168.0.10|/root/Web-Server/blog/pup_pplog.pl|CGI timeout
Fri 08 Aug 2014 19:59:06 +0900|192.168.0.10|/root/Web-Server/blog/pup_pplog.pl|CGI timeout
Sat 09 Aug 2014 14:51:17 +0900|192.168.0.13|/root/Web-Server/blog/pup_pplog.pl|CGI timeout
Sat 09 Aug 2014 15:18:06 +0900|192.168.0.10|/root/Web-Server/blog/pup_pplog.pl|CGI timeout
Sat 09 Aug 2014 15:18:22 +0900|192.168.0.10|/root/Web-Server/blog/pup_pplog.pl|CGI timeout
Sat 09 Aug 2014 15:19:38 +0900|192.168.0.10|/root/Web-Server/blog/pup_pplog.pl|CGI timeout
Sat 09 Aug 2014 15:20:04 +0900|192.168.0.10|/root/Web-Server/blog/pup_pplog.pl|CGI timeout
Sat 09 Aug 2014 15:21:30 +0900|192.168.0.10|/root/Web-Server/blog/pup_pplog.pl|CGI timeout
Sat 09 Aug 2014 15:21:50 +0900|192.168.0.10|/root/Web-Server/blog/pup_pplog.pl|CGI timeout
Sat 09 Aug 2014 15:22:32 +0900|192.168.0.10|/root/Web-Server/blog/pup_pplog.pl|CGI timeout
Sat 09 Aug 2014 15:23:15 +0900|192.168.0.10|/root/Web-Server/blog/pup_pplog.pl|CGI timeout
Sat 09 Aug 2014 15:29:16 +0900|192.168.0.10|/root/Web-Server/blog/pup_pplog.pl|CGI timeout
Sat 09 Aug 2014 15:29:40 +0900|192.168.0.10|/root/Web-Server/blog/pup_pplog.pl|CGI timeout
Sat 09 Aug 2014 15:30:33 +0900|192.168.0.10|/root/Web-Server/blog/pup_pplog.pl|CGI timeout
Sat 09 Aug 2014 15:30:42 +0900|192.168.0.10|/root/Web-Server/blog/pup_pplog.pl|CGI timeout
Sat 09 Aug 2014 15:31:25 +0900|192.168.0.10|/root/Web-Server/blog/pup_pplog.pl|CGI timeout
Sat 09 Aug 2014 15:34:48 +0900|192.168.0.10|/root/Web-Server/blog/pup_pplog.pl|CGI timeout
Sat 09 Aug 2014 15:35:02 +0900|192.168.0.10|/root/Web-Server/blog/pup_pplog.pl|CGI timeout
Sat 09 Aug 2014 15:35:12 +0900|192.168.0.10|/root/Web-Server/blog/pup_pplog.pl|CGI timeout
Sat 09 Aug 2014 15:35:27 +0900|192.168.0.10|/root/Web-Server/blog/pup_pplog.pl|CGI timeout
Sat 09 Aug 2014 15:35:41 +0900|192.168.0.10|/root/Web-Server/blog/pup_pplog.pl|CGI timeout
Sat 09 Aug 2014 15:35:59 +0900|192.168.0.10|/root/Web-Server/blog/pup_pplog.pl|CGI timeout
Sat 09 Aug 2014 15:36:11 +0900|192.168.0.10|/root/Web-Server/blog/pup_pplog.pl|CGI timeout
Sat 09 Aug 2014 16:12:41 +0900|192.168.0.10|/root/Web-Server/blog/pup_pplog.pl|CGI timeout
Sat 09 Aug 2014 16:13:09 +0900|192.168.0.10|/root/Web-Server/blog/pup_pplog.pl|CGI timeout
Sat 09 Aug 2014 16:13:16 +0900|192.168.0.10|/root/Web-Server/blog/pup_pplog.pl|CGI timeout
Sat 09 Aug 2014 19:52:22 +0900|192.168.0.13|/root/Web-Server/blog/pup_pplog.pl|CGI timeout
Sat 09 Aug 2014 20:19:52 +0900|192.168.0.13|/root/Web-Server/blog/pup_pplog.pl|CGI timeout
Sat 09 Aug 2014 20:28:30 +0900|192.168.0.13|/root/Web-Server/blog/pup_pplog.pl|CGI timeout
Sun 10 Aug 2014 16:35:36 +0900|192.168.0.10|/root/Web-Server/blog/pup_pplog.pl|CGI timeout
Sun 10 Aug 2014 16:35:57 +0900|192.168.0.10|/root/Web-Server/blog/pup_pplog.pl|CGI timeout
Sun 10 Aug 2014 16:36:44 +0900|192.168.0.10|/root/Web-Server/blog/pup_pplog.pl|CGI timeout
Sun 10 Aug 2014 16:54:15 +0900|192.168.0.10|/root/Web-Server/blog/pup_pplog.pl|CGI timeout
Sun 10 Aug 2014 16:54:39 +0900|192.168.0.10|/root/Web-Server/blog/pup_pplog.pl|CGI timeout
Sun 10 Aug 2014 16:55:45 +0900|192.168.0.10|/root/Web-Server/blog/pup_pplog.pl|CGI timeout
Sun 10 Aug 2014 17:05:13 +0900|192.168.0.10|/root/Web-Server/blog/pup_pplog.pl|CGI timeout
Sun 10 Aug 2014 17:08:39 +0900|192.168.0.10|/root/Web-Server/blog/pup_pplog.pl|CGI timeout
Sun 10 Aug 2014 17:10:10 +0900|192.168.0.10|/root/Web-Server/blog/pup_pplog.pl|CGI timeout
Sun 10 Aug 2014 17:10:50 +0900|192.168.0.10|/root/Web-Server/blog/pup_pplog.pl|CGI timeout
Sun 10 Aug 2014 17:11:06 +0900|192.168.0.10|/root/Web-Server/blog/pup_pplog.pl|CGI timeout
Sun 10 Aug 2014 17:20:40 +0900|192.168.0.10|/root/Web-Server/blog/pup_pplog.pl|CGI timeout
Sun 10 Aug 2014 17:21:09 +0900|192.168.0.10|/root/Web-Server/blog/pup_pplog.pl|CGI timeout
Sun 10 Aug 2014 17:21:23 +0900|192.168.0.10|/root/Web-Server/blog/pup_pplog.pl|CGI timeout
Sun 10 Aug 2014 17:21:41 +0900|192.168.0.10|/root/Web-Server/blog/pup_pplog.pl|CGI timeout
Sun 10 Aug 2014 18:49:37 +0900|192.168.0.10|/root/Web-Server/blog/pup_pplog.pl|CGI timeout
Sun 10 Aug 2014 18:54:34 +0900|192.168.0.10|/root/Web-Server/blog/pup_pplog.pl|CGI timeout
Sun 10 Aug 2014 19:03:48 +0900|192.168.0.10|/root/Web-Server/blog/pup_pplog.pl|CGI timeout
Sun 10 Aug 2014 19:04:03 +0900|192.168.0.10|/root/Web-Server/blog/pup_pplog.pl|CGI timeout
Sun 10 Aug 2014 19:05:29 +0900|192.168.0.10|/root/Web-Server/blog/pup_pplog.pl|CGI timeout
Sun 10 Aug 2014 19:06:03 +0900|192.168.0.10|/root/Web-Server/blog/pup_pplog.pl|Setuid/gid script is writable by world.
Sun 10 Aug 2014 19:06:04 +0900|192.168.0.10|/root/Web-Server/blog/pup_pplog.pl|CGI timeout
Sun 10 Aug 2014 19:08:15 +0900|192.168.0.10|/root/Web-Server/blog/pup_pplog.pl|CGI timeout
Sun 10 Aug 2014 19:13:30 +0900|192.168.0.10|/root/Web-Server/blog/pup_pplog.pl|CGI timeout
Sun 10 Aug 2014 19:16:21 +0900|192.168.0.10|/root/Web-Server/blog/pup_pplog.pl|CGI timeout
Sun 10 Aug 2014 19:22:33 +0900|192.168.0.10|/root/Web-Server/blog/pup_pplog.pl|CGI timeout
Sun 10 Aug 2014 19:30:52 +0900|192.168.0.10|/root/Web-Server/blog/pup_pplog.pl|CGI timeout
Mon 11 Aug 2014 17:48:24 +0900|192.168.0.10|/root/Web-Server/blog/pup_pplog.pl|CGI timeout
Mon 11 Aug 2014 17:49:15 +0900|192.168.0.10|/root/Web-Server/blog/pup_pplog.pl|CGI timeout
Mon 11 Aug 2014 17:49:23 +0900|192.168.0.10|/root/Web-Server/blog/pup_pplog.pl|CGI timeout
Mon 11 Aug 2014 17:49:37 +0900|192.168.0.10|/root/Web-Server/blog/pup_pplog.pl|CGI timeout
yumiv001
記事: 6
登録日時: 13/03/19(火) 15:09

Re: HTTPサーバー hiawatha の使い方

投稿記事 by yumiv001 »

hiawatha.confのInterface公開用アドレスがわかればいいんでしょうね?たぶん・・・ :?:
アバター
シノバー
記事: 3139
登録日時: 09/03/21(土) 00:05
連絡する:

Re: HTTPサーバー hiawatha の使い方

投稿記事 by シノバー »

エラーログ さんが書きました:Sun 10 Aug 2014 19:06:03 +0900|192.168.0.10|/root/Web-Server/blog/pup_pplog.pl|Setuid/gid script is writable by world.
この一文ですよね。
「/root/Web-Server/blog/pup_pplog.pl のパーミッションはまずい。世界中から書き換えできるじゃないか。」
というような意味かと。

t正しいパーミッションは以下のとおり。
# ls -l /root/Web-Server/blog
total 72
-rw-r--r-- 1 webuser webgroup 1403 4月 9 2008 bg.gif
drwxrwxr-x 2 webuser webgroup 3 7月 13 2008 comments
-rw-r--r-- 1 webuser webgroup 15374 7月 8 2009 header.png
drwxrwxr-x 2 webuser webgroup 91 1月 9 2014 posts
-rwxr-xr-- 1 webuser webgroup 52545 5月 13 2012 pup_pplog.pl
-rw-r--r-- 1 webuser webgroup 619 3月 1 2008 reddit.gif
drwxrwxr-x 2 webuser webgroup 129 4月 12 2008 smilies
-rw-r--r-- 1 webuser webgroup 2431 1月 25 2010 style.css

Frugalインスットールの場合、元来のものが /initrd/pup_ro2 以下にあります。最初は動いていたのなら、それを参考にすればよいでしょう。
# ls -l /initrd/pup_ro2/root/Web-Server/blog
total 72
-rw-r--r-- 1 webuser webgroup 1403 4月 9 2008 bg.gif
drwxrwxr-x 2 webuser webgroup 3 7月 13 2008 comments
-rw-r--r-- 1 webuser webgroup 15374 7月 8 2009 header.png
drwxrwxr-x 2 webuser webgroup 91 1月 9 2014 posts
-rwxr-xr-- 1 webuser webgroup 52545 5月 13 2012 pup_pplog.pl
-rw-r--r-- 1 webuser webgroup 619 3月 1 2008 reddit.gif
drwxrwxr-x 2 webuser webgroup 129 4月 12 2008 smilies
-rw-r--r-- 1 webuser webgroup 2431 1月 25 2010 style.css
The bar master, Shino's Bar
http://shinobar.net/
yumiv001
記事: 6
登録日時: 13/03/19(火) 15:09

Re: HTTPサーバー hiawatha の使い方

投稿記事 by yumiv001 »

シノーバさんありがとうございます。
t正しいパーミッションは以下のとおり。
# ls -l /root/Web-Server/blog
total 72
-rw-r--r-- 1 webuser webgroup 1403 4月 9 2008 bg.gif
drwxrwxr-x 2 webuser webgroup 3 7月 13 2008 comments
-rw-r--r-- 1 webuser webgroup 15374 7月 8 2009 header.png
drwxrwxr-x 2 webuser webgroup 91 1月 9 2014 posts
-rwxr-xr-- 1 webuser webgroup 52545 5月 13 2012 pup_pplog.pl
-rw-r--r-- 1 webuser webgroup 619 3月 1 2008 reddit.gif
drwxrwxr-x 2 webuser webgroup 129 4月 12 2008 smilies
-rw-r--r-- 1 webuser webgroup 2431 1月 25 2010 style.css
上記のような、パーミッションの書き方だと分からないのでWindows形式で
もう一度お願いできますか?よろしくお願いします。
アバター
シノバー
記事: 3139
登録日時: 09/03/21(土) 00:05
連絡する:

Re: HTTPサーバー hiawatha の使い方

投稿記事 by シノバー »

yumiv001 さんが書きました:上記のような、パーミッションの書き方だと分からないのでWindows形式で
もう一度お願いできますか?よろしくお願いします。
Windowsにパーミッションがあったとしても、Linuxのそれとは異なります。
GUIがお望みなら 該当ファイルを右クリックして「プロパティ」です。
元来のファイルは /initrd/pup_ro2/root/Web-Server/blog 内にあります。

最初は動いていて、何かをいじられたわけですよね。システムをいじるつもりなら、Linuxの作法に慣れておいたほうが良いですよ。
もとに戻したいだけなら、 いったん削除して、/initrd/pup_ro2 以下にあるものをコピーしてくれば良いのかな。

参考記事
システムファイルを消してしまった。 viewtopic.php?f=17&t=2155
The bar master, Shino's Bar
http://shinobar.net/
yumiv001
記事: 6
登録日時: 13/03/19(火) 15:09

Re: HTTPサーバー hiawatha の使い方

投稿記事 by yumiv001 »

シノバーさん
元来のファイルは /initrd/pup_ro2/root/Web-Server/blog をコピーしてみて、動きました。
ありがとうございます。
返信する