2.6公開間近!!Ethnaを5分でインストール
k-holyさんの エラーハンドラと例外ハンドラによるエラー処理 (PHP Advent Calendar jp 2011 Day 11)、に続いてPHP Advent Calendar jp 2011 12日目はじめます。
PHP Advent Calendar jp 2011
にある「書くTipsは、10分で考えて、5分で書ける内容で ok です。」に甘えて書きたいと思います。
今回のテーマはEthnaのインストールです。既に使われているかたはスルーしてください。一昔前はちょいちょい話に出てきましたが、最近影の薄くなったEthnaに日を当てたいと思います。
早速はじめます。
Ethnaの特徴は
- わかりやすい MVC 風の構造
- 圧倒的に簡潔で強力なフォーム機能
- 「理想の追及」よりも「実際のアプリケーション開発」に重点をおいた現実的な設計思想
となっています。
最近のフレームワークでは普通な事かもしれません
しかしEthnaには重要なキーワードがあります。
『絶妙に妥協』
このキーワードも絶妙ですが、ほんといい感じなんですよね
なんでも上手い事やれて自由なんですけど、要所で面倒くさい(制約がちゃんとある)。
弱点というと、人口が少ないので、色々な要望にプラグインやらライブラリで対応出来ないというところでしょうか
自分でがしがし作れる人にはほんっといい感じなんです。
ということで5分で準備完了なので、その手順の解説です。
PEARインストール
1.pearチャンネルの登録
[php][root@localhost]#pear channel-discover pear.ethna.jp[/php]
2.ethnaをpearインストール
[root@localhost]#pear install -a ethna/ethna-beta
これで準備完了です!
stable版の2.5を利用する場合は
[root@localhost]#pear install -a ethna/ethna
です。
3.インストール確認
インストールが完了するとethnaコマンドが利用出来るようになります。
[kashioka@localhost ~]$ ethna -v
とすると
バージョンに引き続き
Ethna開発に携わった偉大な人々の名前が表示されます。
Ethna 2.6.0-beta3 (using PHP 5.3.8)
.
4.プロジェクトの作成
ethnaでプロジェクトを作成するためには
プロジェクト名とプロジェクトの配置ディレクトリを決めてください。
ここでは
プロジェクト名:sample
配置先:/home/phpkashioka/
とします。
プロジェクトの作成にもethnaコマンドを使用します。
[kashioka@localhost phpkashioka]$cd /home/phpkashioka
[kashioka@localhost phpkashioka]$ ethna add-project sample
creating directory (/home/phpkashioka/sample) [y/n]:
と聞かれます。
プロジェクトの配置先があっていればyを入力してください。
パーミッション等に問題が無ければ、必要なファイルがプロジェクトディレクトリに生成されます。
最後に
project skelton for [sample] is successfully generated at [/home/phpkashioka/sample]
と表示されればインストールは完了です。
5.ヴァーチャルドメイン設定
[kashioka@localhost sample]$ pwd
/home/phpkashioka/sample
[kashioka@localhost sample]$ ls
app bin etc lib locale log schema skel template tmp www
プロジェクトの配下には
app アプリーケーションディレクトリ
bin コマンドラインスクリプト
etc 設定ファイル等
lib アプリケーション用ライブラリ置き場
locale 言語ファイル
log ログディレクトリ
schema DBスキーマ置き場
skel スケルトンファイル
template アプリケーション用テンプレートディレクトリ
tmp テンポラリーディレクトリ
www 公開用ディレクトリ
といったディレクトリがあります。
このwwwディレクトリをヴァーチャルドメインに設定することで
ブラウザから確認が行えます。
conf.d/以下にphpkashioka.confのように設定するか
.htaccess等でバーチャルドメインの設定を行ってください。
ここではphp.example.comでアクセスを行うことを想定しています。
<VirtualHost *:80> ServerName php.example.com DocumentRoot /home/phpkashioka/sample/www ErrorLog logs/phpkashioka-error.log CustomLog logs/phpkashioka-access.log combined env=!no_log </VirtualHost>
ブラウザよりphp.example.comにアクセスすると
このように表示されればインストールは完了です。
アーカイブインストール
pearでインストール出来ない場合はアーカイブをそのままコピーしてEthnaのセットアップを行うことが出来ます。
https://github.com/ethna/ethna/downloads
githhubよりzipかtar.gzでダウンロードします。
[kashioka@localhost ~]$unzip ethna-ethna-2.6.0beta3-0-g8ba873d.zip
これで作業ディレクトリにファイル解凍されますので
こちらをEthna配置用ディレクトリにコピーします。(ここでは/home/phpkashioka/)
[kashioka@localhost ~]$ mv ethna-ethna-
ethna-ethna-2.6.0beta3-0-g8ba873d.zip ethna-ethna-8ba873d/
[kashioka@localhost ~]$ mv ethna-ethna-8ba873d/ /home/phpkashioka/Ethna
[kashioka@localhost ~]$ cd /home/phpkashioka/
[kashioka@localhost phpkashioka]$ php Ethna/bin/ethna_handle.php -v
Ethna 2.6.0-beta3 (using PHP 5.3.8)
Copyright (c) 2004-2011,
http://ethna.jp/
と見れれば、もう準備は完了です。
アーカイブインストール時の追加作業
1.ethnaコマンドを使用できるようにする
上記ではethna_handle.phpを使用しています。アーカイブのコピーではethnaコマンドは自動で利用できるようになりませんので、追加の作業が必要になります。
.bashrc等に
# .bashrc
alias ethna=’php /home/phpkashioka/Ethna/bin/ethna_handle.php’
として
source ~/.bashrc
で有効にしてください
ごれで疑似的にethnaコマンドの利用が出来ます。
[kashioka@localhost bin]$ ethna -v
Ethna 2.6.0-beta3 (using PHP 5.3.8)
実際に実行するためにはアーカイブインストールの場合は
2.include_pathを設定する。
php.iniやini_setで上記のEthnaディレクトリにパスを通してください。
php.iniの場合は
include_path = “.:/home/phpkashioka/”
のように記述してください。
3.Smartyの追加
このままではSmartyが入っていない場合はエラーが発生しますので
[kashioka@localhost ~]$wget http://www.smarty.net/files/Smarty-2.6.26.zip
[kashioka@localhost ~]$unzip Smarty-2.6.26.zip
で解凍したあと、先ほどの作業ディレクトリにSmartyフォルダとしてコピーしてください。
[kashioka@localhost ~]mv Smarty-2.6.26/libs /home/phpkashioka/Smarty
ここまで行えば、PEARインストールと同様にヴァーチャルドメインの設定を行って
からサンプル画面を表示することが出来ます。
PEARインストールなら5分で実行できますが
アーカイブインストールだと5分は厳しいですね(環境等にも左右されますし)
以上、Ethnaのインストールについてでした。
ほとんどが公式ページにのっているものですm(__)m
ちなみに2.6のドキュメントはTOPからよりhttp://ethna.jp/doc/からの方が行きやすいです。
もうすぐ2.6リリースされるらしいです。非常に期待しています。是非みなさんもEthna使ってみて、いつかEthna祭りやりましょうw
明日のPHP Advent Calendarはredsnow_さんです!お楽しみに