遅まきながらホームページを作成しようと考えた7

ホームページを作成しkentさんのメール送信ページを付加した。このページのフォルダ構成は指定で決まっていた。ところがサーバーではcgiファイルのディレクトリが指定されている。その中でメール送信ページhtmlにサーバー指定のディレクトリを読み込ませる記述を考えた。メール送信ページのフォルダは以下になる。

f:id:greengreengrass:20160222131232p:plain
そしてサーバーでのディレクトリ構成は以下

 

f:id:greengreengrass:20160223101636p:plain

なんのこっちゃ。
またまたgoogleのお世話でどうやらhtdocs(上図赤丸)の位置がpublic.htmlの位置にあたるらしいと分かった。

次に、第一まずホームページビルダーで作成中のHPをフォルダ構成で表示しkentさんのメール送信ページフォルダ構成と同様にし動作確認をし問題はなかった(もっともメール送信機能自体はない)、
第二「FFFTP」ソフトでサーバーにファイルをアップする。そして各種CGIファイル(5種類ある)をサーバーでしていのcgi-binディレクトリ(上図青丸)に移動させる。
第三メール送信ページhtml内の記述を上記cgi-binを読みに行くように変更する。これが難しい(多分htmlとcgi=言語perlの両方の記述をチェックする必要がある)
ディレクトリパスには絶対パス相対パスがある。一般的には相対パスでの表記が多い。(この件についてはここが親切

絶対パス、相対パス、フルパスの説明。IT用語のパス(path)って何。フルパスで指定?パスの考え方を説明します。

今いるところと目標とするファイルの位置関係を絶対的にあらわす例えば日本国東京都葛飾区柴又か、相対的にあらわす例えば(杉並にいるとしたら)同じ東京の中の、葛飾、柴又という具合である。
上記cgi-binディレクトリ(上図青丸)はhtdocsの中のファイルからみると「../www/cgi-bin」となる。ここまでは理解できた。

そして記述を書き換えた。結果は?。やはり動かない。困った・・
サーバーではエラーについてのログも見ることができるのでそれを調べると、
File does not exist: /var/www/html/cgi-bin/postmail.cgi, referer: http://○○.ec-net.jp/postmail/postmail.html
となっている。これは /var/www/html/cgi-binを読みに行くがファイルがないよ、といっている。おかしいこのようなディレクトリは存在しない。何度もパスを書き換えて試すがうまく届かない。結局サーバーサポートでの返事は「エラーログの表記は /var/www/html/cgi-binとなっているがこの表記は正しく/www/cgi-bin/を読みにいっています」との連絡。
ここまでで何日浪費したか。困り果てた末にサーバーサポートから、「cgiファイルはcgi-bin置かなくも一応動くみたいです。しかし将来メンテナンスで動かなくなることも考えられます」との一言が入った。
そこでファイル構成をkentさんの構成通りに変更し再度アップし直したところ無事メール送信可能となった。ここまでめでたしめでたし。

前回6へ戻る

遅まきながらホームページを作成しようと考えた6 - 紙つぶて 細く永く

 

REMEMBER3.11

不断の努力「民主主義を守れ」