RSS
掲示板
ご意見・ご感想
誤字脱字・誤情報
管理
アクセス解析
人気ページランキング
ブログパーツ
前のページ | Dreamhost メール設定とHDD容量・転送量確認の方法
■ Dreamhost メール追加・SMTPの設定
Dreamhost
DreamHost

□ メールを追加する
メールを追加するCGIを設置するにあたり「Sendmail」を使用する為、 専用メールアドレスを追加したいと思います。

[Mail]→[Manage Email]をクリック

Create New Email Address」をクリック
Create New Email Address

メールアカウント作成
前回は管理人用の重要メール専用アドレス「postmaster@△△△.com」を作成しましたので、次もユーザーサポート用の王道「info@△△△.com」を作りたいと思います。

設定の仕方は前回の【Dreamhost メール設定の仕方】を参照下さい
メールアカウント作成

作成完了
上に『有効になるまで少し時間が掛かります』と出ている様です。
作成完了

クライアントの設定
その間にメールクライアントの設定を致します。
設定の仕方は前回の【Dreamhost メール設定の仕方】を参照下さい
クライアントの設定

受信テスト
成功
受信テスト

送信テスト
問題の送信テスト。試用期間中は出来ませんでしたが、現在は契約を更新して2年目。
しかし失敗しました。公式マニュアルに「587」と書かれていますが駄目です。別の要因ですね。
何度も試行錯誤を重ねた結果原因が判明。

このサーバは認証が必要」にチェック必需。
今まで4箇所の有料サーバを借りた事があるが、ここにチェックが必要だったのは初。
送信テスト

設定をクリックしログイン情報を見ましたが
デフォルトの「受信メール サーバと同じ設定を使用する」のままでOKでした。
送信テスト

送信テスト成功
レンタルサーバ+プロバイダでメール設定が変わりますので毎回苦しみます。
送信テスト成功

■ CGIの設置
□ 有料レンタルサーバの利点を生かそう
CGI設置なら通常アダルトサイトでも可能
CGIの王道「掲示板」を設置したいと思います。レンタル掲示板の場合は貸し出す側が貼っている「広告バナーの規約」と貸し出す側の「サーバ負荷」の為、「アダルトは禁止」ですが、自分で無料配布されているCGIを設置した場合、それらをクリアし通常可能となります。希にアダルトサイトに設置不可としている配布元がありますので、まずは規約を読みましょう。

レンタルはマイナス面も多い
アダルト可能なレンタル掲示板「したらば掲示板」などがありますが、「広告が多すぎる」「重い
と欠点があります。一番大きいのは掲示板から発生する収入を全て持って行かれることです。わざわざ海外から年間1万円のサーバを借りているのは利益目的、そしてCGIを設置出来る環境にありますので勿体ないです。

□ 今回の掲示板選び
CGIの先駆者であり老舗の「KENT WEB」様。今存在するCGIの基本を作り数多くのカスタムされた掲示板の元となっています。その中でも人気なのが「Web Patio」という掲示板ですが、更新が止まっており「Web PatioⅡ」や「Patio-FU」など数え切れない発生型を生みました。

発生型を使おうとしたところ、運良く最新の「Ver 5.11」が公開されました。発生型は「Ver5」以降に対応して無いので本家を使うことに。規約や掲示板を読みましたが、アダルトサイトに設置禁止という文面は見当たりませんでした。

KENT WEB - CGI/Perlフリーソフト
KENT WEB - CGI/Perlフリーソフト
http://www.kent-web.com/

□ 設定
まずは公式サイトから無料配布されているCGIをダウンロードします。
解凍し中身を確認。設置するローカルフォルダに置きます。
設定

テキストエディタを使用する

init.cgi」を「テキストエディタ」で開きます。メモ帳は多数の「エンコード」に対応して無いのでNG。「init.cgi」で様々な項目を設定できます。
※パスワードは絶対に変えましょう。初期設定のパスワードは知れ渡っています。
テキストエディタを使用する

□ Perlの設定
Perlへのパス
これが今回の本題。レンタルサーバごとに変わります。
admin.cgi,patio.cgi, regist.cgi, check.cgi, captcha.cgi」を開きます。

Dreamhostは「/usr/bin/perl」ですので、
一行目の「#!/usr/local/bin/perl」を全て「#!/usr/bin/perl」に書き換えます。
Perlへのパス

□ Sendmailの設定
メール送信先に先ほど作った「info@△△△.com」を設定
sendmailパスは記載が見つからなかったので
まずはデフォルトの「/usr/sbin/sendmail」のままテストしたいと思います。


□ FTPで転送・パーミッション
パーミッションの設定
CGIで一番面倒でミスしやすいのがパーミッションの設定です。
公式サイト」か「Readme」に書いてありますのでそれを見ながら設定します。

両方無い不親切なCGIは使うのを控えましょう。これで制作者の性格が分かります。
(Web Patioからの発生掲示板で記載が無い事をサポート掲示板で聞いたら、管理人の性格が悪く罵詈雑言を言われ、教えて欲しいなら金を払えと言われたことがある)
パーミッションの設定

動作チェック
親切なことにCGIの動作チェック用プログラムが用意されています。
WEB上から直接「check.cgi」にアクセスしましょう。
全ての項目が「OK」なら「check.cgi」を削除しましょう。攻撃されたりします。
動作チェック

□ 動作チェック
管理画面にアクセス管理画面にアクセス
まずは「admin.cgi」にWEB上から直接アクセス。設定したパスワードを入力し管理画面に入ります。

一通り管理画面をチェックした後、「ログアウト(掲示板移動)」で掲示板を見てみましょう。
管理画面にアクセス

次にパーミッションと設定にミスが無く書き込めるかどうかチェックします
管理画面にアクセス

テスト書き込み
テスト書き込み

動作チェック成功
動作チェック成功

投稿時間がアメリカ時間になっている
当たり前ですが、サーバがアメリカにあるため、時差で投稿時間が7時間程早くなっています。
動作には影響ありませんが、投稿時間が変わってしまうのは面倒です。

調べた所、難易度が高いため後日解決策が見つかったら記載します
投稿時間がアメリカ時間になっている

□ 解決策
解決策1
こちらは「ついっぷる」の「Q&Aなう」にて回答頂きました
localtime関数の直前に
$ENV{TZ} = "JST-9";
を追記する

テキストエディタで「localtime」を全文検索すると以下の様な文が見つかる

#-----------------------------------------------------------
# 時間取得
#-----------------------------------------------------------
sub get_time {
# 時間取得
my $time = time;
my ($min,$hour,$mday,$mon,$year,$wday) = (localtime($time))[1..6];
my @wk = ('Sun','Mon','Tue','Wed','Thu','Fri','Sat');
my $date = sprintf("%04d/%02d/%02d(%s) %02d:%02d",
$year+1900,$mon+1,$mday,$wk[$wday],$hour,$min);

return ($date,$time);
}


この「localtime」が書かれた直前に
$ENV{TZ} = "JST-9";
を記載すると以下の様になります。
これで動作チェックをし問題なく使えました。

参照元
:: KENT WEB > サポートコーナー > FAQ ::
掲示板等での投稿時間がずれます
http://www.kent-web.com/support/faq.html#09

#-----------------------------------------------------------
# 時間取得
#-----------------------------------------------------------
sub get_time {
# 時間取得
my $time = time;
# 標準時刻を日本時間に合わせる例
$ENV{TZ} = "JST-9"; # これを追加

my ($min,$hour,$mday,$mon,$year,$wday) = (localtime($time))[1..6];
my @wk = ('Sun','Mon','Tue','Wed','Thu','Fri','Sat');
my $date = sprintf("%04d/%02d/%02d(%s) %02d:%02d",
$year+1900,$mon+1,$mday,$wk[$wday],$hour,$min);

return ($date,$time);
}

解決策2
こちらはYahoo!!知恵袋の方で回答頂きました

my ($min,$hour,$mday,$mon,$year,$wday) = (localtime($time))[1..6];



(my $min,my $hour,my $mday,my $mon,my $year,my $wday)
= (gmtime($time + 3600*9))[1..6];


に書き換えるとのこと
動作確認したところ問題なく使えました

#-----------------------------------------------------------
# 時間取得
#-----------------------------------------------------------
sub get_time {
# 時間取得
my $time = time;
# 標準時刻を日本時間に合わせる例
(my $min,my $hour,my $mday,my $mon,my $year,my $wday)
= (gmtime(time + 3600*9))[1..6];

my @wk = ('Sun','Mon','Tue','Wed','Thu','Fri','Sat');
my $date = sprintf("%04d/%02d/%02d(%s) %02d:%02d",
$year+1900,$mon+1,$mday,$wk[$wday],$hour,$min);

return ($date,$time);
}


Sendmailも成功
Sendmailも成功

□ 編集後記
今回の記事をまとめるとDreamhostは
SMTPで「このサーバは認証が必要」のチェックが必需 。
Perlへのパス は「/usr/bin/perl」。
sendmailパスは「/usr/sbin/sendmail」でもOK。

(記載:2014年2月12日)