Разница между MAMP и сервером DigitalOcean LAMP в Ubuntu 14.04 портит поле пользовательской формы Joomla

Я написал поле пользовательской формы на сайте Joomla 2.5.

Мое поле формы выбирает значение идентификатора и имя тега из таблицы базы данных и позволяет выбрать несколько флажков. Довольно просто

Моя проблема в том, что код отлично работает на моем dev-сервере (MAMP, стандартные настройки), но не работает на моем DigitalOcean Ubuntu 14.04 VPS.

MAMP

MAMP (выше)

В.С.

DigitalOcean (ниже)

Цифровой океан

Так что да, я ищу идеи здесь. Моя главная мысль — это в настройках PHP, в отключенных функциях.

MAMP не имеет отключенных функций, Digital Ocean имеет следующее:

Функции инвалидов pcntl_alarm, pcntl_fork, pcntl_waitpid, pcntl_wait, pcntl_wifexited, pcntl_wifstopped, pcntl_wifsignaled, pcntl_wexitstatus, pcntl_wtermsig, pcntl_wstopsig, pcntl_signal, pcntl_signal_dispatch, pcntl_get_last_error, pcntl_strerror, pcntl_sigprocmask, pcntl_sigwaitinfo, pcntl_sigtimedwait, pcntl_exec, pcntl_getpriority, pcntl_setpriority,

Есть идеи?

ОБНОВЛЕНИЕ: Я закомментировал отключенные функции на мгновение, перезапустил сервер. Получил несколько разных ошибок консоли, которые были интересны, но это не решило проблему. Любые другие предложения?

ОБНОВЛЕНИЕ 2: Решено путем изменения имени файла на все строчные буквы на производственном сервере. Ответ ниже показывает детали.

0

Решение

Это может произойти, когда Joomla не найдет пользовательское определение поля формы — в этих случаях оно возвращается к стандартному тексту. input элемент.

В зависимости от того, как вы переместили сайт с настроек MAMP на работающий Ubuntu VPS, у вас могут отсутствовать файлы.

Если вы следовали стандарту Joomla для пользовательских полей формы, у вас должно получиться что-то вроде этого:

/components/com_mycomponent/models/fields/mycomponentmultitags.php

Я хотел бы проверить, что ваш файл настраиваемого поля существует на VPS и что его разрешения установлены правильно (644 должен это сделать).

Обновить

Относительно причины проблемы (то есть случай имени файла). Таким образом, файловые системы чувствительны к регистру, а некоторые нет, а некоторые учитывают регистр (то есть показывают регистр), но не чувствительны к регистру. Я должен был узнать, что вы были на MAMP (то есть на Mac), OSX работает на HFS +. HFS + по умолчанию не чувствителен к регистру, но сохраняет регистр. Поэтому вызов всего строчного имени файла будет работать на MAMP, но не на Ubuntu (потому что Это чувствителен к регистру.

Что в данном случае возвращает вас к тому факту, что Joomla (он же PHP) не может найти определение поля пользовательской формы (он же файл) CategoryCheckBoxes.php потому что искал categorycheckboxes.php)

1

Другие решения

Хорошо, я заставил его работать, но мне не нравится не знать, почему это сработало.

Опять же, он работал на разработке (MAMP), но не на моем производственном VPS (Стандартный Ubuntu 14.04 LAMP Apache2)

Я изменился:

администратор / компоненты / com_mycomponent / модель / поле / CategoryCheckBoxes.php

чтобы:

администратор / компоненты / com_mycomponent / модель / поле / categorycheckboxes.php

Да, я сделал имя файла в нижнем регистре, и он работал как шарм. Это все, что я изменил. Кто-нибудь знает, почему это произойдет и почему это будет отличаться в зависимости от типа сервера?

0

По вопросам рекламы [email protected]