2014-08-27 5 views
0

У меня есть проект CodeIgniter, все было хорошо, когда я работал на своей локальной машине. Когда я загрузил проект на сервер, внезапно перестали работать контроллеры, кроме контроллера по умолчанию. Я сжег несколько часов поиска проблемы и обнаружил, что мои контроллеры и модели не работают, потому что их имя не было с заглавной буквой.PHP Codeigniter контроллеры и модели filenames issue

Пример:

controllers/test.php - does not works 
controllers/Test.php - works 

То же самое с моделями, я думаю, что это проблема конфигурации Apache или что-то.

у меня есть:

Ubuntu 14.04 
Server version: Apache/2.4.7 (Ubuntu) 
PHP 5.5.9-1ubuntu4.3 (cli) (built: Jul 7 2014 16:36:58) 
Copyright (c) 1997-2014 The PHP Group 
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies 
    with Zend OPcache v7.0.3, Copyright (c) 1999-2014, by Zend Technologies 

Любые идеи?

+0

Первое, что приходит на ум: вы разрабатываете Windows (например, с WAMP) и имеете сервер Linux? У нас была эта проблема несколько раз, потому что Windows не волнует случай. – SolarBear

+0

Как я писал, у меня Ubuntu 14.04 (Linux) –

+0

ubuntu как локальный компьютер? @AlexShuraits – ajtamwojtek

ответ

1

Это не проблема конфигурации. Это совсем не проблема - как работает большинство файловых систем Linux.

В Windows и в зависимости от конфигурации времени установки на Mac OSX тоже нет различия между «test.php» и «Test.php» - это тот же файл. С файловыми системами в стиле UNIX, с другой стороны, вы можете иметь и 'test.php' и 'Test.php' в том же каталоге.

Возможно, он работал в CentOS и Debian в прошлом, но это связано с тем, что вы использовали более старые версии CodeIgniter, которые использовали для поиска всех строчных имен файлов.

CodeIgniter 3.0-dev, который вы используете сейчас, требует, чтобы все имена файлов классов начинались с заглавной буквы. Это объясняется в инструкциях по обновлению.

+0

Спасибо, я буду иметь в виду. –

Смежные вопросы