Сегодня я переместил и настроил свой сайт D8 с Windows на ПК с Ubuntu 14.04. Но когда я запускаю сайт, я получаю следующую ошибку:
Неустранимая ошибка: интерфейс ‘JsonSerializable’ не найден в /var/www/eCartZone/core/lib/Drupal/Component/Render/MarkupInterface.php в строке 32
Я проверил наличие установленных модулей с php -m
из терминала, и я нашел его в списке.
Я установил Php 5.5.33, используя $ phpbrew install php-5.5.33 +default+json+mysql+curl
Информация о версии:
Php: 5.5.33
Drupal: 8.2.3
Apache: 2.4.7
MySql: 14.14, Distrib 5.5.53
Я не знаю, как решить эту проблему! Кто-нибудь, пожалуйста, помогите мне с решением.
ОБНОВИТЬ
Командный вывод php -r "phpinfo();" | grep json
PHP Warning: phpinfo(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in Command line code on line 1
Configure Command => './configure' '--cache-file='''/home/subrara/.phpbrew/cache/config.cache'''' '--prefix=/home/subrara/.phpbrew/php/php-5.5.33' '--with-config-file-path=/home/subrara/.phpbrew/php/php-5.5.33/etc' '--with-config-file-scan-dir=/home/subrara/.phpbrew/php/php-5.5.33/var/db' '--disable-all' '--enable-session' '--enable-short-tags' '--with-zlib=/usr' '--with-libdir=lib/x86_64-linux-gnu' '--with-curl=/usr' '--enable-json' '--with-mysql=mysqlnd' '--with-mysqli=mysqlnd' '--with-pdo-mysql=mysqlnd' '--with-mysql-sock=/var/run/mysqld/mysqld.sock' '--enable-libxml' '--enable-simplexml' '--enable-xml' '--enable-xmlreader' '--enable-xmlwriter' '--with-xsl' '--with-libxml-dir=/usr' '--enable-bcmath' '--with-bz2=/usr' '--enable-calendar' '--enable-cli' '--enable-ctype' '--enable-dom' '--enable-fileinfo' '--enable-filter' '--enable-shmop' '--enable-sysvsem' '--enable-sysvshm' '--enable-sysvmsg' '--enable-mbregex' '--enable-mbstring' '--with-mhash=/usr' '--with-mcrypt=/usr' '--enable-pcntl' '--with-pcre-regex' '--with-pcre-dir=/usr' '--enable-pdo' '--enable-phar' '--enable-posix' '--with-readline=/usr' '--enable-sockets' '--enable-tokenizer' '--with-openssl=/usr' '--enable-zip' '--with-pear=/home/subrara/.phpbrew/php/php-5.5.33/lib/php' '--enable-zend-signals'
/home/subrara/.phpbrew/php/php-5.5.33/var/db/json.ini
json
json support => enabled
json version => 1.2.1
После еще одного исследования я наконец нашел решение! Надеюсь, что это может помочь и другим.
Говорят, что Drupal 8 работает на PHP 5.5.9+, тогда как моя версия php была 5.5.33.
Я обновил свой PHP до 5.6.22, и ошибка исчезла!
$ phpbrew install php-5.6.22 +default+curl+json+mysql+apxs2=/usr/bin/apxs2
$ phpbrew switch php-5.6.22
$ sudo service apache2 restart
Как мой браузер (phpinfo();
) и CLI теперь показывают 5.6.22 в качестве активной версии!
Благодаря jimsmith 🙂
Других решений пока нет …