JavaでAkelos動かす

昨日の宣言どおり、AkelosをQuercus+Tomcatで動かしてみた。実際動くところみると、なんか不気味www

PHPユーザー向けに書くので、Java周りのセットアップをやや詳しめに。

用意するもの

Akelos
Quercus
Apache Tomcat
MySQL JDBC

データベースの準備

[mysqld]
default-character-set=utf8
skip-character-set-client-handshake

create database akelos;
create database akelos_dev;
create database akelos_tests;
grant all on akelos.* to akelos@localhost identified by 'akelos';
grant all on akelos_dev.* to akelos@localhost identified by 'akelos';
grant all on akelos_tests.* to akelos@localhost identified by 'akelos';
flush privileges;

TomcatとQuercusの準備

Tomcatを適当なフォルダに解凍して、環境変数CATALINA_HOMEを設定します。

 > set CATALINA_HOME="C:\apache-tomcat-6.0.18"

TomcatにMySQLドライバと、quercusをインストールします。
quercus.warはzip形式なので、拡張子を.zipに変更して解凍すればOK。

CATALINA_HOME/lib/mysql-connector-java-5.1.6-bin.jar
CATALINA_HOME/webapps/quercus-3.2.1

Tomcatを起動します。

 > cd CATALINA_HOME\bin
 > catalina.bat run

http://localhost:8080/quercus-3.2.1/ にアクセスすると・・・Java上でPHPが動く(なんということでしょ~)。

Quercusトップページ


Akelosセットアップ

※以下はTomcat上でAkelosセットアップを走らせる方法です。
 失敗するようなら、Webサーバ上でセットアップ済みの
 akelosフォルダをコピーして、
 パス定数(AK_FRAMEWORK_DIRなど)を書き換えればOK。

akelos_framework-0.9.zipを解凍して

 akelos_framework-0.9/akelos/下のファイルを、
 CATALINA_HOME/webapps/quercus-3.2.1/の下に、

まるっとコピー。index.phpは上書きします。
こんな風になります。

ディレクトリ構成

 quercus-3.2.1/config/boot.php
 quercus-3.2.1/app/controllers/framework_setup_controller.php

の2ファイルの先頭にパス情報を設定。
※本来必要ないはずですが、JavaとPHPのディレクトリセパレータの解釈の違いにより動かないところがあるので、明示的に設定しておきましょう。

 define('AK_BASE_DIR', 'C:\apache-tomcat-6.0.18\webapps\quercus-3.2.1');

ここでもう一度、
http://localhost:8080/quercus-3.2.1/
にアクセスすると。。。

 lib/AkActionView/AkHelperLoader.php:74: '&' is an unexpected token,

Quercusでは、PHP4向けの参照の書き方が解釈できないようです。


 $this

この&を削除してやる。他にも2ファイルに同様の修正。

 lib/AkActionController/AkCacheHandler.php:714
 lib/AkActionView.php:113

で、無事(?)インストーラー起動!



 lib/AkObject.php:122: Fatal Error: can't unset $this

のエラーがしつこいですが、とりあえず無視して進むことができます。消すには、/lib/AkObject.php:122行目をコメントアウト。

Scaffoldを試す

booklinkチュートリアルどおり、

 > php script\migrate Booklink install
 > php script\generate scaffold Book
 > php script\generate scaffold Author

まで終わったら動作確認。ちなみにQuercusにCLIはないので、phpコマンドを普通にネイティブのものを使います。

ここで注意は、Apacheのmod_rewriteに対応する機能がないので、パラメータでコントローラを指定してやる必要がある。

 http://localhost:8080/quercus-3.2.1/?ak=book

一通り、scaffold機能が動くことが確認できると思います。何も設定してないので、日本語は化けます。

Scaffold結果


次回は、mod_rewriteの代替と、日本語設定と、コネクションプールと、肝心のベンチマークを。


コメント

コメントしてください
お名前:
入力しなければ「匿名さん」。20字以内。

メール:
入力しても表示しません

URL:
入力すればリンクが貼れます


コメント: