Я написал в Linux Terminal: curl -s https://getcomposer.org/installer | php
curl -s https://getcomposer.org/installer | php
Он сказал:
#!/usr/bin/env php Some settings on your machine make Composer unable to work properly. Make sure that you fix the issues listed below and run this script again: The json extension is missing. Install it or recompile php without --disable-json
Я сделал это: apt-get install php5-json
Итак, я думаю, он установлен. Но странно, когда я пишу php -m
Это дает мне список без json:
[PHP Modules] bcmath bz2 calendar Core ctype date dba dom ereg exif fileinfo filter ftp gettext hash iconv libxml mbstring mhash openssl pcntl pcre Phar posix Reflection session shmop SimpleXML soap sockets SPL standard sysvmsg sysvsem sysvshm tokenizer wddx xml xmlreader xmlwriter zip zlib [Zend Modules]
-[PHP Modules] bcmath bz2 calendar Core ctype date dba dom ereg exif fileinfo filter ftp gettext hash iconv libxml mbstring mhash openssl pcntl pcre Phar posix Reflection session shmop SimpleXML soap sockets SPL standard sysvmsg sysvsem sysvshm tokenizer wddx xml xmlreader xmlwriter zip zlib [Zend Modules]
И когда я пишу php5-fpm -m
он отправляет это:
[PHP Modules] bcmath bz2 calendar cgi-fcgi Core ctype curl date dba dom ereg exif fileinfo filter ftp gettext hash iconv json libxml mbstring mcrypt mhash mysqli openssl pcre PDO pdo_mysql Phar posix Reflection session shmop SimpleXML soap sockets SPL standard sysvmsg sysvsem sysvshm tokenizer wddx xml xmlreader xmlwriter zip zlib [Zend Modules]
-[PHP Modules] bcmath bz2 calendar cgi-fcgi Core ctype curl date dba dom ereg exif fileinfo filter ftp gettext hash iconv json libxml mbstring mcrypt mhash mysqli openssl pcre PDO pdo_mysql Phar posix Reflection session shmop SimpleXML soap sockets SPL standard sysvmsg sysvsem sysvshm tokenizer wddx xml xmlreader xmlwriter zip zlib [Zend Modules]
Что я делаю не так? Я не нашел решение в GitHub и Google
Вероятно, вам нужно включить расширение в файле php.ini
. Чтобы узнать, где это для командной строки PHP, сделайте
php --ini
Вы должны увидеть строку типа
Загруженный файл конфигурации: /path/to/php.ini
Откройте этот файл и найдите extension=json.so
Если он есть, раскомментируйте это. Если нет, добавьте его. Теперь вы должны увидеть, что json
указан, когда вы работаете php -m
и композитор.
В Ubuntu 14.04 для меня я обнаружил, что разрешения по умолчанию для файла php.ini / etc / php5 / cli / ограничивают файл только для пользователя Root, поэтому, если вы запустите:
php -m
как не-root, вы получаете гораздо меньше модулей, чем при запуске sudo php -m
Исправить это было для меня:
sudo chmod a+rx /etc/php5/cli/* -R
который предоставляет разрешения на чтение и выполнение для этой папки и ее содержимое для всех.