Модульное расширение CodeIgniter сломано в CentOS - PullRequest
0 голосов
/ 07 сентября 2011

Я использую 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, если я даже попытаюсь. Это причуды и это усугубляет, но я могу обойти это.

Еще раз спасибо за все предложения, это был просто чудак.

Шейн

1 Ответ

1 голос
/ 07 сентября 2011

Undefined property: CI::$db

Эта ошибка означает, что ваша база данных не была загружена. Кажется, ваш файл autoload.php не загружает его или что-то в этом роде. Возможно, база данных загружалась в MY_Controller, который теперь был заменен.

Кроме того, если вы используете самую последнюю версию HMVC, вы, возможно, будете бороться из-за того, что она разрабатывается для работы с веткой 2.0.x, а не 1.7.x. Это не значит, что это НЕ БУДЕТ работать, но говорить, что это менее вероятно с каждой новой выпущенной версией.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...