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'и може знадобитися більше.
Рішення ось вони:
- Змінити в/etc/php5/apache2/php.ini (або в /usr/local/php5/php.ini або ще в якомусь php.ini)max_execution_time з 30 на900 (або скільки вважаєте за потрібне).
- У корені розпакованої joomla лежить файликhtaccess.txt. Його потрібно перейменувати в.htaccess і додати до нього рядокphp_value max_execution_time 900 (або скільки вважаєте за потрібне).
В обох випадках необхідно рестартнути apache.
Ці рішення допомагають при зависонах Jooml'и на заключному етапі установки — при внесенні змін до бази. Бо в мене вона висіла одразу – мені ці рішення він підійшли. Ділюсь ними лише з надією, що комусь ще допоможе))).