[Zend Framework] レンタルサーバに Zend Framework をインストールする
レンタルサーバとしてますが ZendServer を用いない、通常の方法です。
インストールというか設置ですね。
Contents
想定ディレクトリ構成
こんなディレクトリ構成を想定して設定していきます。
./home/<あなたの契約ID>
├── projects
│ └── sample
│ └── public
└── public_html
└── www
└── sample
- projects/sample が zf で作成したプロジェクトディレクトリ。
- public_html が公開ディレクトリ。
- http://www.foo.com/sample のような形式でアクセスできるように設定。
契約しているレンサバが、サブドメインとかそういった名前のサービス付きならば、http://sample.foo.com とか http://sample.com とかの設定もできると思います。
composer で ZF1 をインストール
いまは zendframework1 も composer でインストールできるんですね。
{
"require": {
"zendframework/zendframework1": "1.12.*@dev"
}
}
公開ディレクトリの設定変更
./home/<あなたの契約ID>
├── projects
│ └── sample
│ └── public
└── public_html
└── www
└── sample
projects/sample/public 内の index.php, .htaccess をレンタルサーバの公開ディレクトリへコピーします。
$ cp projects/sample/public/index.php public_html/www/sample/
$ cp projects/sample/public/.htaccess public_html/www/sample/
以下、ファイルの内容を現在の構成にあわせて書き換えていきます。
最初の行でインストールした ZendFramework1 を読み込むようにしています。
php_value include_path ".:/home/<あなたの契約ID>/vendor/zendframework/zendframework1/library"
SetEnv APPLICATION_ENV production
RewriteBase /sample
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
path がおかしくならないよう RewriteBase も書いておきます。
APPLICATION_ENV も便利なので設定しておきましょう。
- APPLICATION_ENV を設定する | deadwood
プロジェクトディレクトリへのパスの部分を書き換えます。
// Define path to application directory
defined('APPLICATION_PATH')
|| define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../../../projects/sample/application'));
もしくは、index.php, .htaccess をコピーせず、代わりに symlink という選択肢もあります。
$ ln -s ~/projects/sample/public/ ~/public_html/apps/sample
この場合は、public/ 以下のファイルを使うことになります。
パスの修正は必要ないですね。
autoload.php
下記のように書いた部分ですが、
php_value include_path ".:/home/<あなたの契約ID>/vendor/zendframework/zendframework1/library/"
他の Composer パッケージを使うことを考えると、このようにしておいた方が良いのかもしれないですね。
require_once __DIR__ . '/../../../vendor/autoload.php';