最近、LinuxMint に作った環境で PHP と Eclipse を弄っているんだけど、ここへ来て ZendFramework を使ってみようと思い立ち、紆余曲折して何とか利用出来るまでになった
(正しいかどうかは未検証 ^^;…)
次回、同じ事をもう一度調べて実行できる自信が無いので、備忘として書いておくことにした…
多分、Ubuntu でもいけると思うけど、作業自体は Olivia で行った
最終的には、さくらのサーバー内で実行すると思うので、そのときは、また修行しないといけないかもしれない..
・最初は apt-get で ZendFramework をインストールしてみた
最初は、いつも通りに、apt-get install zend…. を行って、インストールしてみて使っていた
何年ぶりかなので、すっかり ZendFramework の使い方を忘れてしまっていた
そこで、最近、新しくなったらしいので、思い切って最新バージョンで行ってみよう!
なんて考えてしまったのが発端..
結局、apt-get でインストールした物はリムーブしてしまった
本体とバイナリーイメージとライブラリーだったかな?
dpkg で zend を探して削除したので、あまり覚えてない..
(残骸が /etc/php5/conf.d/zend-framework.ini として残るけど後で再利用した)
結構、(日本語の)情報がまだ少ない上に、参考にした皆さんの記事が高度すぎて、久し振りの身としては時間がかかってしまった
・curl と git と composer が必要なのでインストールする
curl と git は apt-get install .. で普通にインストール
(これも、実はあとで気がついたので、後々楽なように先に書いておこう..)
次に、composer という物が必要らしい
これが、また情報が少ない…
http://getcomposer.org/
http://getcomposer.org/doc/00-intro.md#installation-nix
ここの、Get Started にあるように実行した
$ sudo curl -sS https://getcomposer.org/installer | php
これも、あまり仕組みをよく理解しないまま実行してみた
このコマンドの成果として、composer.phar と言うファイルが実行したディレクトリーに作成される
場所はどこでも良いらしいので、一端、ここでお休みして、Zend 関連のファイルを入手する
・ZendFramework2 を持ってくる
仕組みとして、git を使ってダウンロードして来るのだろうと言うことで、最小限の Zend Framework 2.2.1 Minimal の tar.gz を拾ってきた
これは、このときの最新版で、そのときの最新版で作業する方が良いと思う
(多分、バージョンアップもそのうち行う事になると思うので、その時は、また備忘録が書ければ良いと思うが….)
ダウンロートディレクトリーで作業してしまったが、後で面倒になる可能性があるので、テンポラリーなどで作業する方が良いかもしれない
実は、ここに composer.json が付いてくる
最初は、これを使えば良いのだろう!と単純に考えてたけれども、甘かったらしい
見た限り、アップデートなどで利用出来るようになっている(んじゃないかな?)
つぎに、composer.json を用意した
・composer.json の用意
tar.gz を解凍したディレクトリーに composer.json が付いてくる
このままでは、composer を使ってインストルできないので、
https://packages.zendframework.com/
ここを参照して、 composer.json を用意した(テキストエディタで修正 ^^)
最初にあるように、repositories を 解凍してできた composer.json に追加した
次に、
"replace": { "zendframework/zend-authentication": "self.version", "zendframework/zend-barcode": "self.version", ....
とあるところを、
"require": { "zendframework/zend-authentication": "2.*", "zendframework/zend-barcode": "2.*", ....
の様に "require" へ変更して、バージョン情報も書き換えてみた
先のパッケージ一覧のページにあるパッケージが全部書いてあるか確認していないが、漏れがあったらこの要領で書けば良いんじゃないかな?と思っている…未検証だけど…
で、これを元に composer を実行する
・composer を実行する
先の手順で作った composer.phar を、composer.json を用意したディレクトリーにコピーする
そこで、コンポーザーを実行する
$ sudo php composer.phar install
すると、git でファイルを取り込んでくる
sudo しなくても良いかもしれない
問題が無ければ、実行したディレクトリに vendor と言うディレクトリーが作成されていると思う
これが、最終的に欲しいファイル群で、これを適切なディレクトリーにコピーして引用すれば良い!と言う事らしいです
・成果物を適当なディレクトリーにコピーする
かなり横着して、ダウンロードディレクトリーで作業してしまったので、vender ディレクトリーをそのままコーディングしやすいディレクトリーにコピーした..
apt-get でインストールした際に /usr/share/php と言うディレクトリーにインストールされていたので、それに習ってコピーしてみた
/usr/share/Zend に vendor 以下をそのままコピーしてみた
次に、zend-framework.ini にインクルードパスとして、そのディレクトリーを指定した
…
include_path=${include_path} ":/usr/share/Zend"
…
で、いつもの通り、sudo apachctl configtest と restart を実行して再起動する
phpinfo() などで、include_path が正しいか確認して、問題なければ一端完了!
・サンプルの実行
<?php
require_once('autoload.php');
$vers = new Zend\Version\Version();
echo $vers->getLatest();
を実行してみた
2.2.1 を表示したので、多分動作してるんじゃないかな?
と言う事で、今日はここまで…
同じ事を、数ヶ月、若しくは、数年後にできないと思うので書き記したけれども、どなたかのお役に立てれば僥倖と思い公開してみました
ZF2 の前に 1.x.x を動かすことにも苦労したが、基本的に mod_rewrite 絡みなので情報源はたくさん在ることでしょう..
(実は、この Olivia は VMware のゲストで、PHP などのソースは共有ディレクトリに保存しているので、さぁ大変…)
ところで、ここに書いた内容で、問題ないのか?とか、さくらのサーバーの FreeBSD でも同じような作業ができるのか?など、疑問や残件が一杯在りますけれども、追々、追加修正などを行う予定です
いつもは、公開しないで MindTouch deki と言うところに書いて、一人で満足してたんですけど、これを機にここのブログも使ってみようか?と思った次第…
(これも、最近 使い難い物になってしまったなぁ…と、愚痴ってみる ^^)
このブログも再構築中で、マルチドメインとかマルチディレクトリにしてくれとの要望もあるので…
書き足してみてみよう…使わないと、忘れてしまう.. ^^..