2011-12-27 26 views
1

私はCodeigniter 2.1.0をローカルにインストールしました。Codeigniter:非オブジェクト上のメンバ関数item()への呼び出し

しかし、ときに私は私が最初に取得する私のプロバイダにアップロード:

Your system folder path does not appear to be set correctly. Please open the following file and correct this: index.php

私はindex.phpをを変更することで、この問題を解決することができます

$system_path = "system"; 
$application_folder = "application"; 

(に私がしなければならなかったことはありませんなぜですか?これを行う...)

$system_path = dirname(__FILE__) . "/system"; 
$application_folder = dirname(__FILE__) . "/application"; 

しかし、私は得る:

Fatal error: Call to a member function item() on a non-object in <path>/Utf8.php on line 47

私は行をコメントアウトすることができますが、私は、どこか他の同様のエラーを取得します。

私のプロバイダでこの問題はありますか?または私は何か間違っているのですか?以前はCIを使っていましたが、完璧に他の場所で働いていました。

PS:これはCIを完全に新しくインストールしたものではありません。

+0

あなたは、新しいドメインにあなたの$設定[「BASE_URL」]を変更し、htaccessのに必要な変更を加えるようにしてくださいましたか? – Rooster

答えて

1

はい、いいえ、 問題は、プロバイダがおそらくWebサーバーの設定とは異なる設定になっていることです。もしそうなら、必要に応じた設定を適応させる必要があります。

この問題の主な原因は、ファイルシステムでパスを表現できるさまざまなスタイルです。 * NIXシステムはフォワードスラッシュを使用してフォルダー構造を表現します。 Windowsマシンではバックスラッシュ。 * NIXシステムにはルート "/"があり、WindowsマシンにはC:/、D:/ etc ... すべてのファイルシステムにはアクセス権と管理の設定が異なります。

ほとんどのUNIXシステムでは、問題のないパスの検索が行われます。したがって、codeigniterがのCIのあるディレクトリの絶対パスを決定しようとすると、 "いわゆる"相対ディレクトリから、彼は成功するでしょう。そうでなければ、ロードしたいファイルがどこにあるのかわからないのでうまく動作しません。

PHPバージョンには多くのバグもあります。例えば。 PHP 5.2.0およびWindows Apacheのバグが報告されています(ディレクトリに対する特定の権利を持つ)is_dir()関数は、ディレクトリが存在し、他のシステムでTrueを返す必要がある場合でもFalseを返します。

パスが正しくロードされるようにする最も確実な方法は、CI絶対パスを与えることです。絶対パスはOSによって異なります。 UNIXでは/var/www/domain.com/system、Windowsでは "誰が知っていますか?"しかし、それを簡単に判断する方法があります。と行の絶対パスを述べたページをロードした場合

<?php phpinfo(); ?> 

があるでしょう(とりわけ):

あなたが内部のこのコンテンツでアクセスできるルートフォルダにのindex.phpファイルを作成します。 :あなたは$のsystem_path変数に絶対パスを割り当てます場合

_SERVER["DOCUMENT_ROOT"] | /var/www/mydomain.com/ 

今では十分なはずです。さらに確実に$ application_folder変数を割り当てます。システムフォルダへのパスは、アプリケーションフォルダにコードイグナイタとパスのシステムフォルダになければならない

アプリケーションフォルダになければなりません。したがって、たとえば:

$system_path = "/var/www/mydomain.com/system"; 
$application_folder = "/var/www/mydomain.com/application"; 

その後、あなたのサイトは完璧に動作するはずです。

は(一部はユーザーガイドにこれについて言及があります。http://ellislab.com/codeigniter/user-guide/installation/index.html)は

関連する問題