2008年10月05日

[cakePHP]さくらインターネットに導入する(cake本体とwebrootを分ける)[サブドメインで運用]

共用レンタルサーバ「さくらインターネット」に cakePHPを導入するときの設定手順。

cake本体をネットからアクセスできる位置に設置するのはセキュリティ上、好ましくないので、webrootのみネットからアクセスできるようにし、その他は/wwwと同列の位置に置くこととする。

cakePHPインストール環境
/ドメイン名
 /cakemodule ←cakephpモジュール群インストールフォルダ
   /cake
   /app
   /docs
   /venders
     ・・・
 /www
   /webapp ←/app/webroot下のモジュール群インストールフォルダ
     ・・・


1. さくらインターネットの管理画面、「ドメインの追加」にてサブドメインの設定をする。

 ドメイン名 - アクション - フォルダ
 abc.hogehoge.com エイリアス /webapp


2. /cakemodule直下の.htaccess
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /cakemodule ←自分の位置
RewriteRule ^$ /www/webapp/ [L] ←自分から見たwebrootの位置
RewriteRule (.*) /www/webapp/$1 [L] ←自分から見たwebrootの位置
</IfModule>



3. /cakemodule/app直下の.htaccess
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /cakemodule/app ←自分の位置
RewriteRule ^$ /www/webapp/ [L] ←自分から見たwebrootの位置
RewriteRule (.*) /www/webapp/$1 [L] ←自分から見たwebrootの位置
</IfModule>



4. /webapp/webroot直下の.htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase / ←自分の位置
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !\.(cgi|css|gif|jp?g|png)$
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]

</IfModule>


※.htaccessのRewriteBaseは、cake(app含む)本体が/wwwと同じ階層フォルダ、webrootは/wwwの下位階層フォルダにある場合は、webroot(この例では/webapp/webroot)をBase("/")として、RewriteBase、RewriteRuleを定義すること。
/cake,/cake/appのRewriteBase、RewriteRuleは/webrootとの相対位置で定義する。
cake本体、webrootを同階層に設置する場合と異なるので注意。


5. /webapp/app/webroot/index.php
if (!defined('ROOT')) {
define('ROOT', DS.'home'.DS.'(ドメイン名)'.DS.'cakemodule');
}
/**
* The actual directory name for the "app".
*
*/
if (!defined('APP_DIR')) {
define('APP_DIR', 'app');
}
/**
* The absolute path to the "cake" directory, WITHOUT a trailing DS.
*
*/
if (!defined('CAKE_CORE_INCLUDE_PATH')) {
define('CAKE_CORE_INCLUDE_PATH', ROOT);
}



参考記事:
共有サーバでの公開設定
さくらインターネットへの導入


CakePHP ポケットリファレンス (Pocket Reference)
株式会社ブルーオーシャン 岡田 佳典
技術評論社
売り上げランキング: 39470
おすすめ度の平均: 4.5
4 cakePHPの時には是非
5 いま発売されているcake系書籍で一番良いです





posted by surviver at 11:30 | Comment(0) | TrackBack(0) | cakePHP
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。