[Zend Framework] レンタルサーバに Zend Framework をインストールする
レンタルサーバとしてますが ZendServer を用いない、通常の方法です。
インストールというか設置ですね。
[markdown]
## 想定ディレクトリ構成
こんなディレクトリ構成を想定して設定していきます。
“`
./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 でインストールできるんですね。
> * Packagist
> * zendframework (Zend Framework) · GitHub
> * [Composer – インストール | deadwood](https://www.d-wood.com/blog/2013/06/16_4017.html)
“`:home/<あなたの契約ID>/composer.json
{
“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 を読み込むようにしています。
“`:public_html/www/sample/.htaccess
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](https://www.d-wood.com/blog/2013/08/03_4427.html)
プロジェクトディレクトリへのパスの部分を書き換えます。
“`php:public_html/www/sample/index.php
// 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
下記のように書いた部分ですが、
“`:public_html/www/sample/.htaccess
php_value include_path “.:/home/<あなたの契約ID>/vendor/zendframework/zendframework1/library/”
“`
他の Composer パッケージを使うことを考えると、このようにしておいた方が良いのかもしれないですね。
“`php:public_html/www/sample/index.php
require_once __DIR__ . ‘/../../../vendor/autoload.php’;
“`
[/markdown]