JsonSerializable not found, або як я встановлював Joomla - zlovolsky blog

нотатки системного сантехніка

JsonSerializable not found, або як я встановлював Joomla

Joomla, як відомо, славиться своєю простотою. Для звичайної людини встановити її - справжня дрібниця. У мене все було не так просто.

Після встановлення комплекту LAMP-сервера, скачав дистрибутив Joomla, розпакував у /var/www.

Заходжу в браузері на localhost/joomla і замість вітального екрана установника бачу наступне:

Fatal error: Interface 'JsonSerializable' not found in /var/www/joomla/libraries/joomla/registry/registry.php on line 22

Я не програміст PHP, але заглянувши у вищезгаданий скрипт, зрозумів, що він намагається звертатися до якоїсь функції, якою мій PHP не розуміє.

Недовгі поневіряння по гуглових просторах привели мене на блог могутнього шамана. Там я дізнався, крім іншого, що інтерфейс можна встановити в мій PHP командою:

pecl install json

Сказано – зроблено, почав ставити. Консоль сварилася:

root@mycomp:# pecl install json WARNING: "pear/json" is deprecated in favor of "channel://http://www.php.net/json/json" downloading json-1.2.1.tgz. Starting to download json-1.2.1.tgz (17,780 bytes) . done: 17,780 bytes 11 source files, building running: phpize sh: 1: phpize: немає даних Як натиснуто повідомлення про те, що 'псевдо: немає даних', ви повинні використовувати php5- dev packageYou can do it by running 'apt-get install php5-dev ' як root user ERROR: `phpize' failed Хоче програма dev-пакет від PHP, так будь ласка:

apt-get install php5-dev

Встановилося. Рестартнув Apache та «О, диво!» - Установка почалася.

Після всіх виконаних маніпуляцій у мене склалося враження, що даний JsonSerializable, мабуть,присутній у php5-dev, оскільки після його встановлення я більше команду установки json'а не запускав, тільки рестартнув веб-сервер.

Пізніше я вичитав в інтернетах, що перевірити наявність відсутності підтримки JSon'а можна за допомогоюphpinfo.

У списку модулів має бути:json support enabled.

Щасливий, я продовжив установку, але моя радість тривала недовго. Після вибору мови в меню установки Joomla я побачив індикатор, що завантажується, і… І все. Повисла Joomla.

Знову Гугл. Знайшов кілька рішень щодо часу виконання скриптів PHP. Виявляється за умовчанням воно не велике і деяким збіркам Jooml'и може знадобитися більше.

Рішення ось вони:

  1. Змінити в/etc/php5/apache2/php.ini (або в /usr/local/php5/php.ini або ще в якомусь php.ini)max_execution_time з 30 на900 (або скільки вважаєте за потрібне).
  2. У корені розпакованої joomla лежить файликhtaccess.txt. Його потрібно перейменувати в.htaccess і додати до нього рядокphp_value max_execution_time 900 (або скільки вважаєте за потрібне).

В обох випадках необхідно рестартнути apache.

Ці рішення допомагають при зависонах Jooml'и на заключному етапі установки — при внесенні змін до бази. Бо в мене вона висіла одразу – мені ці рішення він підійшли. Ділюсь ними лише з надією, що комусь ще допоможе))).