
---------------------------
CakePHPバージョン:1.3.14.
PHPバージョン:5.3.3
Apacheバージョン:2.2.3
---------------------------
CakePHPを始めたばかりです。
インストールを完了し、トップページでのhello world!の表示は出来ました。
(トップページだけは特例のようですね)
http://www.example.com/test/hello という形でhello world!を表示させたいと思い下記のようにファイルを作りUPしましたが、エラーが表示されてしまいました。
何を変更すればうまくファイルが表示されるのかを教えていただければと思います。
test_controller.php
----------------------------------------------------------
class TestController extends AppController {
public $name = "Test";
public $uses = null;
public $autoRender = true;
function index(){
}
function hello(){
$this->set("content", "Hello World!");
}
}
----------------------------------------------------------
http://www.example.com/test/hello
(エラーメッセージ)
-------------------------------------------------------------------------------
Warning: include(cake/bootstrap.php): failed to open stream: No such file or directory in /var/www/html/example.com/test.php on line 76
Warning: include(): Failed opening 'cake/bootstrap.php' for inclusion (include_path='/var/www:/var/www/html/:.:/php/includes:/usr/share/pear') in /var/www/html/example.com/test.php on line 76
Fatal error: CakePHP core could not be found. Check the value of CAKE_CORE_INCLUDE_PATH in APP/webroot/index.php. It should point to the directory containing your /cake core directory and your /vendors root directory. in /var/www/html/example.com/test.php on line 77
-------------------------------------------------------------------------------
bootstrap.phpというファイル名が出てきているので、bootstrap.phpを見てみましたが何が間違っているのかはわかりません。
include_pathも出てきているので、cakephpのパスを通しておく必要があるのでしょうか?
bootstrap.php
-------------------------------------------------------------
if (!defined('PHP5')) {
define('PHP5', (PHP_VERSION >= 5));
}
if (!defined('E_DEPRECATED')) {
define('E_DEPRECATED', 8192);
}
error_reporting(E_ALL & ~E_DEPRECATED & ~E_STRICT);
require CORE_PATH . 'cake' . DS . 'basics.php';
$TIME_START = getMicrotime();
require CORE_PATH . 'cake' . DS . 'config' . DS . 'paths.php';
require LIBS . 'object.php';
require LIBS . 'inflector.php';
require LIBS . 'configure.php';
require LIBS . 'set.php';
require LIBS . 'cache.php';
Configure::getInstance();
require CAKE . 'dispatcher.php';
-------------------------------------------------------------
(全体の設定状況など)
.htaccess
httpd.conf
あたりの設定が間違っているのかと思い、ネットで情報を調べていろいろ変更したりしてみましたがダメでした。
あと一つ気になる点としては、公開ディレクトリ以外をUPしているディレクトリ名をcakeにしてしまっているところです。(cakeというディレクトリ名はダメとかあるのでしょうか?)
ディレクトリの構成と設定の内容を下記に記載します。
[/var/cake]プログラムファイル
/var/cake/app
/var/cake/plugins
/var/cake/vendors
/var/cake/.htaccess
/var/cake/index.php
公開ディレクトリ(ルート)
css
files
img
js
.htaccess
css.php
index.php
##############################################################
.htaccessの設定
##############################################################
3か所ほど設定すべきところがあるようなので下記のように設定しました。
/var/cake/.htaccess
-------------------------------------------------
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /cake
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
</IfModule>
-------------------------------------------------
/var/cake/app
-------------------------------------------------
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /cake/app
RewriteRule ^$ webroot/ [L]
RewriteRule (.*) webroot/$1 [L]
</IfModule>
-------------------------------------------------
公開ディレクトリの.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>
-------------------------------------------------

No.1ベストアンサー
- 回答日時:
公開ディレクトリ(ルート)にあるindex.phpの中においてパスの指定を現状のディレクトリ構造に合うように変更する。
通常、変更すべき定数は3つ(ROOT、APP_DIR、CAKE_CORE_INCLUDE_PATH)です。
1.* The full path to the directory which holds "app", WITHOUT a trailing DS.
define('ROOT','ほげほげ');
アプリディレクトリのある直前までのパス
2.* The actual directory name for the "app".
define('APP_DIR', 'なんちゃら');
アプリディレクトリ自体の名前
3.* The absolute path to the "cake" directory, WITHOUT a trailing DS.
define('CAKE_CORE_INCLUDE_PATH', ROOT);
変更不要かも。よく確認してもし必要なら1番ROOT以外のパスを指定する
参考URL:http://book.cakephp.org/1.3/ja/view/915/%E5%BF%9 …
この回答への補足
ご回答ありがとうございます。
教えていただいた情報を参考にファイルを変更してみました。
ページが全く表示されなかった状態から、エラーメッセージが表示されるようになったので少し前に進むことができました。
CakePHPの下記のページに沿って設定しました。
http://cakephp.jp/old_doc/ch03s04.html
今まで.htaccessのRewriteBaseを使ったことが無く、そのあたりが怪しい気がします。
---ディレクトリ構成--------------------------
[アプリケーションディレクトリ]
/var/me/mysite
[公開ディレクトリ] (ドメイン名が公開ディレクトリになっています)
/var/www/html/ドメイン名/mysite
[コアファイルディレクトリ]
/usr/lib/cake
---------------------------------------------
---公開ディレクトリのindex.phpの設定-------------------------
if (!defined('ROOT')) {
define('ROOT', DS.'var'.DS.'me');
}
if (!defined('APP_DIR')) {
define('APP_DIR', 'mysite');
}
if (!defined('CAKE_CORE_INCLUDE_PATH')) {
define('CAKE_CORE_INCLUDE_PATH', DS.'usr'.DS.'lib'.DS.'cake');
}
-------------------------------------------------------------
---.htaccessの設定]------------------------------------------------------
(1)
アプリケーションディレクトリ /var/me/mysite/.htaccess に以下を追加
RewriteBase /var/me/mysite
(2)
公開ディレクトリ /var/www/html/ドメイン名/mysite/.htaccess に以下を追加
RewriteBase /mysite
(3)
コアファイルディレクトリ /usr/lib/cake/.htaccess に以下を追加
RewriteBase /cake
-------------------------------------------------------------------------
テストのコントローラーファイルをアップ
<?php
class SampleController extends AppController {
public $name = "Sample";
public $uses = null;
public $autoRender = true;
function index(){
}
function hello(){
$this->set("content", "Hello World!");
}
}
?>
■http://www.example.com/mysite/sample/helloを表示
(結果)
Missing View
[Error: The view for SampleController::hello() was not found.]
[Error: Confirm you have created the file: /var/me/mysite/views/sample/hello.ctp]
[Notice: If you want to customize this error message, create mysite/views/errors/missing_view.ctp]
この状態から抜け出すにはどのようにしたらよいか教えていただければと思います。
よろしくお願いします。
honoka-cha様
その後、DBの値を表示する例が掲載されているサイトの情報を参考にしてみたところ、うまく表示することができました。
環境設定は上記の補足の状態でOKだということがわかりました。
有意義な回答ありがとうございました。
環境設定が終わりCakePHPを学んでいく体制ができたのでとても嬉しいです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) .htaccessファイルの修正がこれで問題ないかどうか 1 2022/04/21 08:42
- WordPress(ワードプレス) httpからhttpsへのリダイレクト設定について 2 2022/04/17 09:49
- JavaScript javascriptで変数を組み込みたい 2 2023/01/13 09:52
- その他(プログラミング・Web制作) laravel 本番環境でメールが送れません。 1 2023/02/17 17:57
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- MySQL Mac です。ローカルホストの phpMyAdmin にアクセスできません。 1 2023/06/06 17:14
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- オープンソース Coinmarketcap api 1 2022/05/30 15:47
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
携帯動画変換君のPSP向けの設定...
-
youtubeに音声のみのmp4ファイ...
-
FTPコマンドでディレクトリごと...
-
PHPのif文でその処理を途中で抜...
-
ob_end_clean と ob_clean の違...
-
PHPの拡張子を見せない方法
-
【file_exists】ファイルが存在...
-
Subversionのリポジトリの削除
-
session_start();について
-
Windowsサーバーでメール送信プ...
-
SmtpMailクラスについて
-
Illustratorで文字と画像を流し...
-
FTP サーバーにある画像を表示...
-
トランザクションが原因?DBに...
-
phpでのログアウトについて
-
どうして送信されないのでしょ...
-
フォントの色を変えるには?
-
VBSの「MsgBox」について
-
「クラス関数」「メンバ関数」...
-
.phpと.incファイルの違いはな...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
zendのcontrollersについて
-
デフォルトでトップページの表示
-
相対パスでrequireはできないの...
-
PHPファイルが、そのまま見えて...
-
require_onceで読み込む場合、...
-
PHPでグローバルナビゲーション...
-
$_GET 取得できない
-
Webアプリにおけるエントリポイ...
-
英語と中国語
-
XAMPPインストール後「セキュリ...
-
ロリポップでSmartyのtpl読み込...
-
風について
-
requireやinclude時の階層の書き方
-
PHP/icludeを使った相対パスの...
-
ZendFramework 環境設定
-
パーミッションの設定
-
XOOPSでユーザーメニューが表示...
-
世界人口白書って何ですか?
-
PEARライブラリで携帯サイト開発
-
htaccess使わずに.phpを.html表示
おすすめ情報