LeopardでTomcatを自動起動させる

無事Tomcatのインストールは終わったのですが、Macを起動させて自分のデスクトップが表示される時点で、自動的にTomcatを起動させたいという欲望に駆られています。rep2 機能拡張パックとW2Chというエントリにも書きましたが、昼休みにP905iから自宅Macのrep2を利用しているため、今度は同じように昼休みにP905iから自宅MacのW2Ch 中間鯖を利用してみたいのです。

現在は、平日の正午にMacを自動起動させるよう、Mac OS X 10.5.1 Leopardのシステム環境設定「省エネルギー設定」から「スケジュール」という項目で設定しています。Web 共有をONの状態でシステム終了しておけば、自動起動してもWeb 共有はONが保たれ、Apacheが利用できています。さらに、Tomcatも自動起動してくれないとW2Ch 中間鯖が使えません。Webで検索したら、Tomcatを自動起させるの記事はたくさん見つかったのですが、私のような初心者レベルにはスクリプトの書き方や設定の仕方がイマイチよくわからず、挫折してしまいました。でも、ここで引き下がるわけにはいかないので、システムの仕組みがよくわからない初心者でも、システムに手を施すことなく、安全にTomcatを自動起動させる方法を考えてみました。

システム環境設定の「アカウント」で「ログイン項目」を利用すれば、うまくいくんじゃないかと・・・。あとは、Tomcatのバージョンを切り替えてもいちいちログイン項目で設定し直さなくていいように、「/usr/local/tomcat/Current/bin/startup.sh」を呼ぶスクリプトというかアプリをつくればいいのですが、AppleScriptは知識が追いつかず失敗。次いで、さらに知識が乏しくてもなんとかなりそうなAutomatorを使ってみたところ、あっさり成功! というわけで、Automatorを使って、Tomcatを自動起動させるアプリを作ってみましょう。

アプリケーションフォルダに入っている、Automatorを起動します。新規ワークフローの開始点をどれにするか聞いてくるので、「カスタム」を選んで選択ボタンをクリックします。すると、ワークフローの画面が開きます。

左上の方にある虫眼鏡のマークが付いた検索窓に、「シェル」と入力すると自動的に絞り込まれ、「シェルスクリプトを実行」というのがリストアップされます。

この「シェルスクリプトを実行」という行を右側のグレーの広い部分にDrag and Dropして下さい。

シェルのポップアップメニュー部分が「/bin/bash」になっているので、「/bin/sh」を選びます。そして、すぐ下の白いテキストボックス内に、「/usr/local/tomcat/Current/bin/startup.sh」と記入します。

現在Tomcatが起動していないことを確認(http://localhost:8080/)し、一番右上の黒い右三角ボタンの「実行」をクリックします。すがすがしい音ともに、緑に白いレ点のマークが表示されれば、ワークフローがきちんと実行して完了したことになります。

再度、Tomcatを確認(http://localhost:8080/)してみて下さい。きちんとTomcatは起動しましたよね?

あとは、このワークフローをアプリとして保存します。Automatorの「ファイル」メニューから「別名で保存…」を選ぶと保存先のダイアログが出てくるので、フォーマットが「ワークフロー」となっているので「アプリケーション」に選び直してから、自分のHomeディレクトリに「Tomcat起動」などと名前を付けて保存します。あとは、この「Tomcat起動」アプリをログイン項目に追加すればOKです。

ついでに、「Tomcat終了」アプリもつくっておくといいでしょう。先と同様にテキストボックス内に「/usr/local/tomcat/Current/bin/shutdown.sh」と入れて、実行が確認できたらアプリケーションで保存するだけです。ダブルクリックでTomcatを終了できるようになります。

LeopardにTomcatをインストール

Mac OS X 10.5.1 LeopardにTomcatというものをインストールしないとW2Chの中間鯖がMac上で立てられないというのがきっかけで、早速Tomcatやらをインストールした備忘録です。Tomcatがなんなのかすら、実際にはよくわかってなくても、インストールは簡単なのでご安心を!

今回のインストールにあたり、CreativeStyleのMac OS X(Leopard)にTomcatをインストールを参考にさせていただきました。LeopardでTomcatをインストールされた記事が少なく、大変貴重な情報をありがとうございました。

まず、必要なものから(2008.01.05現在)。
・Mac OS X Leopard 10.5.1が動いているMacintosh
Apache Tomcat

最新安定版(!?)のApache Tomcat 5.5.25をダウンロードします。Binary DistributionsのCoreから、.zipもしくは.tar.gzをクリックすればOKです。ここでは、ファイルサイズの小さい「apache-tomcat-5.5.25.tar.gz」を取ってきてインストールしたいと思います。わかりやすいように、ダウンロードしてきた「apache-tomcat-5.5.25.tar.gz」をデスクトップに移動させます。Finderの「移動」メニューから「フォルダへ移動…」を選び、出てきたダイアログに下記のように入力して下さい。コピペでも大丈夫です。

/usr/local

「local」というフォルダが開かれ、いくつかフォルダが並んでいるかと思います。ここにTomcatをインストールするためのフォルダを作ります。ユーティリティフォルダ(/Applications/Utilities)にあるターミナルを起動し、下記のように入力してreturnキーを押します。この時、行頭の$と半角スペースは入力しないで下さい。

$ sudo mkdir /usr/local/tomcat

「Password:」と聞いてくるので、システム管理者のパスワード(Leopardインストール時に設定したパスワード)を入力してreturnキーを押します。すると、「local」フォルダの中に「tomcat」フォルダが作成できたのがわかると思います。

Finder上の「tomcat」フォルダをダブルクリックして中に移動します。このフォルダにダウンロードしてきた「apache-tomcat-5.5.25.tar.gz」をコピーします。ターミナル上で「sudo cp 」まで入力したら、デスクトップ上の「apache-tomcat-5.5.25.tar.gz」をターミナルの画面へDrag and Dropするとパスが自動的に入力されます(入力ミスが防げるし、長いパスの時は便利です)。続けて、「/usr/local/tomcat」と入力すると、下記のようになると思います。またsudoから/tomcatまで改行なしの1行となります(一気にコピペで大丈夫です)。

$ sudo cp /Users/ユーザー名/Desktop/apache-tomcat-5.5.25.tar.gz /usr/local/tomcat

「Password:」と聞いてきたら入力します(さっさと進めれば、聞いてこないときもあります。以後、「sudo」で始まるコマンドを実行したときに「Password:」と聞いてきたら、その都度入力して下さい)。すると、「tomcat」フォルダの中に「apache-tomcat-5.5.25.tar.gz」がコピーされたのがFinder上から確認できると思います。ターミナルで入力するパスを短くするため、「tomcat」ディレクトリに移動します。

$ cd /usr/local/tomcat

「tomcat」フォルダの「apache-tomcat-5.5.25.tar.gz」を展開させます。

$ sudo tar zxvf apache-tomcat-5.5.25.tar.gz

ターミナルで目にもとまらぬ速さでファイルが展開されているのがわかります。展開が完了したら、Finder上でも「apache-tomcat-5.5.25」というフォルダができているのが確認できると思います。今後新しいバージョンや複数のバージョンのTomcatをインストールした際に、簡単に切り替えたりと、管理がしやすくなるように「Current」というシンボリックリンクを作成し、リンク先を「apache-tomcat-5.5.25」に設定します。

$ sudo ln -s /usr/local/tomcat/apache-tomcat-5.5.25 /usr/local/tomcat/Current

Finder上で「tomcat」フォルダの中に「Current」というエイリアスフォルダのようなアイコンが増えたと思います。これがシンボリックリンクです。今後、tomcatを呼び出すときは必ず「/usr/local/tomcat/Current」のように「Current」を介するようにします。

一般ユーザからでも簡単に使えるようにするため、「/usr/local/tomcat/」内のディレクトリの所有者権限を変更します。

$ sudo chown -R ユーザー名:staff /usr/local/tomcat/apache-tomcat-5.5.25
$ sudo chown -R ユーザー名:staff /usr/local/tomcat/Current

Tomcatを起動する際に必要な環境変数「JAVA_HOME」を設定します。環境変数を有効にするためには、ターミナルを一度終了させる必要があります。ターミナルを終了して、再び立ち上げてから下記コマンドを入力します。

$ echo export JAVA_HOME=/Library/Java/Home >> .bash_profile

ここまでできれば、インストールは完了です。早速Tomcatを起動してみましょう。

$ /usr/local/tomcat/Current/bin/startup.sh

Safari等のブラウザで以下のURLにアクセスし、猫がこっちを向いているページが表示されればインストール成功です。

http://localhost:8080/

Tomcatを終了させるには次のコマンドを入力します。

$ /usr/local/tomcat/Current/bin/shutdown.sh

rep2 機能拡張パックとW2Ch

自宅のMacをWEBサーバーにしてrep2(私が実際に使っているのはrep2 機能拡張パック)を使ってるのは先にも書きましたが、Dynamic DNSのDynDNSを利用して、昼休みにはP905iから自宅のrep2にアクセスしたりとなかなか快適に使っていたりします。

でも、今年になって新しいことにトライしたいなということで、とりあえずiアプリでもっぱら評判のFOMA90x専用2ちゃんねるブラウザ W2Chを使ってみようと思い、このまとめwikiサイトを読んでると・・・。中間鯖というのを経由しなくてはならないと言うことが書いてあり、この中間鯖はお心優しい方たちがボランティアとなって無償で提供して下さってるらしいこと(もちろんアプリ自体も作者様が無償で提供して下さってます)。なにやらこの中間鯖は自分で構築できるとも書いてある。そして、ご丁寧にも中間鯖の立て方がまとめられてるじゃないですか! LinuxとWindosでの中間鯖の立て方がまとめられてるものの、当然のことながらMac OS Xでの立て方が書いてない・・・。なんか、悲しいというかちょっぴり悔しいじゃん! というわけで正月休みに時間を割いて、自分専用のW2Ch中間鯖を立ててみることにトライしました。

作者様による説明と、HMX様による説明を読み読みすると・・・。Apacheと連携するTomcatというかわいいネコのような名前のものが必要らしい。そういえば、サーバー環境を整える際、Webで検索すると時々このネコちゃんを見かけたことがあるのを思い出しました。JavaServletとJavaServer? なんだかよくわからないけど、自分のMacで動かせるようなので、早速試したくなるのが人間よね(笑)。

結論から言いますと・・・。説明の読み読みから約1時間半でW2Chの中間鯖が、Mac OS X 10.5.1 Leopard上で無事動きました〜! なんだ、Apacheのhttpd.conf編集するより全然楽じゃん! 中間鯖に負荷を気にしながら使うより、自分専用の中間鯖があった方が快適なことは明白・・・。

Apache TomcatのインストールおよびW2Chの中間鯖の立て方については、追ってエントリしたいと思います。

LeopardでApacheを動かそう(CGI・PHP含む)

Mac OS X 10.5.1 Leopardでrep2とかrep2 機能拡張パックとか使うために、WEBサーバー(Apache 2.2)を動かし、PHPも動作させる必要があるんですけど、Leopardをインストールしたときにすぐ利用できなくてあたふたしちゃった(Apacheが1.3ベースから2.2ベースになった)ので、備忘録ということで書いておこうと思います。初心者レベルだとちょっと難しいかと思いますが、意外とやってみたらそれほど難しくもないかと思うので、自己責任においてチャレンジしてみるのもいいかもしれません。Macには標準でApacheやPHPがインストールされてるので、他のOSより取っつきやすいはずですよ!

まず、必要なものから(2008.01.04現在)。
・Mac OS X Leopard 10.5.1が動いているMacintosh
・Xcode Tools(LeopardのインストールDVDに収録されてます)
・テキストエディタ(私はJedit XのRev.2を愛用)
・Pseudo
Leopardが動作していて、Xcode Toolsをインストールしてない人は、LeopardのインストールDVDから「XcodeTools.mpkg」をダブルクリックしてインストールしましょう(場所は下記パス参照)。

/Mac OS X Install DVD/Optional Installs/Xcode Tools/XcodeTools.mpkg

今後いろんなものをインストールしたりするときに必要になってくるので、これを機に入れておくことをおすすめします。今回はこのToolsのうち、インストール説明用として、FileMergeというのをのちほど使いたいと思っています。
Jedit XとPseudoをアプリケーションフォルダ(/Applications)にインストールしておきます。さぁ、これで下準備ができたので、ここからが本番です! ゆっくり落ち着いて作業しましょう!

Finderの「移動」メニューから「フォルダへ移動…」を選び、出てきたダイアログに下記のように入力して下さい。コピペでも大丈夫です。

/private/etc/apache2

すると、「apache2」というフォルダが開かれ、ファイルやフォルダが並んでいると思います。ここで、Apacheの設定を司っているのが「httpd.conf」というファイルなので、これを編集します。重要なファイルなので、念のためバックアップを取っておきます。ユーティリティフォルダ(/Applications/Utilities)にあるターミナルを起動し、下記のように入力してreturnキーを押します。この時、行頭の$と半角スペースは入力しないで下さい。またsudoから.backupまで改行なしの1行となります(一気にコピペで大丈夫です)。

$ sudo cp /private/etc/apache2/httpd.conf /private/etc/apache2/httpd.conf.backup

「Password:」と聞いてくるので、システム管理者のパスワード(Leopardインストール時に設定したパスワード)を入力してreturnキーを押します。すると、「httpd.conf.backup」というファイルがFinder上に現れたと思います。「httpd.conf」と全く同じ中身の、同じアクセス権のファイルとして、「httpd.conf.backup」というバックアップファイルが作られました。Finderの「情報を見る」でファイルを見比べてみるとよくわかると思います。後で、デフォルトの「httpd.conf」に戻したいというときは、上記コマンドの「httpd.conf」と「httpd.conf.backup」を入れ替えて入力すればOKです。バックアップが作成できたら、ターミナルは終了して構いません。

こういったシステムやサーバ関連のファイルやフォルダは読むことはできても書き込んだりなどの編集は通常できないようになっています(先のコマンドもsudoという特別な呪文が必要なのはそういう理由からです)。そこで、普段から利用しているテキストエディタでもこれらのファイルを編集できるようにするのが、Pseudoの役目です。Pseudoを起動し、その小さな画面にテキストエディタ(ここではJedit X)のアプリをDrag and Dropさせてやります(「File」メニューから「Launch」を選び、ダイアログ経由でテキストエディタを選択しても同じです)。するとそのテキストエディタがシステム管理者の権限で実行されます。テキストエディタが起動したら、Pseudoは終了して構いません。「httpd.conf」をDock上にあるテキストエディタにDrag and Dropします。わかりやすいように、Jedit Xの「表示」メニューから「行番号を表示」で「狭い幅で」を選び、同じく「表示」メニューから「行番号の単位」を「パラグラフ」にます。お好みで「不可視文字の表示」を「まとめて表示」を選ぶと、制御文字も表示されて見やすいかと思います。

FileMergeで変更箇所がわかりやすいようにスクリーンショットを撮ってみました。クリックすると大きく表示されます。左側がバックアップの「httpd.conf.backup」、右側が変更後の「httpd.conf」です。


httpd.confの114行目:PHPを有効にする
行頭の#をとる。

LoadModule php5_module
libexec/apache2/libphp5.so

httpd.confの147行目:管理者のメールアドレスを設定する
本来なら管理者である自分のメールアドレスを入力するが、ひっそりと自分だけで使うなら表示不要のため、行頭に#を付ける。

#ServerAdmin [email protected]


httpd.confの174行目
FollowSymLinksをAllに書き換える。

Options All

httpd.confの175行目
NoneをAllに書き換える。

AllowOverride All


httpd.confの203行目:SSIとCGIを有効にする
MultiViewsのあとにIncludesとExecCGIを追記する。

Options Indexes FollowSymLinks MultiViews Includes ExecCGI

httpd.confの210行目:.htaccessを有効にする
NoneをAllに書き換える。

AllowOverride All

httpd.confの225行目:.index.phpや.index.cgiを省いても表示できるようにする
index.htmlのあとにindex.phpとindex.cgiを追記する。

DirectoryIndex index.html index.php index.cgi


httpd.confの324行目:
行頭に#を付ける。

#ScriptAliasMatch ^/cgi-bin/((?!(?i:webobjects)).*$) "/Library/WebServer/CGI-Executables/$1"

httpd.confの340〜345行目
すべての行頭に#を付ける。

#<Directory "/Library/WebServer/CGI-Executables">
#AllowOverride None
#Options None
#Order allow,deny

#Allow from all#</Directory>


httpd.confの391行目:CGIスクリプトの指定
行頭の#をとる。

AddHandler cgi-script .cgi

httpd.confの402行目:SSIを拡張子.htmlのファイルで動かす
行頭の#をとり、.shtmlを.htmlに書き換える。

AddType text/html .html

httpd.confの403行目:SSIを拡張子.htmlのファイルで動かす
行頭の#をとり、.shtmlを.htmlに書き換える。

AddOutputFilter INCLUDES .html

以上を、すべて編集し終えたら、Jedit Xの「File」メニューから「保存」します。保存が完了したら、Jedit Xを終了して構いません。

では、実際にApacheを起動します。システム環境設定を起動し、「共有」を選びます。左のリストから「Web 共有」をクリックするとApacheが起動します。Safari等のブラウザで下記にアクセスします。

http://localhost/

無事このような画面が見えたら、Apache 2.2.6の起動は成功です!

PHPが動作しているかは簡単にチェックできます。テキストエディタを起動し、下記内容の3行を記入し、プレーンテキスト形式で保存します。

<?php
phpinfo();
?>

ファイル名を「test.php」などと、拡張子をphpに変更し、下記フォルダ(ディレクトリ)に置きます。

/Library/WebServer/Documents

ブラウザからhttp://localhost/test.phpとアクセスしてみて、PHP Version 5.2.4と表示され、環境等がずらずら表示されれば、無事PHPが動いています。確認ができたら、上記フォルダからtest.phpははずしておきましょう。他者にサーバーの環境等を盗み見られないようにするためです。

CGIとSSIの動作確認については、パーミッションの設定や、セキュリティ上いろいろあるので、割愛させていただきます(Webで検索すればたくさん情報があるので)。中級者以上であれば、futomi’s CGI Cafeにて配布されている、サーバーアナライザーを設置してみると、いろいろと情報が得られていいかもしれません。

ここまでできれば、rep2やrep2 機能拡張パックのインストールは簡単なはずなので、各自頑張って下さい! Dynamic DNSサービスについても難しくないので、Webで検索して下さい(急に投げやり!?)

あと、ルータやOS内蔵のファイヤーウォール等で80番ポート以外は原則閉じておくことを忘れずに!