メールフォームCGI|ロリポップのパーミッション
SYNCK GRAPHICA(シンクグラフィカ)さんが無料配布しているCGI/PerlスクリプトメールフォームCGI UTF-8対応版を2009年頃から使わせてもらっています。
その当時はパーミッションってなに?という状態だったので、(私の能力が劣ってるだけですが)設置して動作させるまで大変苦労したことを覚えています。
でもって先月のこと、レンタルサーバー・ロリポップで個人サイトをしいる知人から「メールフォームを設置したいんだけど何がいい?」という相談がありました。
メールフォームで検索するとレンタルできる有料版もあれば無料版もあり、様々な形のものがありますが「できたら自分なりの形でカッコよく」という話なので「レンタルサーバーを借りていればアレでしょう」とシンクグラフィカさんをお勧めしていました。
数日後「チャレンジしてはいるんだけども...」とのことで、あの時の私と同じように行き詰まって動かせないとのことでした。あるあるネタです。
そこでFTPパスワードを教えてもらい手直しして動くようになりました。
が...「どこをどうやったの?」と聞かれても、説明下手なもんで電話では伝わりにくかったということがありました。(^ ^ゞ
そんな訳で、知人や行き詰まった方へ何かしらのお役に立てればってことで1ページ作りました。
前置きが長くなりました。
以下、私なりにざっくり説明します。
テキストエディタが必要
先ずCGIを編集するには最低でもテキストエディタが必要になります。
私のお勧めはMac用に作られたmiというアプリケーションです。miのWin版もありますので本説明ではmiの画面キャプチャーでいきます。
※ Macにはテキストエディットという標準の編集ソフトは入っていますが、これは使わない方がいいです。HD>アプリケーション>テキストエディット
Macにはmiが標準で入っているかも知れないので探してね。
HD>アプリケーション>mi
ファイルを保存するとき(これ重要)
ロリポップのサーバー構成は『UNIX系OS』で、文字コードは『utf-8』になっていますから、編集したら必ず UTF-8 LF(UNIX) にして保存してください。
※ Shift_JIS CR 保存すると動きません。
パスについて
ロリポップのパスは/usr/local/bin/perl もしくは /usr/bin/perlです。
パスはこのままで良いです。
ファイルを転送するために
お使いのHTMLソフトでhtml,CSSを編集し自分なりのデザインにカスタマイズした後(カスタマイズしなくてもいいけど)、mailformにある全ファイルをアップロードしていきます。
アップロードで気をつけなければいけない初歩的なことは、アップロードのモードには、画像などのバイナリ形式モード、文字などのアスキー(テキスト)形式モードの2種類があるということを理解しておかなければいけません。(自動判定できるソフトならお任せでいいですが)
メールフォームCGIには(画像がありませんので)テキスト形式オンリーですね。
※バイナリモードにしてアップすると動きません。
ファイル転送ソフトは?(こちらは余談です)
今ままで使い慣れているFTPソフトで一向に構いませんが、他にも色々なソフトがありますからロリポップの各ソフトの設定ガイドを参照ながら、条件によって使い分けてみるのも良いかと思います。
ちなみに、Macユーザーの私はサクサク動いて超軽いFetch(現在.税込 3,240円)を15年ほど使っています。
しかし、Fetchは"暗号化されない"FTP接続しかできず、また一覧リストに[705][604]といったアクセス権が表示されないとう欠点もあるため、SFTP(SSHによる暗号化FTP)による接続ができ、かつアクセス権も表示できるCyber Duckを使用条件によって使い分けています。
本説明では、Mac版,Win版の両方あることから通称”あひるちゃん”の画面キャプチャーで進みたいと思います。Cyber Duckは無料(寄付金制)です。
またGoogle Driveなんかまで接続できたりと便利なのでお勧めソフトです。
[ガイド]Cyber Duckは旧バージョンもあります。お使いのOSに合わせてダウンロードしてください。余談は以上。
ロリポップの推奨するパーミッション値
ロリポップのパーミッション値(2016年10月時点)はこうなっています。
赤字のとおり、777,666でも大丈夫なのですがサーバーは皆さん共有で使っているのでグループ(Lolipop-User)へのアクセス権は外した方が良いです。
パーミッションを推奨値へ
上記のとおり、動かすためにはパーミッションを変更しなければいけません。
アップロード終了後に右クリックして『情報』を見ると情報画面が出てきます。
それぞれの拡張子に合った値へ変えていきます。(FTPソフトの環境設定でアップする前に設定もできますし、アップ後にまとめて変更もできます。ここでは省略します)
⇒⇒⇒ メールフォームCGIのマニュアルでは[send.cgi ⇒ 755]のところ、ロリポップではcgiは[700]です。
ファイル名 | マニュアル値 | 推奨値 |
mailform/posecods(フォルダ) | - | 705 |
send.cgi/chack.cgi/get.cgi | 755 | 700 |
count.dat | 755 | 600 |
html/css/js | - | 604 |
※ count.datは、datなのでロリポップでは[600]でOK!!
※ セキュリティーのためにもパーミッションはサーバーの推奨値を使いましょう。
パーミッション値を確認
アップロード終了後にパーミッション値を確認してください。
これと同じになっていますか?
これで動かなかったら、send.cgiの記述ミス、 UTF-8,LF(UNIX)の保存ミス、転送モードが違っているかだと思います。前をよく読んでね。
文字化け→それはまた別な機会にでも...
補足・説明
■ファイルが111個あることについて
1、.htaccessは自分で入れているだけです。
2、check.cgiはチェック後に削除していいです。
なので、通常は(mailform,postcodesのフォルダも含めて)ファイル数が109個あればOK!!です。
■ロリポップのプラン選択について
メールフォームを使用する場合は、共有SSLや独自SSLで暗号化できるプランをできるだけ選びましょう。
■「達の記録館」の入力フォームはどこにあるのか
画像の「達の記録館」表記はイメージです。私が代表している団体で使っていてtatsu8.jp上にはありません。
編集後記
本当は何もわかっていないオヤジです。だから私には聞かないでね。テクハラも嫌いよ。(^o^;)
それでは上手くいくことをお祈りしています。
■Special Thank!!
知人も私もシンクグラフィカさんのメールフォームCGIを使わせてもらって大満足です。とても感謝してます。
和田さんありがとうございます。
2016年10月19日 記録