さくらのレンタルサーバでZendFrameworkを使う

さくらのレンタルサーバはPHPが使えるので、ZendFrameworkでも導入して、最近はやりのホームページとか作っちゃおうという投稿ですw

ZendFrameworkの設置

安定を求めないワタシは、何事も最新がいいということで、ZendFramework提供のレポジトリから最新のリビジョンをチェックアウトすることにします。
Subversionを利用するので、もしインストールしていない場合、まずはこちらをご覧ください。
インストールする場所は別段規定はありませんが、さくらのレンタルサーバを使っている他の方々の導入状況を調べるとどうやら$HOME/local/lib配下が多いようです。
なので、ワタシもそれに習って$HOME/local/lib/php/Zend内に展開しようと思います。

ホームディレクトリで下記コマンドを実行すればOK
[bash]
$ svn checkout http://framework.zend.com/svn/framework/standard/trunk/library/Zend local/lib/php/Zend
[/bash]
シェルに書いておくと便利ですね。

ちなみに最新のソースに更新する場合は以下のコマンドを実行します。
[bash]
$ svn update local/lib/php/Zend
[/bash]
バグがFIXされたら、これで最新のソースをGETしましょう。

最初のプロジェクト作成

コマンドラインでスケルトン作成

こちらをご覧ください。

…だけだと不親切なので、もう少し詳しく書くと
Zendをアーカイブ版でダウンロードする(若しくは、チェックアウトをtrunkの下から行う)とbinフォルダがあるんですよ。で、その中のzf.shとかzf.batを使うとですね~。Zendを使用したWebページを作成するのに必要なフォルダやファイルを作ってくれるのです!
[bash]
$ zf create project project_name
Creating project at $ZEND_HOME/bin/project_name
Note: This command created a web project, for more information setting up your VHOST, please see docs/README
[/bash]
したらば、VirtualHostの設定を行ったりする必要があるのですが、それはdoc/READMEを読めっちゅうことですな。
VirtualHostの設定については後述します。

ディレクトリ構成

上記コマンドを実行するとこんな感じのディレクトリやらファイルやらが作成されます。
Apache用のmod_rewriteの設定ファイルまで作ってくれるなんて、至れり尽くせりですねw
[text highlight=”19″]
project_name
├ application
│ ├ Bootstrap.php
│ ├ configs
│ │ └ application.ini
│ ├ controllers
│ │ ├ ErrorController.php
│ │ └ IndexController.php
│ ├ models
│ └ views
│ ├ helpers
│ └ scripts
│ ├ error
│ │ └ error.phtml
│ └ index
│ └ index.phtml
├ library
├ public
│ ├ .htaccess
│ └ index.php
└ tests
├ application
│ └ bootstrap.php
├ library
│ └ bootstrap.php
└ phpunit.xml
[/text]

.htaccessの設定

ドキュメントルートの設定がいろいろとおかしくなるので、以下の行を加えておこう

RewriteBase /

[text highlight=”1″]
RewriteBase /
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ – [NC,L]
RewriteRule ^.*$ index.php [NC,L]
[/text]

VirtualHostの設定

VirtualHostの設定はこんな感じで行います。publicがDocumentRootになるように、そしてZendFrameworkの設定ファイル内で開発環境や本番環境切り替えるためにAPPLICATION_ENVという名前で環境変数が設定されています。

[xml highlight=”5″]
<VirtualHost *:80>
ServerName www.o-live.jp
DocumentRoot /path/to/project_name/public

SetEnv APPLICATION_ENV "development"

<Directory /path/to/project_name/public>
DirectoryIndex index.php
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
[/xml]

include_pathの設定

PHPでZendFrameworkを有効にするためにZendライブラリへのパスを追加する必要があります。
パスを追加する方法は大きく2つ。php.iniで設定して全てのPHPアプリケーションにZendライブラリのパスを通すか、アプリケーションの起点となるファイル(今回の場合はindex.php)にてinclude_pathを追加セットするかです。
設計しそうなので、どちらでもいいと思います。ワタシはなるべくiniファイルは触りたくないので、index.phpで設定する方にしました。

index.phpで設定する場合

Zendフォルダの1個上のディレクトリまでをパスに通します。
[php]
// local/lib/php/Zend以下にライブラリがある場合
set_include_path(implode(PATH_SEPARATOR, array(
realpath(dirname(__FILE__).’/../../../local/lib/php’),
get_include_path()
)));
[/php]
Zendライブラリを使用する際は
[php]
require_once ‘Zend/Application.php’;
[/php]
このようにrequireできるようになります。

php.iniで設定する場合

include_pathの項目に上記と同様、Zendフォルダがよめる位置にパスを通します。
[text]
include_path = "/home/user/local/lib/php"
[/text]

これで必要であればApacheを再起動して、Webアプリケーションルートにアクセスして以下の画面がでたら準備完了です。

Welcom to the Zend Framework!
Welcom to the Zend Framework!

ここからは自分で使いやすいようにDocumentRootを変更したり、ディレクトリ名を変更したりして思う存分Zend Lifeを満喫してください。

お疲れさまでした。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です