.ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録

.検索

.メインメニュー

.フォーラムメニュー

.オンライン状況
15 人のユーザが現在オンラインです。 (15 人のユーザが フォーラム を参照しています。)

登録ユーザ: 0
ゲスト: 15

もっと...

.
.リンク集

メイン
   インストール・セットアップ(Install,Setup)
     共有サーバでの公開設定
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
imoto
投稿日時: 2006-12-3 21:21
Baker スタート
登録日: 2006-11-26
居住地:
投稿: 8
共有サーバでの公開設定
はじめまして。
今回初めてCakePHPで開発をしています。

普段はローカル(xampp)で開発しており、このときは動くのですが、共有サーバで公開設定にしたところ、はじめの画面は映るものの、リンクをクリックすると

Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, support@sakura.ad.jp and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.


というエラーが出てしまいます。


このフォーラムや、マニュアルのCakePHPプログラマーズ リファレンスガイド - 高度なセットアップ方法をみていろいろ設定してみたのですが、解決できません。
探したところ、
XAMPP環境でのトラブルについて。
http://cakephp.jp/modules/newbb/viewtopic.php?viewmode=thread&topic_id=238&forum=2&post_id=358#forumpost358
と状況が似ています。

なお、自分の場合も、
http://test.com/posts
http://mynority.jp/posts/view/1
のときは上のエラーがでてしまうのですが、

http://test.com/index.php?url=posts/view/1
のときはページが表示されます。



●XAMPPディレクトリ構成
 +www(ドキュメントルート)
  +public_html
  | |
  | +test アプリケーションルート(app/webrootに相当)
  |   |
  |   +css, files, img, jsディレクトリとファイル
  +cake
    |
    +app    アプリケーションディレクトリ
    | |
    | +test testアプリケーションディレクトリ
    |   |
    |   +webroot以外のディレクトリとファイル
    +cake   cakeディレクトリ
    | |
    | +config, docs, libs, scriptsディレクトリとファイル

index.phpの設定
define('ROOT', 'さくらのパス/www/cake/');
define('APP_DIR', 'test');
define('CAKE_CORE_INCLUDE_PATH', ROOT);

ほかのところはいじっていないと思います。



環境は
さくらのスタンダードプラン(共有)
PHP4.4.4
です。


説明が下手で申し訳ありません。

このエラーの解決方法か、さくらの共有サーバでの公開設定方法が分かる方はぜひよろしくお願いします。
shun
投稿日時: 2006-12-3 22:23
Cake 職人
登録日: 2006-7-14
居住地: 東京、日本
投稿: 1007
Re: 共有サーバでの公開設定
まず、さくらサーバの場合、下記の情報はいかがでしょうか?

RewriteBase に関する .htaccess の設定です。

さくらインターネットで404エラー
http://cakephp.jp/modules/newbb/viewtopic.php?topic_id=76&forum=2&post_id=117#forumpost117
shun
投稿日時: 2006-12-3 22:55
Cake 職人
登録日: 2006-7-14
居住地: 東京、日本
投稿: 1007
Re: 共有サーバでの公開設定
あと、これもオマケです。Cake の設定が間違っていなければ、こちらが当てはまる可能性もあるかと……。

さくらウェブ
オンラインマニュアル - [ 500 Internal Server Error (内部エラー) ]
http://support.sakura.ad.jp/support/web/manual/trouble/web500.html

◎ ウェブページのエラーメッセージ
ウェブブラウザでの代表的なメッセージや、特にお問い合わせの多いメッセージを集めました。
http://support.sakura.ad.jp/support/manual/rs/errmsg_web.shtml
どっちかでうまくいくといいんですが……。

P.S. やや、下記で検索すると、ずいぶん色々と原因が出てきますね。
http://www.google.com/search?q=Internal+Server+Error+%E3%81%95%E3%81%8F%E3%82%89%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%8D%E3%83%83%E3%83%88&num=50&hl=ja&lr=&start=50&sa=N

参考になるかな?

http://buru.jp/blog/2006/11/movable_typedynamic_publishing_1.html
http://nakachi.org/item/511
http://pukiwiki.sourceforge.jp/?%E8%B3%AA%E5%95%8F%E7%AE%B13%2F3
http://drupal-jbox.net/?q=node/96
http://www.sumainobaiten.com/blog/renshu/archives/2006/10/post_21.html
http://hazama.nu/pukiwiki/index.php?%A5%B3%A5%E1%A5%F3%A5%C8%2FMT4i%2F%A5%D9%A1%BC%A5%BF%B8%F8%B3%AB%2F2.1%A6%C2

こちらでも以前、CakePHP でアプリを一つ作って、さくらインターネットのサーバで動かしたことがありました。きっと大丈夫だと思います。うまくいくといいですねぇ。
imoto
投稿日時: 2006-12-4 23:13
Baker スタート
登録日: 2006-11-26
居住地:
投稿: 8
Re: 共有サーバでの公開設定
ありがとうございました。


いろいろ試してみたのですがダメでした。

mod_rewriteが怪しいのですが、解決できませんでした。

もしよろしければ以前さくらで公開設定した状況をおしえていただけないでしょうか?

やはり3.4.3. 高度なセットアップ:その他のインストール方法
のように
/home
/me
/mysite<-- /cake_install/app として使われる
/config
/controllers
/models
/plugins
/tmp
/vendors
/views
index.php
/var
/www
/mysite <-- /cake_install/app/webroot として使われる
/css
/files
/img
/js
.htaccess
css.php
favicon.ico
index.php
/usr
/lib
/cake <-- /cake_install/cake として使われる
/cake
/config
/docs
/libs
/scripts
app_controller.php
app_model.php
basics.php
bootstrap.php
dispatcher.php
/vendors


というディレクトリ構成にしなければ共有サーバでは無理ですか?


複雑になりそうなので簡素化してエイリアスでドキュメントフォルダを指定して公開設定をするということはできないのでしょうか?


../path_to_cake_install
/app
/config
/controllers
/models
/plugins
/tmp
/vendors
/views
/webroot<-- ここをエイリアスで指定
.htaccess
index.php
/cake
/vendors
.htaccess
index.php
dala
投稿日時: 2006-12-5 0:31
Baker ユーザ
登録日: 2006-7-21
居住地: 千葉
投稿: 36
Re: 共有サーバでの公開設定
私の場合ですが、
/home/myname/cakeフォルダを作成し、
その中にアーカイブのcakeフォルダ(appと並んでいる方)を入れ、
www以下にappフォルダを入れました。
そしてドメイントップがwebroot以下を見る様にし、
webrootの.htaccessを
RewriteBase /
に設定し、index.phpは
'CAKE_CORE_INCLUDE_PATH'を/home/myname/cake
に設定するだけでいけました。

おそらく解凍したものをそのままwww以下に入れれば
RewriteBase /
を設定するだけであとはなにもしなくても行けると思います。
imoto
投稿日時: 2006-12-5 9:58
Baker スタート
登録日: 2006-11-26
居住地:
投稿: 8
Re: 共有サーバでの公開設定
みなさんありがとうございました。
表示できました。

はじめの方がなぜ表示できなかったか気持ちが悪いですが原因が分かり次第書き込みます。

shun
投稿日時: 2006-12-5 16:00
Cake 職人
登録日: 2006-7-14
居住地: 東京、日本
投稿: 1007
Re: 共有サーバでの公開設定
外しているかもしれませんが、
webroot/index.php の中には、


<?php
if (!defined('ROOT')) {
         
//define('ROOT', 'FULL PATH TO DIRECTORY WHERE APP DIRECTORY IS LOCATED DO NOT ADD A TRAILING DIRECTORY SEPARATOR';
         //You should also use the DS define to seperate your directories
         
define('ROOT'dirname(dirname(dirname(__FILE__))));
?>



とあり、“Appディレクトリがあるディレクトリへのフルパス。末尾にディレクトリセパレータを付けないこと”とありますね……。

あと、簡易的な設定チェッカーを作ってみました。

http://cakephp.jp/settingscheck.zip

これを解凍して、app/webroot/index.php と同じディレクトリに置き、 webroot/index.php と同じ設定を書き込みます。

そして、 http://webrootと同じ位置/settingscheck.php とすると、現在の設定+実際にそのディレクトリが存在するかどうかを調べてくれます。どんな具合になるでしょうか?

(ちょっと書いただけなので、うまく動かなかった場合はスミマセン。)
shun
投稿日時: 2007-4-3 15:36
Cake 職人
登録日: 2006-7-14
居住地: 東京、日本
投稿: 1007
Re: 共有サーバでの公開設定
新たにサイトをまたCakePHPで作りました。
さくらインターネットで、RewriteBase をどう設定しても、RewriteRuleをどう設定しても、うまくいかない、というimotoさんと似たような現象に出くわしました。しばらく試行錯誤した末、ついに解決したのですが、結論としては、“ドメインのエイリアスの指定が間違えていた”というものでした。(最初に、どう設定されているのかを確認すればよかった〜

さくらインターネットでは、[ドメイン名の設定]というパネルでサブドメインを指定することができます。そこで、

ドメイン名 アクション フォルダ
subdomain.example.com エイリアス /cake

となるべきところが、

ドメイン名 アクション フォルダ
subdomain.example.com エイリアス /cake/

と指定されていました。そのため、うまく動かなかったようです。
ちなみに現在の設定は、

1)abcde.sakura.ne.jp の中に、 /sample/ フォルダを作成。
2)下記のように指定。
ドメイン名 アクション フォルダ
test.example.com エイリアス /sample
3)/sample/cake/ フォルダを作成し、その中に CakePHPアプリを入れる。

つまり、
http://test.example.com/cake
でアクセスしたい。

というような状況にしてあります。その場合は、

Cakeフォルダ直下の.htaccess

<IfModule mod_rewrite.c>
   RewriteEngine on
   RewriteBase    /cake
   RewriteRule    ^$ app/webroot/    [L]
   RewriteRule    (.*) app/webroot/$1 [L]
</IfModule>


Cake/appフォルダの.htaccess

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteBase    /cake/app
    RewriteRule    ^$    webroot/    [L]
    RewriteRule    (.*) webroot/$1    [L]
 </IfModule>


Cake/app/webrootフォルダの.htaccess

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /cake/app/webroot
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
</IfModule>


となります。もし、“サブドメイン直下にCakePHPアプリを置く”ことにするのであれば、RewriteBaseの "/cake"という部分だけを三箇所とも削除すれば、つまり、

Cakeフォルダ直下の.htaccess

<IfModule mod_rewrite.c>
   RewriteEngine on
   RewriteBase    /
   RewriteRule    ^$ app/webroot/    [L]
   RewriteRule    (.*) app/webroot/$1 [L]
</IfModule>


Cake/appフォルダの.htaccess

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteBase    /app
    RewriteRule    ^$    webroot/    [L]
    RewriteRule    (.*) webroot/$1    [L]
 </IfModule>


Cake/app/webrootフォルダの.htaccess

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /app/webroot
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
</IfModule>


でいけると思います。参考まで。

P.S.
また、適当なスクリプトを作って、

<?php
echo "SERVER_NAME=".$_SERVER['SERVER_NAME']."<BR>";
echo 
"DOCUMENT_ROOT=".$_SERVER['DOCUMENT_ROOT']."<BR>";
echo 
"SCRIPT_FILENAME=".$_SERVER['SCRIPT_FILENAME']."<BR>";
echo 
"SCRIPT_NAME=".$_SERVER['SCRIPT_NAME']."<BR>";
echo 
"REQUEST_URI=".$_SERVER['REQUEST_URI']."<BR>";
echo 
"PHP_SELF=".$_SERVER['PHP_SELF']."<BR>";
?>


などを表示させると、状況が把握できるかもしれません。
aokazu
投稿日時: 2007-6-17 17:57
Baker 常連
登録日: 2007-1-8
居住地: 浦安
投稿: 57
サブフォルダにCAKE
既存サイトのサブフォルダにCAKEをインストールしたいと考えています。
インストールはそれぞれ以下のフォルダにセットしました。

/cake ===> /usr/lib/cake
/app  ===>  /home/abc
/app/webroot ===> /var/www/URL/abc

また index.php(/var/www/URL/abc/index.php)
の設定は、以下の通りです。

if (! defined('ROOT')){
	define('ROOT', DS.'home');
}
if (! defined('APP_DIR')){
	define ('APP_DIR', 'abc');
}
if (! defined('CAKE_CORE_INCLUDE_PATH')){
	define('CAKE_CORE_INCLUDE_PATH', DS.'usr'.DS.'lib'.DS.'cake');
}

ここで、

http://www.URL.com/abc/

へアクセスすると、/pages/home を無事表示してくれますが
以下の様に、他のページへ行こうとするとNot Foundになってしまいます。

http://www.URL.com/abc/def/


おそらく mod_rewrite の設定なのだとおもうのですが、
理解もせずに、設定しているのでうまくいきません。
現在の設定は、以下の通りです。

/usr/lib/cake/.htaccess

<IfModule mod_rewrite.c>
   RewriteEngine on
   RewriteBase    /
   RewriteRule    ^$ app/webroot/    [L]
   RewriteRule    (.*) app/webroot/$1 [L]
</IfModule>


/home/abc/.htaccess

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteBase    /app
    RewriteRule    ^$    webroot/    [L]
    RewriteRule    (.*) webroot/$1    [L]
 </IfModule>


/var/www/URL/abc/.htaccess

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /app/webroot
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
</IfModule>

この場合の.htaccess の設定はどのようにすれば良いのかご教授いただけると助かります。
custar
投稿日時: 2007-6-17 19:41
Cake 職人
登録日: 2007-5-31
居住地:
投稿: 189
Re: サブフォルダにCAKE
引用:

/app/webroot ===> /var/www/URL/abc ....(1)


この配置で、

引用:

こうアクセスするのって、本当にアクセスできてるんですか?
なんで (1) の 'abc' の前に 'URL' があるのに、
(2) でドメインになってるのでしょう?

例えば、

/var/www/example.com/abc

http://www.example.com/abc

ってことですか? 'URL'って要らないんじゃないの?と思いました。


...と真っ先に思った疑問の他に、webroot に関わる設定と配置が気になってます。


3.4.3. CakePHP のセットアップ』 と比較しながら読んでます。

(1) 2 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 


. .