2009年05月15日

初心者のためのVMWare+Ubuntu+MovableTypeの構築 その2

今日、同じ手順で会社のPCにて設定してみたらApache2のユーザーディレクトリが指定できなくて困りました。

UserDir public_html

を例によってhttpd.confに足していたのですが、

Invalid command 'UserDir', perhaps misspelled or defined by a module not included in the server configuration

というエラーがでて、設定が読み込めない模様。

いろいろググって調べてみましたが、モジュールが読み込めていないようなので、

LoadModule userdir_module /usr/lib/apache2/modules/mod_userdir.so

を追加して解決しました。
posted by BigMoonEz at 12:02 | Comment(0) | TrackBack(0) | Webサーバ | このブログの読者になる | 更新情報をチェックする

2009年05月12日

初心者のためのVMWare+Ubuntu+MovableTypeの構築 その1

MovableTypeは前から扱っていたのですが、レンサバから提供されていたものだったので、もう少し自由にいじれるMovableTypeの環境がないかなぁと思って自分でサーバー構築から始めることにしました。
しかし、過去の経験から別なPCに構築するとあまり触らなくて、そのうち忙しさにかまけていじらなくなることは目に見えていたので、なんとかいつも使うPCに構築したい!・・・もちろん安く。
ということで、VMWareを使ってLinuxServerを構築し、そこにMovableType環境を入れてしまおう!と目論見ました。
まぁネタ的には決して新しいものに挑戦するものではないですが、備忘録といいますか、作業記録的に。。。

まずはVMWareですが、こちらはVMWareのダウンロードページからVMware Playerを無料でダウンロードできます。
現在の最新版は2.5.1。こちらはインストールも問題ないでしょう。

次にUbuntuですが、UbuntuではVMWare用のイメージファイルが用意されています。最新版は8.04LTSになっています。

私は一昔前のLinuxを触ったことがあって、しばらくLinuxから離れていたのですが、Ubuntuをはじめて触ったときにはあまりの簡単さに驚きました。
VMWareを使わないで、別のPCなどにUbuntuを入れたい場合は、CDイメージが用意されていますが、こちらもCDさえ作れてしまえば異様に簡単にインストールできます。
これからLinuxを勉強したい人は是非お試しアレ。

イメージをダウンロードしたら、VMWareを起動して「ファイルを開く」でダウンロードしたUbuntuイメージを読み込みます。
Ubuntuが起動し、セットアップ。
2,3の質問に答えれば構築完了。すぐにログインできます。

ログインしたら、パッケージマネージャから必要なパッケージをインストールします。
メニューバーから「システム」-「システム管理」-「Synapticパッケージマネージャ」をクリック。
「再読込」をクリックしてパッケージのリストを最新にします。
そこから、MovableTypeに必要なApache2、MySQLServer、Imagemagickを選択(ダブルクリックで選択)し、「適用」します。
PostgresやSQLliteが良い人はそちらを選択。

インストール後、Apacheの設定。
前提としては、ユーザー領域にMovableTypeを設置する、ということでユーザー領域でもCGIが動作するようにします。

Apacheの設定等は/etc/apache2/にあり、そこのhttpd.confを書きかえます。
えーホントは、httpd.confは下位のバージョンとの互換のためにありこ一つ一つの設定を書いてはいけないはずで、本当はたぶん、ですがconf.dディレクトリの中にファイルを作って読み込ませなければいけないんだと思います。
何かに書いてました。はい。
しかしまぁhttpd.confに書いても読み込まれるわけで、古いApacheを知っているとなんとなく親近感があり、えー・・・面倒だからです。ハイ。

権限云々でhttpd.confをそのまま書き換えるのは難しいので、自分のディレクトリ/home/(user_name)内にhttpd.confを作成します。

Ubuntuの「場所」メニューから「コンピュータ」を選び「ファイルシステム」を選びます。
ここがいわゆるCドライブの中身ですが、「home」ディレクトリの中の自分のアカウント名(以下user_nameで示します)の中に入ります。
Windowsと動作的に同じなのでファイルの作り方まで解説しなくてもいいと思いますが念のため、右クリックで「ドキュメントの生成」-「空のファイル」で作れます。
右クリックで「"テキストエディタで開く"」を選択。
そこに次の文を記述して保存します。

<Directory /home/*/public_html>
Options +ExecCGI
AddHandler cgi-script .cgi
</Directory>

要するに、ユーザー領域においてCGIファイルをCGIとして動かしなさいよ、という設定です。

Ubuntuのメニュー画面から「アプリケーション」-「アクセサリ」-「端末」を開き、

sudo cp ~/httpd.conf /etc/apache2/

と入力。
ユーザーのホームディレクトリにあるhttpd.confを/etc/apache2に管理者権限でコピーせよ!というコマンドです。

/etc/apache2以下は自分の管理権限にないので、管理者権限でコピーするわけです。
なので、パスワードを聞かれたらパスワードをいれてください。

その後、

sudo /etc/init.d/apache2 force-reload

で設定を読み込み

sudo /etc/init.d/apache2 restart

でApacheを再起動させます。

自分のホームディレクトリ/home/(user_name)に「public_html」という名前のディレクトリを作成します。
そこにファイルを置くと、
http://localhost/~(user_name)/
で参照することができます。

/home/(user_name)/public_html/の中にcgi-binというフォルダをつくり、その中にtest.cgiという空のファイルを作成。
右クリックで「"テキストエディタで開く"」を選択。
以下の内容を記述して保存します。

#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "Hello, World.";

perl/CGIがちゃんと動くかテスト用のスクリプトです。
保存し、ファイルを右クリック。
「プロパティ」を選択し、「アクセス権」タブで「プログラムとして実行できる」にチェックを入れます。

再確認。
/home/(user_name)/public_html/cgi-bin/test.cgi
がありますか?

ブラウザを起動してみて
http://localhost/
と入れてみてください。

It Works!

と表示されたらApacheの動作はOKです。
さらに
http://localhost/~(user_name)/cgi-bin/test.cgi
を開いてみて、「Hello, World.」と表示されればCGIの動作もOKです。

もし表示されない場合は、Apacheのサイトを読んで解決してね黒ハート

後はデータベースの構築と、imagemagickの初期設定、Movabletypeの設置ですが、その2へ続きます。。。
posted by BigMoonEz at 23:16 | Comment(0) | TrackBack(0) | Webサーバ | このブログの読者になる | 更新情報をチェックする

2007年05月24日

別ドメインから画像を表示させないようにする

Apacheの.htaccessを使う方法です。
実際に最近あったのですが、コピーを厭わない某国のブログから画像にimgタグで直リンクが貼られており、まるで自分のサイトのように使われていました。
アクセスログを見て気づいたのですが、そんなときはこちら
SetEnvIf Referer "^http://www¥.hoge¥.com" OK
SetEnvIf Referer "^$" OK
order deny,allow
deny from all
allow from env=OK

自ドメイン内の呼び出しからのみ許可するわけですが、ドメイン名は
"^http://www¥.hoge¥.com"
のように、ドット(.)の前に円マーク(¥)、httpの前に(^)が必要です。
posted by BigMoonEz at 10:49 | Comment(0) | TrackBack(0) | Webサーバ | このブログの読者になる | 更新情報をチェックする

2007年04月02日

ページが見つからないとき、何を表示させる?

http://umioyo.seesaa.net/article/37341157.html
こちらで紹介したように、.htaccessファイルを使えばディレクトリ単位で設定の変更が可能です。
基本的にApacheのリファレンスをそのまま.htaccessに記述すればそのディレクトリ以下に有効になるようですが、レンタルサーバーの場合、.htaccessの使用が許可されていないと有効にはなりません。
今回は、ページが見つからない、いわゆる404 NotFoundエラーのとき。
IEのエラーメッセージを表示される場合や使用しているレンタルサーバーのエラーメッセージが表示される場合もありますが、あまりスマートではないですよね。
そんな場合は、.htaccessファイルに
ErrorDocument 404 (404エラーの場合に表示させるアドレス)

例えば、
ErrorDocument 404 error.html

のように記述します。

ちなみに403 Forbidden(アクセス権がない)エラーの場合は
ErrorDocument 403 error.html

のように記述します。

アクセス解析機能がついている場合は一度サイト内を確認してみてください。意外と404エラーで別なページに飛んでいる訪問者は多いですよ。
posted by BigMoonEz at 10:04 | Comment(0) | TrackBack(0) | Webサーバ | このブログの読者になる | 更新情報をチェックする

2007年02月14日

拡張子.htmlのファイルでもPHPが動作するようにする

通常、PHPファイルは拡張子が.phpや.php3となります。
セキュリティ上、PHPファイルであることを見せたくない場合Webサーバーの設定を変えることで、拡張子が.htmlでも動作するようになります。

【Apacheの場合】
PHPが動作するように、httpd.conf内に次の行を書き加えたと思いますが、
AddType application/x-httpd-php .php

これを
AddType application/x-httpd-php .php .html
とします。

Webサーバーを再起動します。

【AN HTTPD】
「オプション」-「一般」を開き、「一般」タブにある拡張子と対応するプログラムを表示するところ(下図参照)から現在登録されている「.php」を選択します。

php1.jpg

下の「編集」ボタンをクリックし、
拡張子のところに.htmlを追加します。

php2.jpg


追加する際、すでに.phpが記述されていると思いますが、間に「,」(カンマ)をいれます。
.php,.html

Webサーバーを再起動します。
posted by BigMoonEz at 08:41 | Comment(0) | TrackBack(0) | Webサーバ | このブログの読者になる | 更新情報をチェックする