HPにアイコン型レス式掲示板を設置
Kent Webさんが作ったYY-Board ver:8.2の導入をやってみました。
まずはTamanの環境を説明します。
素人なので失敗しても何度でもやり直せるように、VirtualBoxに
ubuntu 10.04 server OSを入れた環境でtestを行いました。
それからメインPCのスペックも記述しときます。
ホストOs | ubuntu12.04LTS Desktop 32bit |
CPU | Pentium Dual-Core E6500 2.93GHz |
MB | Gigabyte G41+ICH7 Micro-ATX GA-G41M-COMBO/A |
Memory | 4GB |
HDD | 500GB |
まず、VirtualBox上でubuntu 10.04 serverをインストール後、update済、openssh-server のinstallが済んでいる状態がtamanのスタート地点なので、
ここから始めます。
仮想OSのIPアドレスは「192.168.0.210」に設定してます。
◆サーバーにssh接続してapache2をインストール
$ sudo apt-get install apache2
既に自宅サーバーを構築している方には必要ありませんね・・・
あくまでもTamanの備忘録として書いています
◆ファイルとディレクトリの所有権をユーザー(taman515)に変更する
$ sudo chown -R taman515 /var/www/
ここから大事な設定です!
◆apache2の任意のディレクトリでCGIが使えるように設定する
$ sudo nano /etc/apache2/mods-enabled/mime.conf
# 165行目:#コメント解除し、CGIとして扱う拡張子を設定
AddHandler cgi-script .cgi .plを追加
$ sudo nano /etc/apache2/sites-available/default
# 10行目:変更 ( Indexes は削除 )
Options FollowSymLinks MultiViews ExecCGIを追加
# 11行目:変更
AllowOverride allに変更
◆CGIを実行するPerlのシンボリックリンクを貼る (よく解らない部分・・・)
$ sudo ln -s /usr/bin/perl /usr/local/bin/perl
/usr/local/bin/perlスリプトも使えるのでパスの書き換えは必要ない、という事かな?Webで調べてくださいね!
最初にやったCGI掲示板設置の時には、パスが違う為に以下の様なエラーが出ましたが、
シンボリックリンクを貼るとうまくCGI掲示板が表示されました。
◆apache再起動
$ sudo service apache2 restart
これでCGIの設定は終わりです。
CGIテストページを作成して動作確認をする
サーバーにssh接続して以下を行う
/var/www/yybbs ディレクトリを作りその中にtest.cgiを置き、
下記のような設定およびテストを行う
◆/var/www/yybbs ディレクトリを作る
$ sudo mkdir /var/www/yybbs
◆ファイルやディレクトリの所有者をユーザー(taman515)に変更
$ sudo chown -R taman515 /var/www/yybbs
◆test.cgiを /var/www/yybbsに作る
$ sudo nano /var/www/yybbs/test.cgi
#!/usr/bin/perl print "Content-type: text/html\n\n"; print "<html>\n<body>\n"; print "<div style=\"width: 100%; font-size: 50px; font-weight: bold; text-align: center;\">\n"; print "Taman's CGI Test Page"; print "\n</div>\n"; print "</body>\n</html>\n";
コピペ、保存して閉じる
◆test.cgiのパーミッションを755に変更
$ sudo chmod 755 /var/www/yybbs/test.cgi
Webブラウザでhttp://192.168.0.210/yybbs/test.cgiを実行すると・・・
OK成功した!
確認が済んだらこのファイルは/yybbsディレクトリから削除しましょう。
作業終了後でもいいね!
アイコン型レス式掲示板の設置
今回設置する掲示板は「KentWeb」さんが作った
「YY-Board 」を使わせて頂きました。
ありがとうございました。
YY-Boardを参考にして以下を進めました。
「yybbs.zip」のダウンロード (ubuntu Desktop PCにDL)
yybbs.zip クリックでファイルがDLが始まります。
解凍後の添付ファイルの内容は、あっ・・・萌化したのがバレちゃいましたね
別途icon「b_icon.zip」を使うために「まきまきさん」のサイトで登録処理が必要です。
Maki Maki's Cafe 登録案内のページ
「b_icon.zip」を解凍したら「yybbs」の「icon」の中に「b_icon」の中身をコピーする。(readme.txtは除く)
「init.cgi」をエディタで開いて以下の箇所を修正した。
管理PW
掲示板のタイトル名
戻り先のURL
禁止ワード設定
保存して閉じる
ファイルの転送、パーミッションの変更
すべてのファイルをFTPを使ってサーバーの/var/www/yybbsに転送する。
各ファイルは「アスキー(テキストモード)」で、
.gifなどの画像は「バイナリモード」で送る。
ファイル名 | パーミッション | 転送モード |
yybbs.cgi regist.cgi captcha.cgi admin.cgi check.cgi | 755 | アスキー |
init.cgi | 644 | アスキー |
lib/Jcode.pm他 | - | アスキー |
data/pastディレクトリ | 777 | アスキー |
data/log.cgi data/ses.cgi data/count.dat data/pastno.dat data/past/0001.cgi | 666 | アスキー |
lib/*.pm lib/*.pl tmpl/*.html style.css | - | アスキー |
icon/*.gif lib/bin/*.png lib/bin/*.ttf | - | バイナリ |
windows PCでのファイル転送の仕方は
Kent Webさんの説明サイトに書かれています。windowsで行うFTP操作
作業が完了したら「check.cgi」にアクセスして動作をチェックしてください。
上手く動作を確認できたら「check.cgi」ファイルを削除しておきます。
tamanの場合はブラウザで
http://192.168.0.210/yybbs/check.cgiでチェックすると・・・
Image::Magickは使わないからNGでもいいのかな?
一応OKとして進めてみます。
Webブラウザで
http://192.168.0.210/yybbs/yybbs.cgiにアクセスすると・・・
OK!出来た!
仮想OSでうまく動いたので今度は実際に稼動しているサーバーから動かしてみる。
Tamanの掲示板 クリックすると表示されると思います。
tamanはwwwサーバーテストさんを使わせて頂いて動作確認することが出来ました。
ありがとうございます!
個人的なメモなので、
この通りにやって 不具合が生じても保証の限りではありません
============================================
メール通知機能を使ってみたい・・・
yy-boardの機能の中に「投稿記事があったら管理人に自動でメールを通知する機能」がある。TamanのWebサーバーにはmail関係のソフトはinstallしていないし、使い方も全然わからない・・・
webで調べてみると「ssmtp」というubuntu10.04 serverにインストール出来るソフトが在ることが判った。
ubuntuソフトウェアセンターで調べると詳しく説明があった。
設定も簡単そうなのでこのソフトを使ってGmailに送りたいが、出来るかな?
ssmtpのインストール
$ sudo apt-get install ssmtp
ssmtp.confファイルの設定
$ sudo nano /etc/ssmtp/ssmtp.conf
===================================
# Config file for sSMTP sendmail # # The person who gets all mail for userids < 1000 # Make this empty to disable rewriting. #root=postmaster # The place where the mail goes. The actual machine name is required no # MX records are consulted. Commonly mailhosts are named mail.domain.com #mailhub=mail # Where will the mail seem to come from? #rewriteDomain= # The full hostname #hostname=ubuntu # Are users allowed to set their own From: address? # YES - Allow the user to specify their own From: address # NO - Use the system generated From: address #FromLineOverride=YES (追加) root=********@gmail.com サーバー管理者<-----(例)amuro@gmail.com-----> mailhub=smtp.gmail.com:587 AuthUser=********@gmail.com <-----(例)amuro@gmail.com-----> AuthPass=******** <-----GmailのPW-----> UseSTARTTLS=YES =======================================
test.txtを作る
$ sudo nano test.txt
====================
From:********@gmail.com <----送信元------> To:**********@gmail.com <----送信先------> Subject:Test Devoutamanからのtestmailです!
====================
端末から送る
$ sendmail -t < test.txt
Gmail受信トレイにちゃんと届いた!
これで自サーバーからメールの送信が出来るようになったが、セキュリティ等がまだよくわからないのでちょっと不安・・・
YY-Boardのinit.cgiの設定
init.cgiをテキストエディタで開いて以下を変更する
# ■ 設定項目 #=========================================================== 137行目# 投稿があるとメール通知する(sendmail必須) 138行目# 0 : 通知しない 139行目# 1 : 通知する 140行目$cf{mailing} = 1; <----1に変更------> 141行目 142行目# メールアドレス(メール通知する時) 143行目$cf{mailto} = '*****@gmail.com'; <-----(例)amuro@gmail.com-----> 144行目 145行目# sendmailパス (メール通知する時) 146行目$cf{sendmail} = '/usr/sbin/ssmtp'; <----ssmtpのパスに変更------> 保存して閉じる
ssmtpのパスの調べ方は
$ which ssmtp
/usr/sbin/ssmtp
サーバーにinit.cgiフィルをUPするんだけど、
転送モードはアスキー、パーミッションは「644」だったよね!
掲示板に投稿すると自分のGmail受信トレイに「BBS:*****-掲示板に投稿がありました。投稿日******」があればOK!成功です。
個人的なメモなので、 この通りにやって 不具合が生じても保証の限りではありません