WAMPボックスで、次のことを行いました。
Foo
です$autoload['libraries'] = array('foo');
を追加しましたすべて正常に動作します。 LAMPボックスにアップロードすると、次のエラーが表示されます。
Unable to load the requested class: foo
/application/libraries/Foo.phpの許可は0755です。所有者は他のCIファイルと同じです。自動ロードからfoo
を取り出すと、問題はなくなります。
何が間違っているのでしょうか?
Windowsでは、パスの大文字小文字は関係ありません。 Linuxではそうです。
自動ロードするときは、「foo」ではなく「Foo」を使用します。
これでうまくいくと思います。
Codeigniterはパスの大文字と小文字を区別するのに十分に賢く、クラスはphpで大文字と小文字が区別されないため、オートロードを解除しても機能すると思います。
ローカルのOSxからLinuxライブサイトにデプロイするときに、同様の問題が発生しました。
OSxでは問題なく動作しましたが、Linuxでは次のようになりました。
An Error Was Encountered
Unable to load the requested class: Ckeditor
問題は、Linuxパスでは明らかに大文字と小文字が区別されるため、ライブラリファイルの名前を「ckeditor.php」から「CKEditor.php」に変更する必要があったことです。
また、大文字と小文字を一致させるためにロードコールを変更しました。
$this->load->library('CKEditor');
アプリケーションにLinuxサーバーを使用している場合、この問題を回避するには小文字のファイル名とクラス名を使用する必要があります。
例.
ファイル名:csvsample.php
class csvsample {
}