< | >

パーミッションで素朴にはまる
  • (2024-03-11 19:00:18)

フォームメールが作動していない!


あるサイトをロリポップからxserverに移行中。その中の一つ、Perlで書かれたフォームメールが作動しないトラブルを体験。スタッフに指摘されて試すと本当に(500 Internal Server error)

こういうときはまずはパーミッションを疑う → メインの実行ファイルは「644」となっていた。ftpで転送するとデフォルト「644」か? デフォルトパーミッションが何であれ「644」に問題を感じなかった・・

今から思うとここで「700」番代を試せばいいのに、ロリポップのときはなぜか「644」で動作していたものだから、xserverでも当然動作すると思い込んでしまった。


思い込みで数時間はまる


パーミッション以外の原因を探しだそうと数時間もはまって疲れ果ててこの日は仕事を終えた。湯船につかっていれば「あれは試していないな~」などというアイデアが湧くだろうと期待していたが、湯船でもアイデアは出なかった。

どうしても作動しない原因がわからない・・今回のトラブルシューティングは切り分けがスマートでなく体力・時間を消費してしまった。


別のフォームメールで切り分け


けっきょくCGIプログラムを広範囲に公開してくれているKen-webさんから「PostMail」(Perlで書かれたフォームメール)をダウンロードして設置するとこれもだめだった・・この時点で、もはやプログラム側でなくサーバ側の問題と確信した。

それで再度xserverのパーミッション指定を調べ直して唖然・・必要な設定は「755」or「705」。

パーミッション「rwx」の実行部分は必ず「7」で始まるべきであると私も思っているのにこのミスは間抜けだった。


パーミッション&サーバーパス指定



【xserver】


https://www.xserver.ne.jp/manual/man_server_permission.php
---------------
・フォルダ 755, 705
・.html/.php/.zipなど 644
・.htaccess 644
・.cgi/.pl などCGI実行ファイル 755, 705
・.cgi/.pl などライブラリ 600
・.txt/.dat/.logなど 600
---------------
・perl (/usr/bin/perl)
・sendmail (/usr/sbin/sendmail)
※xserverには「/local/」フォルダがない


【ロリポップ】


https://lolipop.jp/manual/hp/cgi/
---------------
・ディレクトリ 705
・HTML、画像ファイル 604
・.htaccessファイル 604
・CGIの実行ファイル 700
・CGIのデータファイル 600
---------------
・perl (/usr/local/bin/perl)or(/usr/bin/perl)のいずれか(サーバによって違う)
・sendmail (/usr/lib/sendmail)or(/usr/sbin/sendmail)いずれもOK

< | >linuxは底なしの海のような >>
search
layout
admin

[▲page top]