Я использую CodeIgniter (1.7.2+) уже много лет и работаю в 15+ живых производственных средах (LOVE IT). Недавно моя команда и я разработали очень сложную систему, которая потребует чего-то более сложного, чем просто стандартный MVC, поэтому мы начали изучать модульное расширение HMVC для CI (2.0.3). До сих пор мы запускали его в средах XAMPP и MAMP на наших локальных системах без каких-либо проблем, и это выглядит как раз то, что нам нужно. Проблема возникает, когда мы пытаемся загрузить ее в CentOS.
Взяв EXACT тот же репозиторий SVN, который работает на наших локальных установках, и вытаскивая его на сервер CentOS (я пробовал два отдельных блока CentOS), он просто выдает белый экран - следя за журналами, я получаю 500 ошибка. Я уверен, что он является внутренним для модулей HMVC, потому что эта же установка CentOS без проблем выполняет базовую установку CI.
Для устранения неполадок я удалил запись автозагрузки, которая загружает базу данных, а затем я получаю следующий вывод на экран:
A PHP Error was encountered
Severity: Notice
Message: Undefined property: CI::$db
Filename: MX/Controller.php
Line Number: 58
Я получаю это только на окнах CentOS, строка 58 этого файла не очень красноречива, а в журналах ошибок HTTPD тоже нет ничего полезного. Кто-нибудь когда-либо имел эту проблему, кто-нибудь еще может воспроизвести ее? Я никогда не видел упоминаний о каких-либо серверных зависимостях, кроме того, что требуется базовому CI, поэтому я в растерянности. Нам крайне необходимо использовать HMVC в этом проекте, но я не могу выйти на рынок с чем-то, чего не могу даже загрузить.
Чтобы еще больше ограничить вероятность того, что мы ввели что-то плохое, я сделал совершенно новую установку CI, перезагрузил модуль HMVC и больше ничего не трогал ... FAIL! Точно такие же результаты, работает на локальных компьютерах, сломанных с той же ошибкой на CentOS 5.5.
ЛЮБАЯ помощь очень ценится ...
UPDATE
Понимая, что ошибка - это всего лишь уведомление (как бы мне не хотелось это делать), я отключил сообщение об ошибке, чтобы посмотреть, что произошло. Это сразу возвращается к ошибке 500. Я могу поместить оператор die () в index.php и вывести вывод на экран - поэтому еще более тревожно то, что я получаю полный и полный отказ модуля HMVC в CentOS, а не просто уведомление. Я собираюсь попытаться умереть () через систему и найти фактическую строку, которая делает это .... Радость ..
Файл журнала CI уровня 4 по запросу Крейга Родвея
DEBUG - 2011-09-06 20:49:37 --> Config Class Initialized
DEBUG - 2011-09-06 20:49:37 --> Hooks Class Initialized
DEBUG - 2011-09-06 20:49:37 --> Utf8 Class Initialized
DEBUG - 2011-09-06 20:49:37 --> UTF-8 Support Enabled
DEBUG - 2011-09-06 20:49:37 --> URI Class Initialized
DEBUG - 2011-09-06 20:49:37 --> Router Class Initialized
DEBUG - 2011-09-06 20:49:37 --> No URI present. Default controller set.
DEBUG - 2011-09-06 20:49:37 --> Output Class Initialized
DEBUG - 2011-09-06 20:49:37 --> Security Class Initialized
DEBUG - 2011-09-06 20:49:37 --> Input Class Initialized
DEBUG - 2011-09-06 20:49:37 --> Global POST and COOKIE data sanitized
DEBUG - 2011-09-06 20:49:37 --> Language Class Initialized
DEBUG - 2011-09-06 20:49:37 --> Language Class Initialized
DEBUG - 2011-09-06 20:49:37 --> Config Class Initialized
DEBUG - 2011-09-06 20:49:37 --> Loader Class Initialized
DEBUG - 2011-09-06 20:49:37 --> Controller Class Initialized
DEBUG - 2011-09-06 20:49:37 --> Welcome MX_Controller Initialized
DEBUG - 2011-09-06 20:49:37 --> Loader Class Initialized
ERROR - 2011-09-06 20:49:37 --> Severity: Notice --> Undefined property: CI::$db /home/www/qualcentral.com/application/third_party/MX/Controller.php 58
Обновление № 2
Хорошо, две вещи, которые, кажется, вызвали мою проблему - я не полностью исправлен, но теперь я могу работать в системе. Во-первых, разархивирование HMVC на Windows-машине, подключение к SVN и отключение CentOS полностью его разорили. Когда я перенес все через WGET непосредственно в CentOS и установил его на сервере, все заработало просто отлично! Очень странно, но, по крайней мере, это обходной путь - никаких настроек PHP или Apache не требуется, я полагаю, что конец строки или что-то сломалось во время начального процесса.
Во-вторых, когда я использую модуль HMVC, я НЕ МОГУ использовать автозагрузчик базовой системы для загрузки базы данных. Я могу вручную загрузить его в триаду и автозагрузить, используя файл config / autoload.php триады, но основная система выдает 500, если я даже попытаюсь. Это причуды и это усугубляет, но я могу обойти это.
Еще раз спасибо за все предложения, это был просто чудак.
Шейн