Cactiをインストール via yum

すごーーーく久々に書きます。。
ほんと久々過ぎてはてなダイアリーの書き方を忘れるほど(笑

rrdtoolをyumインストール

以前はrrdtoolのインストールにもdagリポジトリを使いましたが、何気にコマンドを実行してみたらrrdtoolがインストールできました。

sudo yum install rrdtool
:
Dependencies Resolved
================================================================================================================
Package                                 Arch                Version                    Repository         Size
================================================================================================================
Installing:
rrdtool                                 x86_64              1.3.8-6.el6                base              293 k
Installing for dependencies:
dejavu-fonts-common                     noarch              2.30-2.el6                 base               59 k
dejavu-lgc-sans-mono-fonts              noarch              2.30-2.el6                 base              393 k
dejavu-sans-mono-fonts                  noarch              2.30-2.el6                 base              450 k
Transaction Summary
================================================================================================================
Install       4 Package(s)
Total download size: 1.2 M
Installed size: 2.7 M
Is this ok [y/N]: y

いつの間にか使えるようになったのですね。
スバラシイ!!

そして、今まで自然と使っていた顔文字がこのPCには入っていない!
まー、大した問題ではないので、その内気が向いたらいれます。
もう入れないかもですねf^^;

Cacti本体をyumインストール

なんとこれもありました。

$ yum list | grep cacti
cacti.noarch                              0.8.8a-2.el6                  epel

もしや、、DefaultでEnableに設定しているかと思って設定を見ましたが、ちゃんとOFFになってました。

$ cat /etc/yum.repos.d/dag.repo
[dag]
name=Dag
baseurl=http://ftp.riken.jp/Linux/dag/redhat/el$releasever/en/$basearch/dag/
enabled=0
gpgcheck=1
gpgkey=http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt

ということでCacti本体もyumで入れてしまいます。

$ sudo yum install cacti
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
* base: ftp.nara.wide.ad.jp
* epel: ftp.kddilabs.jp
* extras: ftp.nara.wide.ad.jp
* updates: ftp.nara.wide.ad.jp
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package cacti.noarch 0:0.8.8a-2.el6 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================================================
Package                 Arch                     Version                          Repository              Size
================================================================================================================
Installing:
cacti                   noarch                   0.8.8a-2.el6                     epel                   2.0 M
Transaction Summary
================================================================================================================
Install       1 Package(s)
Total download size: 2.0 M
Installed size: 5.4 M
Is this ok [y/N]:

スバラシイ。

と思ったらnet-snmpを入れ忘れていたのでこれもインストール。
問題なく入ります。

$ sudo yum install net-snmp

いざCacti設定

と、、、/var以下くらいに入っているかと思って見てみてもCactiいません。。
どこ行った!! と思ったときにピーンと閃きました^^)b
httpdのconfを確認しよう!!
ということで確認!!

$ cat /etc/httpd/conf.d/cacti.conf ←ありました^^)b
:
<Directory /usr/share/cacti/>
 こんなところに!!
:

ということでいろいろ状況を確認していましたが、
ちょっと困ったことに、今のサーバは名前ベースのVirtualHost設定してるの忘れていました。

VirtualHost対応

Alias /cacti    /usr/share/cacti

結局名前ベースでVirtualHostしていて、元々のサーバ名で
webサービスを立ち上げていないので、上記のAlias設定だけでは上手く動作しないので以下を追加。

権限が無い!というエラーが出続けるのでユーザをapache所有に。

sudo chown apache -R /usr/share/cacti

やっぱりダメなのでVirtualHost設定。

# Alias /cacti    /usr/share/cacti コメントアウト
<VirtualHost *:80>
ServerAdmin mail@sample.org
ServerName server.hoge.fuga.com
Alias /cacti /usr/share/cacti
CustomLog logs/cacti-access_log common
ErrorLog logs/cacti-error_log
</VirtualHost>

VirtualHost対応はこれでOK!
でも繋がらなかったのでよくよく設定を見てみると
localhostからしかアクセスを許可しない設定に。。
ということで、Allow from x.x.x.x とIPを足してやりました。
そしたらエラーが変わりました。

MySQL環境を整える

ここまでやるとMySQLのエラーに変わったのでこれに対応。

FATAL: Cannot connect to MySQL server on 'localhost'. Please make sure you have specified a valid MySQL database name in 'include/config.php' [feedly mini]

ということで、丁寧にエラーにファイル名を書いてくれているので中身を修正。

$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cactiuser";
$database_password = "cactipass";

さらにMySQLに空でデータベースを作成。

create database cacti;
grant all privileges on cacti.*
to cactiuser@localhost
identified by 'cactipass';
flush privileges;

adodb.inc.php line 833 エラーに悩む。。

こんなエラーです。

PHP Fatal error:  Allowed memory size of 134217728 bytes exhausted (tried to allocate 523800 bytes) in /usr/share/cacti/lib/adodb/adodb.inc.php on line 833

小一時間格闘しましたが、解決せず。。
一日たって改めていろいろをwebを探し回ったところ解決策を発見!
http://forums.cacti.net/about38106.html

ここで言っているのはMySQLのテーブル定義をしていないので上手く動いてない。
ということでした。

しかし、このページにもある cacti.sql を読み込ませろとのこと。
でも /usr/share/cacti の下を探してもない。。
ということで、本家のtar.gzを解凍したら中に入ってたのでインストール。

wget http://www.cacti.net/downloads/cacti-0.8.8a.tar.gz
tar zxvf cacti-0.8.8a.tar.gz
cat cacti-0.8.8a/cacti.sql
:
mysql -u root -p
xxxx
mysql> use cacti
mysql> source cacti-0.8.8a/cacti.sql
Query OK, 0 rows affected (0.03 sec)
:
mysql>

これでようやくcactiにアクセスできるようになりました。。
なんか、ちょっと回り道しましたが、何とか使えるようになりました。
いろいろと探し回ったりしたので文章書くのも日をまたいでて
一部端折られてたりしますf^^;;;

気になる点が遠慮なくご連絡を。
わかる範囲で回答します!

cacti spineをインストールする

spineはCで書かれた高速Pollerとのこと。
今まで処理速度的に困ってはいなかったが今回初めて入れてみる。

Spineインストール

$ sudo yum --enablerepo=dag install cacti-spine

インストールおわった 笑

Spine動作確認

$ which spine
/usr/bin/spine
$ spine
06/25/2013 11:37:24 AM - SPINE: Poller[0] FATAL: Unable to read configuration file! (Spine init)

これでOKみたいです。
あとはCactiの方からcmd.phpでなくてspineを選べばいい。

さくらVPS優遇施策期間が一ヶ月延長!

SAKURAさん今日メールが届いてました。

■優遇施策の実施期間
 2012年3月29日(木)12:00 [正午] ~ 2012年5月20日(日)23:59まで
 ※当初は、2012年3月29日(木) 12:00 [正午] ~ 2012年4月20日(金) 23:59
  までを予定しておりましたが、上記の通り1ヶ月間延長いたします。

つまりこの期間で移行するということでしょう。
ただ、VPSの反響?のせいもありVPSの在庫がないとのことf^^;
f:id:kuchida123:20120411234457g:image

移行したいのは1Gプラン、どんなにがんばっても2Gプラン。
8Gプランはオーバースペックだしお金もかかる。
似たようなこと考えている人が多いので売り切れてるのでしょうねw

ひとまず、移行期間に新しくVPSを契約して、その後に1年契約VPSを解約。
解約後に早めに新VPSへデータの引っ越し作業をしないといけないので
あまりダラダラやってられないのが現状でしょう。。

となると1ヶ月伸びたことですし移行する先のプランの契約は
VPS在庫が補充されるという4月16日までは様子見します。

新しいVPSは使えない!
古いVPSは契約切れで使えない!
とかなるとデータを保存する先がないので全部消えてしまします。。

いやぁ、、Wordpressとかでも引っ越しやすさに視点を置いて
かかれている記事とかをたまに見たりしますが、こうやってサーバ側の
事情で引っ越しをせざるを得ない場合があることを考えると
普段から引っ越しを見越したサービス導入を考えておくことは
なかなか重要なことだったりしますね。

ということで!
しばらくSakuraさんの様子をうかがっていたいと思います^^
たいがいいろんなところでニュースになるでしょうし
動きはチクイチ入ってくるでしょう!!

さくらVPSのサービスが改変になりました!

ネタ的にはちょっと前の話なのですがw
ひとまず自分のためのまとめとしても記載しておきたいと思います。

改変の内容としてはプランの変更が主なものです。
詳細は以下の感じです。
http://www.sakura.ad.jp/news/sakurainfo/newsentry.php?id=620

新しく「2Gプラン」というものができて、
今まであった「512プラン」がなくなるようです。
512プランについては最大30分のネットワーク断を伴い
最低プランの1Gプラン相当に格上げというのが正しいかも。
上げてもらおうかしらw

また移行に伴い優遇プランもあるようです。
2012年3月29日(木)12:00 [正午] ~ 2012年4月20日(金)23:59まで
この期間に乗り換えの申込をする必要があるみたい。

ちょっとめんどくさいけど、1Gプランが最低になるようですし
早めに乗り換えようかな~。って既に遅いけどw

PCに無線LAN設定をしました!

公衆無線LANには普段からお世話になっています。
カフェとか(カフェと言ってもスタバですがw)でネットしてます^^
使ってるPCはWindowsXPです。早く新しくしたい><

今まで何となく設定して動いてましたが、
でも、再度同じ設定をしろと言われると自信なス(w
ということで再設定の時のためにメモ!!

WindowsXPの設定

・まずはFlet’s Spotの契約を済ませます。※使うデバイスのMACも登録!
・登録デバイスを持ってFlet’s Spotに接続できる場所に移動。
・無線LANのアクセスポイントが見える状態にする。
・マイネットワークから「ワイヤレスネットワーク接続」の「プロパティ」選択
・「ワイヤレスネットワーク」タブを選ぶ。
・「FLETS-SPOT」をクリックして「プロパティ」選ぶ。
 ※SSIDの部分にグレーで「FLETS-SPOT」と見えます。(東日本の場合)
・そして以下を設定
 >ネットワーク認証:オープンシステム
 >データ暗号化:WEP
 >ネットワークキー:WEPキー(HEX)を入れる
・「認証」タブを選び「IEEE 802.1Xを有効にする」のチェックを外す。
・「OK」
・ワイヤレスネットワークの設定はこれでOK。

WindowsXPでプロバイダ設定!

・「新しい接続を作成する」を選択。
・「次へ」
・「インターネットに接続する」を選択&「次へ」
・「接続を手動でセットアップする」を選択&「次へ」
・「ユーザ名とパスワードが必要な広帯域接続を使用して接続する」を選択&「次へ」
・ISP名にわかりやすい名前を指定する。(例:Flets with ぷらら)
・プロバイダから渡されたIDとPASSを設定&「次へ」
・「完了」クリック。

そうすると「広帯域」という欄に指定したISP名のアイコンができます♪
ということで、メモ完了~!

Flet’s SPOT接続設定について

普段、自分はNTT東日本のFlet’s Spotを利用しています。
けっこう早いですし家がFlet’sだと月額数百円で利用できて便利♪
あとはモバイルポイントも使っていますがFlet’s Spotが望ましいです^^

Flet’s Spotを利用するにはPC(or スマホ)のMACアドレスの
登録が必要になります。何もそこまでしなくても、、、とも思いますが、
登録しないことには利用できないのでとりあえず登録。

で、最近PCを新調し、その時にMACアドレスも登録変更が必要です。
このMACアドレスの登録変更が大変。。
その備忘録としてやり方記載します。

MACアドレスの変更について

NTTサポートに電話すると「サービス情報サイトでMAC変更できます。」と言われます。
ただ、このサービス情報サイトというのは実は二つあります。。
これが紛らわしい。。

http://flets.com/square/
一つ目が上のNTTのホームページにあるところです。

http://www.flets/
もう一つがこちら。本物?のサービス情報サイトです。
MACアドレス登録変更ができるのはこちらのサイトです。

「よくある質問」にもサービス情報サイトから各種設定変更できる!とあります。
しかしながら、1個目のサービス情報サイトでは何の変更もできません><
実際に電話サポートの人もあまりよくわかっていないようでした。。
何度聞いても「サービス情報サイトで変更できます!」としか言いません。。
結果的にどのサポートの人も下のサービス情報サイトを指しており、
でも実際に自分が見ていた同じ名前の上のサービス情報サイトでした。。

本物のサービス情報サイトに接続するには

では、後者のサービス情報サイトに接続するにはどうしたらいいでしょう??
実はFletsの提供するネットワーク内に、
登録情報の変更や確認をできるサービス情報サイトがあるのです。
Fletsさんの提供する閉域網内にあるのです。。

なので、これは自宅から接続するしかないのです。
これをわかっている人って相当少ないのではないでしょうか?
※サポートの人もわかってませんでしたし(w

まずは自宅インターネット接続環境を軽く説明。
自分はBフレッツマンションタイプで接続し、プロバイダはヤフーBBです。

家にはPCが2台あり、フレッツモデムに小さいルータを接続しています。
そのルータはDHCPの役割もしており、2台のPCにアドレスを配るという感じです。
ヤフーBBの接続設定はこのルータに設定しています。

ルータには「WAN側設定」という項目の所にヤフーBBの設定がしてあります。

user : xxxxxx@sbb.ne.jp
pass : 指定のパスワード

つまり!
このプロバイダの所の設定を正しい設定に変更しないと
Flet’sサポートさん達が口をそろえて言う
サービス情報サイトには接続できないのです><

このサイトはフレッツ閉域網内にあるのでヤフーBBに繋いでいたら
接続できないようになっているのです!! おのれフレッツ!!

ということでこの自宅のルータのWAN側設定を以下のように変更。

user : guest@flets
pass : guest

そうすると一時的にフレッツ網内に接続できます。
でも当然プロバイダ契約をしていないので、インターネットには接続できません。
でもフレッツ網内の「サービス情報サイト」にはこれで繋がるようになります。

これでめでたくサービス情報サイトに接続できました><
ほんと、、いろいろなところをたらい回しにされて2時間くらいかかりました。。
でも電話でMACアドレス修正を依頼した場合には2100円かかり
更には時間もかかってしまうという二重苦。。

正しいサービス情報サイトに接続さえできてしまえば、
後は必要な情報の更新はとても簡単。

ということで無事にFlets Spotの接続MACアドレスを修正できました。
いやー。なかなか苦労しました(w

vsftpdを設定します!

前回はyumでvsftpdのインストールしました♪
vsftpdの設定したいと思います(>Д<)ゝ”

ftp基礎

ここでちょっとだけftp設定における基礎ちしきを。

■転送モード
ftpのデータ転送モードにはバイナリモードとASCIIモードがあります。
バイナリモードはデータに手を加えずそのまま転送します。
ASCIIモードはOSによって異なる改行コードを自動修正してくれます。

これらの使い分けはズバリ!
テキストエディタで見るデータはASCIIモード。
それ以外は全てバイナリモード。
コレです^^)v

ASCIIモードはデータ転送する際、改行コードを
正しく置換してくれるモードなので改行コードが
関わらないときは使う必要はないのです。
むしろ、それ以外は余計な置換は必要ないので
バイナリモードがいいですね。

■コネクションのタイプ
ftpはデータ送信用のコネクションにTCPポート20番を使い、
コントロール用のTCPポート21番を使ってセッションを張ります。
/etc/servicesとか見てみるとわかりやすいです^^

ftp-data        20/tcp
ftp-data        20/udp
# 21 is registered to ftp, but also used by fsp
ftp             21/tcp
ftp             21/udp          fsp fspd

ftpセッションの順番としては、
まずはコントロール用セッション(TCP/21)が張られ、
続いてデータ用セッション(TCP/20)が張られます。

コントロールセッションが張れない場合は問題外で
ftpサーバには接続できません。これはどうしようもないパターン。
ただ、コントロールセッションが確立後、データセッションが張られる時、
サーバ側からセッション張るか、クライアント側からセッション張るか。
というのを選択することができます。

これらの違いはアクティブftp、パッシブftpという言われ方をします。
あくまでftpサーバを中心に見ての表現なのに注意が必要。
アクティブftpはftpサーバからアクティブにデータセッションを張ります。
逆にパッシブftpの場合はクライアントからftpサーバに対して
データセッションを張ります。
肉食系ftpサーバがアクティブで、草食系ftpサーバがパッシブです(笑

「どっちからでもエエヤンケ!」
と思われることもあるかもです。自分はそう思いました(笑
データ転送という観点から見たらどちらでもいいかもしれません。
この違いはファイヤウォールの制限によるものです。

ftpサーバがいるセグメントにファイヤウォールがあり、
TCP/20番に対してどのような制限があるか?ということです。
ファイヤウォールはTCPのSYNパケットを見張り、
接続できる/できない をコントロールする場合が多いです。
場合によってはftpクライアント側のセグメントの
ファイヤウォール設定による場合もあるかもですね。

アクティブ/パッシブftpの違いを一言で!
「データ転送用セッションをどちら側から張るか?」
ということの違いによるもです。
パッシブとアクティブはftpサーバ中心に見た違いです。

設定のポリシーを決めてみる

前置き長すぎた><

今回はftpでデータ転送する訳ですが、どんなポリシーでデータ転送を
許可(拒否)するかを決めてやると、何を設定するか明確になります。
データはホームページ作成ソフトで作ったページを転送するためです。

なので、web公開されいるディレクトリ以外には
データを置けないように設定します。

■ログインユーザ
→ ローカルユーザのみ(しかも限定)

■データ置き場所
→Apacheの公開ディレクトリ

■権限
→書き込み+削除

■ログ
→ほどほどに出力+ローテーション設定

上記以外の作業は基本的にできないくても大丈夫。
というか、できないように制限をかけるようにします。

ログインしたユーザにより、Apache公開ディレクトリを
ディレクトリトップにさせたい場合にはちょっとややこし。
まずはftp用ユーザを作り、そのホームディレクトリに
公開するページを置き、Apacheディレクトリにそこを指定。

みたいなことをやらないとやりたいことを叶えることができない。
やってやれなくはないが、メンドイ!!(w

ということで用件を修正。
■ログインユーザ
→ローカルユーザ

■データ置き場
→制限なし

こんな感じに変えて設定してみました。
ログインできるのは基本的にローカルユーザのみ。
ftpとかアプリケーション用のアカウントはログインできず、
基本的には人に紐付くユーザのみ。

データを置く場所のパーミッションをちょっと広めに与えて、
そこにデータを転送するようにしました。

ということで結局は以下をNOにしたのみ。。。

anonymous_enable=NO

それだけデフォルトの使い方から外れてないってことすねf^^;
ログローテーションの設定につていも /etc/logrotate.d/vsftpd.log
ここにyumさんがファイルを置いてくれているので
特に設定を追加する必要がないという。。

結局yumすげー! という結果(w
あとはvsftpdを起動してオッケー!

$ sudo service vsftpd start
Starting vsftpd for vsftpd:          [  OK  ]

yumめ。
ことごとく便利なヤツ。

作業まとめ

(1) yumでvsftpdをインストール

$ sudo yum install vsftpd

(2) vsftpd設定ファイルの編集

$ sudo vim /etc/vsftpd/vsftpd.conf
:
# anonymous_enable=YES ←コメントアウト
anonymous_enable=NO ← NOに変更
:

(3) vsftpd起動

$ sudo service vsftpd start

(4) vsftpd起動確認

$ netstat -a | grep ftp
ポートのListenを確認
$ ps ax | grep vsftpd
デーモンが動いているのを確認

vsftpdをyumでインストール

データ転送をするにはやはりftpが必要!?
ということでftpサーバを導入することにしました^^

やりたいこととしてはホームページビルダーとか、
alphaEDITとかで作ったページをアップすることです!

yumで入るftpサーバを探す

ひとまずyumで探してみます。

$ yum list | grep ftp
ftp.x86_64           0.17-35.el5            installed
lftp.x86_64          3.7.11-4.el5_5.3       installed
gftp.x86_64          1:2.0.18-3.2.2         base
tftp.x86_64          0.49-2.el5.centos      base
tftp-server.x86_64   0.49-2.el5.centos      base
vsftpd.x86_64        2.0.5-21.el5           base

DAGリポジトリも見てるともうちょっとたくさん出てきました。

$ yum list --enablerepo=dag | grep ftp | grep dag
atftp.x86_64                  0.7-6.el5.rf                dag
atftp-server.x86_64           0.7-6.el5.rf                dag
ftpproxy.x86_64               1.2.3-2.2.el5.rf            dag
fuse-curlftpfs.x86_64         0.9.1-1.el5.rf              dag
libobexftp.x86_64             0.22-1.el5.rf               dag
libobexftp-devel.x86_64       0.22-1.el5.rf               dag
obexftp.x86_64                0.22-1.el5.rf               dag
perl-URI-sftp.noarch          0.01-1.el5.rf               dag
pftp.x86_64                   1.1.6-1.2.el5.rf            dag
proftpd.x86_64                1.3.3c-1.el5.rf             dag
proftpd-devel.x86_64          1.3.3c-1.el5.rf             dag
proftpd-ldap.x86_64           1.3.3c-1.el5.rf             dag
proftpd-mysql.x86_64          1.3.3c-1.el5.rf             dag
proftpd-postgresql.x86_64     1.3.3c-1.el5.rf             dag
pure-ftpd.x86_64              1.0.21-1.el5.rf             dag
pure-ftpd-selinux.x86_64      1.0.21-1.el5.rf             dag
python-obexftp.x86_64         0.22-1.el5.rf               dag
tnftp.x86_64                  0.0.20050625-1.2.el5.rf     dag

ftpクライアントやライブラリも多くあるようですねー。
いろいろなサイトも検索結果も考慮してみると
ftpサーバとしては以下かな。

  • vsftpd
  • proftpd

Dagレポジトリにproftpdがありますが、
baseにvsftpdがあるのを見ると、こちらが標準のようです。
ということで、vsftpdを入れてみることにしました!

vsftpdインストール&設定(via yum)

インストールはいつも通りyum様であっさり(w

$ sudo yum install vsftpd

ひとまず、起動スクリプトを覗いてみると
設定ファイルが書かれていました^^)b

$ less /etc/rc.d/init.d/vsftpd
---snip---
# processname: vsftpd
# config: /etc/vsftpd/vsftpd.conf
---snip---

ということで、次はvsftpd設定に移ります^^

vsftpd設定を確認(/etc/vsftpd/vsftpd.conf)

さっそく設定ファイルを見てみます。
たくさんあるコメント行を取り除いてみるとこんな感じ。

$ sudo grep -v "#" /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

気になるのはanonymous_enable=YESの部分。
ここをNOに変更しました。後はひとまずこのまま。

vsftpd起動を確認

このまま上げっぱなしにするとヨロシクない!
vsftpdにはssl設定とかいろいろと設定できるようだが、
ひとまず起動確認だけやっておきます。

$ sudo service vsftpd status
vsftpd is stopped
$ sudo service vsftpd start
Starting vsftpd for vsftpd:           [  OK  ]
これで起動完了!

LISTENしているか確認。
問題なく起動しているみたい^^
ひとまず止めます。

$ netstat -an
---snip---
tcp    0    0 0.0.0.0:21        0.0.0.0:*         LISTEN
---snip---
$ sudo service vsftpd stop
Shutting down vsftpd:                 [  OK  ]

起動確認までできたので、一端終了。
あとは正しく設定を入れて起動!

基本的には自分しか使わないftpサーバにするので、
ログインとかその辺りの設定も厳しく設定。

続きはまた今度!

1個のさくらVPSの上にApacheのVirtualHostで複数サイトを構築する設定

1個のwebサーバで複数のサイトを立ち上げたい!!
サーバはさくらVPS1個なので、その上のApacheで複数のサイトを
立ち上げるにはApacheにVirtualHost設定が必要です。

VirtualHostのパターン

ApacheでVirtualHostを使う場合、
IP、ポート、名前で別のホストを装うことができます。

わかりやすいのはIP分割でしょうか。
1個のサーバにIPを何個も設定して、どのIPに接続しにくるかにより、
どのページを返すかDocumentRoot毎に分けられます。

次にわかりやすいのはポートでしょう。
普通httpはtpc/80番ポートを使うのですが、例えばtcp/8080番などを使い
アクセスされるポートによりコンテンツを出し分ける感じです。

最後に、名前毎かな。
個人サーバ等はこれが便利かなと思う。
IPは1個だけど、DNSさえ登録してしまえば、
その名前を使って複数のサイトを立ち上げられます。

例えばwww.exmple1.comとwww.example2.comには
DNS的に同じIPが設定されています。
でも、httpアクセスの中のホストヘッダを見分けて、
コンテンツを出し分けるとう方法です。
いやぁ~ 便利♪

これを名前ベースのバーチャルホスティングというらしい。(たぶんw)

名前ベースのVirtualHost

ということで、名前ベースでコンテンツを出し分ける設定をします。

# Listenポートを設定(一般的に80です)
Listen 80
# 全てのIPの80番で名前ベースのVirtualHost宣言!
NameVirtualHost *:80
# www.example1.comでアクセスしにきたクライアントに返すコンテンツ
<VirtualHost *:80>
DocumentRoot /www/example1
ServerName www.example1.com
# 他ディレクティブを書き換え
</VirtualHost>
# www.example2.comでアクセスしにきたクライアントに返すコンテンツ
<VirtualHost *:80>
DocumentRoot /www/example2
ServerName www.example2.com
# 他ディレクティブ書き換え
</VirtualHost>

こんな感じです。
この設定をしてコンフィグチェックとかして、
あとはApache再起動してやればオッケー!

$ sudo service httpd configtest
Syntax OK  ←OKでました!
$ sudo service httpd restart

(1) http://www.example1.com/
(2) http://www.exapmle2.com/

(1)と(2)にアクセスした場合には見られるコンテンツを
出し分けることができるようになりました! すばらしぃ~♪

まとめ

http://httpd.apache.org/docs/2.2/ja/vhosts/examples.html
こちらにApache VirtualHostの設定が載っています。
こちらも、いや、むしろこちらを参考に!w

名前ベースのVirtualHostというのがやはりお勧め。
さくらVPSを普通に頼むと当然1個のIPなので、
そのリソースだけでオッケーだからです。

あとはDNSの設定が必要だけど、それはどんな場合でも、
新しいドメインの場合は必要だから仕方ない。
ドメイン名はどの種類のVirtualHostでも同じだから
ここは仕方ないですね~^^

よっしゃー!

wordpressのページにお問合わせフォームを作る

webページによくあるお問合わせフォームを作りたいです!
管理人にweb経由で連絡をもらえるので、いいですよね^^
日本語文字化けの少ないと噂のContact Form 7を入れます。

Contact Form 7インストール

普通に設定する分には特に問題ないです。
wordpressのプラグインのインストールから「Contact Form 7」を選択。
流れに従い入れてあげます。

ただ、ちょっとだけやりたかったのが、人間確認のために
画像の中に書かれている文字を入力させてメールを送るようにしました。
これを入れておけば変なスクリプトでメール送るのは大変です^^)b
f:id:kuchida123:20111116002019g:image:w360

これを入れるためにはGD(画像系ライブラリ)とFreeType(フォント)
をサーバに入れてやる必要があります。

しかもそれらをPHPから使えるようにしてやる必要があるわけです。
ここにちょっとだけ手間取りました。まぁ~ 久々だったし!(言い訳w)

PHPでGDとFreeTypeを使う

まずはFreeTypeを入れてやります。
もちろんここはyum先生にお願いします(w

$ sudo yum install freetype
ズラズラ

FreeTypeはこれでオッケーです。

続いてphp53のgdです。
普通のlibgdでないのがミソ。って、、当然なのですが
これに気付くのにちょっと時間かかりましたf^^;

$ sudo yum install php53-gd
ズラズラ

ここまで来るともう大丈夫!
最後はphpinfoでちゃんと動くか確認です。
f:id:kuchida123:20111116002621g:image:w360

こうやって文章にしてみると、、、、
とてもアッサリに見えますよね。やっぱり。。
ここまでくると、php53がgd(&FreeType)を認識するので
Contact Form 7中のCaptchaがエラーを出力しなくなります。
ここまできたらあとちょっと!!

Contact Form 7でCaptchaする

上に貼ったキャプチャのように画像の中に文字を入れて
人間確認できるようになるまであと少し。

自分はこんな感じで作りました。

<p>画像内の文字を入力してください<br />
[captchac captcha-271 size:m]
[captchar captcha-271]
</p>

こんな文言をよくネットで見る気がします。
みんなこうやってやってたのねぇ~w
まぁ、もっと高度なの見た事ある気もしますが、
ちょっと使う分には十分すぎるかな♪

まとめ

久々にyum使いました。
改めてコマンド1発でいろいろ解決するyumに感動!
そして、ファイルIncludeで特に設定が必要ないファイルの
作りにも感動しておりました。その割りに時間はかかったけど(w

そして一歩先行く?web機能を提供することができました♪