29 11月 09

バーチャルホストを追加するごとに、個別にcgiの実効権限などを設定してきたが、今後バーチャルホストを増やす前提で運用するため、一々そのたびに実効設定をするのが面倒。そこで、ユーザーディレクトリの公開領域全体にcgiの実効許可をあらかじめ行う。

ユーザーディレクトリは

/home/hoge

公開領域は

/home/hoge/public_html

に設定するため、今後作成される

/home/*/public_html

にはすべてcgiの実効許可を与える。

apache2の諸々の設定ファイルは

/etc/apache2/mods-available/

以下に集まっている。ユーザーディレクトリの設定を行うファイルは

userdir.conf

に書かれている。

ubuntu8.04 LTS版のuserdir.confの初期状態は

<IfModule mod_userdir.c>
UserDir public_html
UserDir disabled root

<Directory /home/*/public_html>
AllowOverride FileInfo AuthConfig Limit
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
</Directory>
</IfModule>

と書かれている。

この<Dirctory> </Dircotry>を書き換える。

<IfModule mod_userdir.c>
UserDir public_html
UserDir disabled root

<Directory /home/*/public_html>
Addhandler cgi-script .cgi
Addhandler cgi-script .pl
AllowOverride all
Options ExecCGI FollowSymLinks
Order allow,deny
Allow from all
</Directory>

</IfModule>

ここで保存。

userdir.confを有効化

sudo a2enmod
Which module would you like to enable?
Your choices are: -設定されているモジュール名すべてが表示される-
Module name? userdir
Module userdir installed; run /etc/init.d/apache2 force-reload to enable.

先日設定した、バーチャルホストの設定ファイルから、<Directories></Directories>の設定をコメントアウトしてテストする。

NameVirtualHost 192.168.0.29:80

<VirtualHost 192.168.0.29:80>
ServerName west-tokyo.ddo.jp
DocumentRoot /home/nick/public_html/
#<Directory /home/*/public_html>
#    Addhandler cgi-script .cgi
#    Addhandler cgi-script .pl
#    AllowOverride all
#    Options ExecCGI FollowSymLinks
#    Order allow,deny
#    Allow from all
#</Directory>

CustomLog /var/log/west-tokyo/access.log env=!no
ErrorLog /var/log/west-tokyo/error.log
</VirtualHost>

<VirtualHost 192.168.0.29:80>
ServerName www.west-tokyo.net
DocumentRoot /home/west-tokyo/public_html/
#<Directory /home/*/public_html>
#    Addhandler cgi-script .cgi
#    Addhandler cgi-script .pl
#    AllowOverride all
#    Options ExecCGI FollowSymLinks
#    Order allow,deny
#    Allow from all
#</Directory>

CustomLog /var/log/west-tokyo/access.log env=!no
ErrorLog /var/log/west-tokyo/error.log
</VirtualHost>

<VirtualHost 192.168.0.29:80>
ServerName mt5.west-tokyo.net
DocumentRoot /home/west-tokyo/public_html/mt5/
#<Directory /home/*/public_html>
#    Addhandler cgi-script .cgi
#    Addhandler cgi-script .pl
#    AllowOverride all
#    Options ExecCGI FollowSymLinks
#    Order allow,deny
#    Allow from all
#</Directory>

CustomLog /var/log/west-tokyo/access.log env=!no
ErrorLog /var/log/west-tokyo/error.log
</VirtualHost>

Apache2の再読み込み。

nick@ubuntu:/etc/apache2/mods-available$ sudo /etc/init.d/apache2 force-reload
* Reloading web server config apache2                                             [ OK ]

ここで、任意のcgiスクリプトをバーチャルホストで設定したドメインで実行。動作していれば、設定完了です。今後は、新たにバーチャルホストを設定する際に、<Directories></Directories>の設定をする必要はありません。









28 11月 09

MovableType5が無事に自宅サーバーで使えるようになったが、管理画面で「Image::Magickがない」とアラートが四六時中でて少々うるさい。

画像関連はGDを利用するようにmt-config.cgiを書いたので問題ないのだが、アラートを消すために、Image::Magickをインストールする。

sudo apt-get install imagemagick

無事にインストールできたがまだImage::Magickを認識してくれない。

調べたところ、PerlからImage::Magickを使うには「perlmagick」というモジュールが必要とのこと。

sudo apt-get install perlmagick

無事にMTでImage::Magickが利用可能になりました。









27 11月 09

前回の続き。

www.west-tokyo.netにアクセスするとwest-tokyo.ddo.jpと同じく、

/home/nick/public_html/

以下を表示するようになった。

これを、別ディレクトリに割り振る。

構想では

www.west-tokyo.net       /home/west-tokyo/public_html
mt5.west-tokyo.net        /home/west-tokyo/public_html/mt5
foo.west-tokyo.net          /home/west-tokyo/public_html/foo
bar.west-tokyo.net          /home/west-tokyo/public_html/bar

・・・と言うように、CMSのテスト環境をサブドメインでがんがん作れるようにしていく。

このため、再度バーチャルホストの設定ファイルを編集

nick@ubuntu:~$ sudo vim /etc/apache2/site-enabled/west-tokyo/

現状の設定ファイル(****は任意のipアドレス)

<VirtualHost 192.168.0.****:80>
ServerName west-tokyo.ddo.jp
DocumentRoot /home/nick/public_html/
<Directory /home/*/public_html>
Addhandler cgi-script .cgi
Addhandler cgi-script .pl
AllowOverride All
Options ExecCGI FollowSymLink
Order allow,deny
Allow from all
</Directory>
CustomLog /var/log/west-tokyo/access.log env=!no
ErrorLog /var/log/west-tokyo/error.log
</VirtualHost>

に、追記。以下のようにする。

<VirtualHost 192.168.0.****:80>
ServerName west-tokyo.ddo.jp
DocumentRoot /home/nick/public_html/
<Directory /home/*/public_html>
Addhandler cgi-script .cgi
Addhandler cgi-script .pl
AllowOverride all
Options ExecCGI FollowSymLinks
Order allow,deny
Allow from all
</Directory>
CustomLog /var/log/west-tokyo/access.log env=!no
ErrorLog /var/log/west-tokyo/error.log
</VirtualHost>

<VirtualHost 192.168.0.****:80>
ServerName www.west-tokyo.net
DocumentRoot /home/west-tokyo/public_html/

<Directory /home/*/public_html>
Addhandler cgi-script .cgi
Addhandler cgi-script .pl
AllowOverride all
Options ExecCGI FollowSymLinks
Order allow,deny
Allow from all
</Directory>
CustomLog /var/log/west-tokyo/access.log env=!no
ErrorLog /var/log/west-tokyo/error.log
</VirtualHost>

<VirtualHost 192.168.0.****:80>
ServerName mt5.west-tokyo.net
DocumentRoot /home/nick/public_html/mt5/
<Directory /home/*/public_html>
Addhandler cgi-script .cgi
Addhandler cgi-script .pl
AllowOverride all
Options ExecCGI FollowSymLinks
Order allow,deny
Allow from all
</Directory>

CustomLog /var/log/west-tokyo/access.log env=!no
ErrorLog /var/log/west-tokyo/error.log
</VirtualHost>

※****は全て任意の数字になります。

ここで、apache2をリスタート

sudo /etc/init.d/apache2 restart

/home/west-tokyo/public_html/
/home/west-tokyo/public_html/mt5/

にそれぞれテストファイルを保存して、

http://www.west-tokyo.net
http://mt5.west-tokyo.net

にアクセスしてみる。

テストファイルが見えたら、バーチャルホストの追記完了です。

追記:
個別設定の手間を省くために、Apache2のuserdir.confで一括設定を行いました。詳細はこちら。









20 11月 09

ddo.jpやdip.jpなど、無料のddnsサービスだと、1ドメインのみの利用となる。

一方、CMSや各種サービスのテストのためには、ドメイン名を複数取得して、ヴァーチャルホストで割り当て、いろいろとテストしたい。そこで

  • 独自ドメインを取得
  • 自宅サーバーの任意のエリアに割り当て
  • 以後、テスト用領域を作成するごとに、サブドメインを設定して拡張していく

を実行する。

まずは独自ドメインの取得。公開ブログのドメインはムームードメインで作っているため、管理をひとまとめにするためにムームードメインでもう一つドメイン取得。

次に、取得したドメイン名を、自宅サーバーに指定する。

ムームードメインで自宅サーバーを利用する場合「ipアドレスが固定である場合」と前置きがある。つまり。ダイナミックDNSの監視サービスが存在しない。つまり、ipアドレスに対してドメインネームを当てられない。

このため、予め取得しておいた「west-tokyo.ddo.jp」を参照させることにした。

流れとしては

  • 自宅サーバーのipアドレスが変わるたびに、ddo.jpへIP通知
  • wes-tokyo.ddo.jpが、自宅サーバー情報を更新
  • ムームードメインで登録された独自ドメインが、west-tokyo.ddo.jpを追いかけて、常に自宅サーバーを参照syry

という流れ。

ウェブサーバーのドメインの参照方法には2つ方法がある。

  1. Aレコード
    ipアドレスに対してドメイン名を設定。IPアドレス一つに対して1ドメイン名を指定。これが基本。
  2. CNAME
    ip以外(ドメイン名など)に対してドメイン名を設定。つまり、一つのipが複数ドメインの情報を持つことになる。

今回は後者を選択。手順は以下のとおり。

ムームードメインのコントロールパネル→ログイン

ドメインサーバー→ムームーDNSのセットアップ

任意のドメインの「処理」ボタンをクリック

ムームードメインの設定方法

ムームードメインの設定方法

ここから、CNAMEを選択して、ドメイン名を入力。

しばらくたって、自宅サーバーを参照できるようになれば終了。

自宅サーバーは2つのドメイン名を持つことになります。









20 11月 09

自宅サーバーを設置した場合、LAN内のipアドレスを直接ブラウザに打ち込めば、公開領域を参照できるが、取得したドメイン名を打ち込んでも、正常に表示されない(名前解決できない)。

この場合、自宅のパソコンの設定で、名前解決する必要がある。

WindowsXPの場合、

ドライブ:\WINDOWS\system32\drivers\etc\hosts

というファイルがある。(hostsは拡張子なしのファイル)

ここに、

LAN内ipアドレス   自宅サーバーのドメイン名

と記述すると、自宅のパソコンからドメイン名で参照できるようになる。

デフォルトの状態では

127.0.0.1              localhost

と書いてあると思うので、この下に

127.0.0.1              localhost
192.168.0.**       hoge.com

と書いて保存すればOkです。









9 11月 09

本格的にGoogleへこのブログのデータを登録、SEO対策をしてみる。
sitemap.xmlを自動生成して、Googleウェブマスターツールへ自動登録する。

いくつかプラグインを試したが、圧倒的に使い勝手が良かったのが「
Google (XML) Sitemaps Generator for WordPress
だったので、これを採用する。

WordPress用のsitemap.xmlジェネレーター

WordPress用のsitemap.xmlジェネレーター

プラグイン→新規追加で「google sitemap」と入力すれば検索できる。インストール後有効化。

設定→XML-Sitemap という項目ができる。細かい設定はここから。

Google (XML) Sitemaps Generator for WordPressの設定画面

Google (XML) Sitemaps Generator for WordPressの設定画面

WordPressのプラグインは、ほとんど設定画面が英語だが、日本語化されていて分かりやすい。

あとは、設定画面から指定したURLを、Googleウェブマスターツールへ登録して完了。









6 11月 09

ubuntu server 版は、インストール直後はmod_rewriteが有効化されていないようです。

設定を行う。

sudo a2enmod rewrite

mod_rewriteを有効化するために、Apache2を強制リロードしろ、というメッセージ。

Module rewrite installed; run /etc/init.d/apache2 force-reload to enable.
hogehoge@ubuntu:/etc/apache2/mods-available$ sudo /etc/init.d/apache2 force-reload
* Reloading web server config apache2                                             [ OK ]

この状態で、WordPressのパーマリンク設定を変えるが、mod_rewriteは有効化されていない。VirtualHost上の設置ファイルを変更する必要がある様子。

このサイトのバーチャルホスト設定ファイルをいじる

sudo vim /etc/apache2/site-enabled/west-tokyo

AllowOverride None

AllowOverride All

に変更。

<VirtualHost 192.168.0.****:80>
ServerName west-tokyo.ddo.jp
DocumentRoot /home/nick/public_html/
<Directory /home/*/public_html>
Addhandler cgi-script .cgi
Addhandler cgi-script .pl
AllowOverride All
Options ExecCGI
Order allow,deny
Allow from all
</Directory>
CustomLog /var/log/west-tokyo/access.log env=!no
ErrorLog /var/log/west-tokyo/error.log
</VirtualHost>

ここで上書き保存。
(****は、任意の数字になります。)

apacheをリスタート。

sudo /etc/init.d/apache2 restart

パーマリンクは依然として無効な状態。

WordPressのマニュアルを調べる。

http://wpdocs.sourceforge.jp/%E3%83%91%E3%83%BC%E3%83%9E%E3%83%AA%E3%83%B3%E3%82%AF%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9

WordPressのパーマリンク機能を使う場合には

  • mod_rewrite モジュールがインストールされた Apache ウェブサーバー
  • WordPress のホームディレクトリで、
    • FollowSymLinks オプションが有効にななっている。
    • FileInfo directives が許可されている(例 AllowOverride FileInfo, AllowOverride All)。
    • .htaccess ファイルが存在する(存在しない場合は、”pretty” パーマリンクを有効にしたときに、WordPress は .htaccess ファイル作成を試みます)。
    • .htaccess ファイルを自動的に更新するには、WordPress が書き込み権限を持っている必要があります。

とのこと。つまり、FollowSymLinksが設定されていなかったということ。

もう一度、VirtualHostの設定ファイルを書き換える。

<VirtualHost 192.168.0.****:80>
ServerName west-tokyo.ddo.jp
DocumentRoot /home/nick/public_html/
<Directory /home/*/public_html>
Addhandler cgi-script .cgi
Addhandler cgi-script .pl
AllowOverride All
Options ExecCGI FollowSymLink
Order allow,deny
Allow from all
</Directory>
CustomLog /var/log/west-tokyo/access.log env=!no
ErrorLog /var/log/west-tokyo/error.log
</VirtualHost>

太字が手を加えているところ。Apacheリスタート。もういちど、.htaccessを設定しなおし。

無事に、WordPressのパーマリンクが設定されました。

参考:
http://d.hatena.ne.jp/kasahi/20090202/1233598591

http://showzine.info/blog/ubuntu/page/ubuntu-server%E3%81%A7mod_rewrite%E3%82%92%E6%9C%89%E5%8A%B9%E3%81%AB%E3%81%99%E3%82%8B/

http://wpdocs.sourceforge.jp/%E3%83%91%E3%83%BC%E3%83%9E%E3%83%AA%E3%83%B3%E3%82%AF%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9

http://httpd.apache.org/docs/1.3/mod/core.html#options









5 11月 09

Apacheのエラーログに、wp-cron.phpのエラーがあった。

script ‘/var/www/wp-cron.php’ not found or unable to stat

WordPressのcronプログラムが上手くいっていない?

ググってみると、いくつか情報があった。

/etc/hosts

を修正してみる。

sudo vim /etc/hosts/

ここで、サーバーに割り振ったLAN内IPアドレスにドメイン設定をしてみる

127.0.0.1       localhost
127.0.0.1       ubuntu
192.168.0.****       west-tokyo.ddo.jp

しばらくエラーログをリアルタイム監視してみる

tail -f /var/log/apache2/error.log

エラーが出なくなったので、大丈夫・・・だと思う。

参考情報

http://blog.dacelo.info/wordpress/entry-577.html?owa_from=feed&owa_sid=









5 11月 09

DDNSで付与されるドメイン名を変更。

divertrust.ddo.jpからwest-tokyo.ddo.jpへ。

vim /etc/apache2/sites-available/divertrust

<VirtualHost 192.168.0.****:80>
ServerName divertrust.ddo.jp
DocumentRoot /home/username/public_html/
<Directory /home/*/public_html>
Addhandler cgi-script .cgi
Addhandler cgi-script .pl
AllowOverride None
Options ExecCGI
Order allow,deny
Allow from all
</Directory>
CustomLog /var/log/divertrust/access.log env=!no
ErrorLog /var/log/divertrust/error.log
</VirtualHost>

これを

<VirtualHost 192.168.0.****:80>
ServerName west-tokyo.ddo.jp
DocumentRoot /home/nick/public_html/
<Directory /home/*/public_html>
Addhandler cgi-script .cgi
Addhandler cgi-script .pl
AllowOverride None
Options ExecCGI
Order allow,deny
Allow from all
</Directory>
CustomLog /var/log/west-tokyo/access.log env=!no
ErrorLog /var/log/west-tokyo/error.log
</VirtualHost>

へ変更。ServerName、エラーログの出力先をそれぞれ変える。

Apacheを再起動すると、エラーが起こる。

エラーログを確認

(2)No such file or directory: apache2: could not open error log file /var/log/west-tokyo/error.log.
Unable to open logs

設定を変えたが、ログファイルを書き込むディレクトリがない、と言っている。ディレクトリを作成。

sudo mkdir /var/log/west-tokyo

エラーが消えて、Apacheの再起動終了。









4 11月 09

404ページに、ApacheやOSのバージョン情報が表示されていたので非表示にする。

sudo vim /etc/apache2/apache2.conf

2点修正

ServerSignature Off
ServerTokens ProductOnly

上書きして、apacheをリスタート

sudo /etc/init.d/apache2 restart

適当なURLを入力して、表示された404ページに、諸情報が表示されていなければ成功です。