Требуется расширение Mcrypt PHP. В Laravel с Ubuntu 14

Я пытаюсь перенести приложение laravel в ubuntu и получаю сообщение об ошибке, например Требуется расширение Mcrypt PHP. Когда я проверяю детали php с помощью функции phpinfo(), это отображается на экране ниже.

снимок экрана расширения mcrypt

Пожалуйста, найдите скриншот терминала ниже,

скриншот терминала

php.ini

введите здесь описание изображенияКак решить эту проблему?


person Jishad    schedule 30.01.2015    source источник
comment
Это может помочь вам askubuntu.com /вопросы/507796/   -  person Vinod VT    schedule 30.01.2015
comment
Установите mcrypt и раскомментируйте или добавьте расширение mcrypt в файл php.ini   -  person Sougata Bose    schedule 30.01.2015
comment
Ваш php sapi может отличаться при обслуживании сценариев для вашего http-сервера при вызове в командной строке, поэтому файл php.ini может быть другим. Попробуйте php --ini в своем bash, чтобы увидеть, какой файл php.ini для cli.   -  person demental    schedule 30.01.2015
comment
@demental, как я могу это решить.   -  person Jishad    schedule 30.01.2015
comment
@demental, файл конфигурации (php.ini) Путь: /etc/php5/cli Загруженный файл конфигурации: /etc/php5/cli/php.ini Поиск дополнительных файлов .ini в: /etc/php5/cli/conf.d Проанализированы дополнительные файлы .ini: /etc/php5/cli/conf.d/05-opcache.ini, /etc/php5/cli/conf.d/10-pdo.ini, /etc/php5/cli/conf.d /20-json.ini, /etc/php5/cli/conf.d/20-readline.ini   -  person Jishad    schedule 30.01.2015
comment
Итак, включен ли mcrypt.so в /etc/php5/cli/php.ini?   -  person demental    schedule 30.01.2015
comment
@ Дементаль, нет. путь /opt/lampp/etc.   -  person Jishad    schedule 30.01.2015
comment
Вы также можете перепроверить, набрав php -i | grep mcrypt, и посмотреть, включена ли поддержка mcrypt =› на выходе.   -  person demental    schedule 30.01.2015
comment
@demental, как я могу изменить путь к /opt/lampp/etc для php.ini .   -  person Jishad    schedule 30.01.2015
comment
Давайте продолжим это обсуждение в чате.   -  person Jishad    schedule 30.01.2015


Ответы (2)


Если вы установили PHP через apt-get, найдите расширение mcrypt, которое вы используете либо для apache, используя

$ locate *mcrypt.ini
/etc/php5/apache2/conf.d/20-mcrypt.ini
/etc/php5/cli/conf.d/20-mcrypt.ini
/etc/php5/fpm/conf.d/20-mcrypt.ini
/etc/php5/mods-available/mcrypt.ini
/usr/share/php5/mcrypt/mcrypt.ini
/var/lib/ucf/cache/:etc:php5:mods-available:mcrypt.ini

зайдите в каталог, в котором у вас есть расширение

cd /etc/php5/apache2/conf.d/20-mcrypt.ini

и вы, вероятно, обнаружите символическую ссылку на расширение mcrypt в каталоге, доступном для модов. Если это так, все, что вам нужно сделать, это перейти в каталог /etc/php5/cli/conf.d и создать аналогичную символическую ссылку.

cd /etc/php5/cli/conf.d
sudo ln -s ../../mods-available/mcrypt.ini ./

затем перезапустите php, возможно, с помощью sudo service php5 restart

Это должно работать

person John Evans    schedule 30.01.2015
comment
получение ошибки Предупреждение: требуется (/opt/lampp/htdocs/timegear/bootstrap/../vendor/autoload.php): не удалось открыть поток: разрешение отклонено в /opt/lampp/htdocs/timegear/bootstrap/autoload.php на строка 17 Неустранимая ошибка: require(): Не удалось открыть требуемый '/opt/lampp/htdocs/timegear/bootstrap/../vendor/autoload.php' (include_path='.:/opt/lampp/lib/php') в /opt/lampp/htdocs/timegear/bootstrap/autoload.php в строке 17 - person Jishad; 30.01.2015
comment
Если у кого-то еще нет идей, мне кажется, что Laravel не может прочитать файл автозагрузки Composer. Поскольку вы получаете отказ в разрешении, я предполагаю, что вы запустили composer update. Я бы запустил sudo chmod 0755 -R /opt/lampp/htdocs/timegear && chmod 0777 -R /opt/lampp/htdocs/timegear/app/storage, если бы правильно понял вашу файловую структуру. Опять же: у других людей могут быть другие идеи. - person John Evans; 30.01.2015
comment
когда я запускаю терминал обновления композитора, показывающий, что команда «композитор» не найдена, вы имели в виду: команда «составить» из пакета «поддержка mime» (основной) композитор: команда не найдена - person Jishad; 30.01.2015
comment
Попробуйте установить Composer глобально, как описано на странице начала работы с Composer curl -sS https://getcomposer.org/installer | php && sudo mv composer.phar /usr/local/bin/composer - person John Evans; 30.01.2015
comment
Привет, Джон! Я попробовал указанную выше команду и показал, что она успешно установлена. Затем я перешел в каталог /usr/local/bin/composer. Я создаю каталог композитора перед перемещением. и после того, как я попытался запустить composer, он покажет вышеупомянутую ошибку. - person Jishad; 02.02.2015
comment
Что вы получаете, когда запускаете whereis composer ? - person John Evans; 03.02.2015

Найдите файл mcrypt.ini в /etc/php5/mods-available/mcrypt.ini, если этот файл не существует, значит, php5-mcrypt может создать файл.

  • создайте файл mcrypt.ini в каталоге /etc/php5/mods-available/
  • И добавляем в него следующий конфиг:

    extension=mcrypt.so

  • Запустите эти команды

    sudo php5enmod mcrypt sudo service php5-fpm restart

Это сработало для меня.

person codereal    schedule 17.07.2015