Использование неопределенной константы MCRYPT RIJNDAEL 128-предполагается 'MCRYPT RIJNDAEL 128'

я успешно установил Laravel, но после запуска php artisan serve и будет localhost:8000 Я получаю эту ошибку:

использование неопределенной константы MCRYPT_RIJNDAEL_128-предполагается 'MCRYPT_RIJNDAEL_128'

Я проверил phpinfo() on localhost:8888 и он говорит, что mcrypt правильно установлен. Однако единственное, о чем я могу думать, это то, что, возможно, мой путь неправильный?

в своем .bash_profile Я

PATH=/usr/local/bin:$PATH

каждый раз, когда я пытаюсь выполнить команды Laravel я должен ввести это в терминал:

export PATH="~/.composer/vendor/bin:$PATH" 

Я работаю на Mac. Есть ли простой способ настроить мой bash_profile так что я могу последовательно меняться между адресами localhost и по-прежнему иметь все надлежащие функции PHP?

7 ответов


эта проблема относительно загрузчика расширений PHP. Вам не нужно использовать команду laravel вообще после успешной установки. Laravel framework нужна библиотека Mcrypt для модуля безопасности и шифровать некоторые из файлов настройки.

то, что вам нужно, это шаги тезисы.

  1. Скачать Mcrypt http://sourceforge.net/projects/mcrypt/files/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz/download

затем настройте make и установить его.

  1. скачать php http://php.net/releases/index.php Выше 5.5.14 предложили. (Использовать этот путь позже на шаге 4)

  2. затем загрузите Autoconfigure

    curl -O http://ftp.gnu.org/gnu/autoconf/autoconf-latest.tar.gz
    tar xvfz autoconf-latest.tar.gz
    cd autoconf-2.69/
    ./configure
    make
    sudo make install
    
  3. тогда вам нужно перейти на уровень каталога

    cd ***YOURPHPDIRECTORY***/ext/mcrypt/
    

    и запустите phpize на этом уровне каталога

    /usr/bin/phpize
    ./configure
    make
    sudo make install
    
  4. измените свой php.ini для включения расширения mcrypt с помощью insert это в PHP.ini

    extension=mcrypt.so
    
  5. перезапустить веб-сервер.

более простой способ на ubuntu

  • apt-get установить php5-mcrypt
  • mv-i / etc/php5 / conf.d / mcrypt.ini / etc/php5/mods-доступно/
  • php5enmod mcrypt
  • перезапуск службы apache2

Примечание: Если у вас нет "/etc/php5/conf.д" просто пропустить этот шаг и он будет работать нормально

проверить http://php.net/manual/en/mcrypt.installation.php


для пользователей Mac, специально - установите его с помощью Самогон

Я установил пустую установку Laravel и получил следующее сообщение об ошибке при навигации по http://localhost/kanban/public/:

Примечание: использование неопределенной константы MCRYPT_RIJNDAEL_128-предполагается "MCRYPT_RIJNDAEL_128" в / Library/WebServer/Documents/xxx/config / app.php on line 83

погугли на это сообщение вернуться учебники о том, как установить mcrypt на Mac OS X (будь то создание его из источника или с помощью Homebrew). Проблема заключалась в том, что пакеты mcrypt и php55-mcrypt были установлены правильно:

$ brew install mcrypt
Warning: mcrypt-2.6.8 already installed
$ brew install php55-mcrypt
Warning: php55-mcrypt-5.5.20 already installed

Mcrypt также был правильно загружен PHP:

$ php -m | grep mcrypt
mcrypt

$ php -i | grep mcrypt
Additional .ini files parsed => /usr/local/etc/php/5.5/conf.d/ext-mcrypt.ini,
Registered Stream Filters => zlib.*, bzip2.*, convert.iconv.*, string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed, dechunk, mcrypt.*, mdecrypt.*
mcrypt
mcrypt support => enabled
mcrypt_filter support => enabled
mcrypt.algorithms_dir => no value => no value
mcrypt.modes_dir => no value => no value

для получения более подробной информации см. Эту ссылку - http://benohead.com/mac-os-x-php-notice-use-undefined-constant-mcrypt_rijndael_128/


Если вы видите это на ubuntu или других вкусах *nix , это помогло сделать следующее.

перезапуск службы php5-fpm


Я использую nginx и php-fpm, и уже сделал apt-get install php5-mcrypt и переместил mcrypt.ini файл для модов-доступен. Мне пришлось перезапустить службу sudo php5-fpm, прежде чем она действительно сработала.


Я только что отрегулировал .bash_profile В MacOS и это сработало:

export PATH="/usr/local/sbin:$PATH"
PHP_AUTOCONF="/usr/local/bin/autoconf"
source ~/.bash_aliases

у меня также была эта проблема при попытке развернуть Laravel to Apache on Mac OS Sierra. В конце концов я нашел этот пост это дало пошаговые инструкции для решения этой проблемы. Эти инструкции предполагают, что у вас есть доморощенного установлен; если у вас его нет, вставьте следующее в окно терминала, чтобы установить его:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

вот соответствующие шаги, вставленные из сообщения, приведенного выше:

Шаг 1: Установите autoconf и mcrypt

я использовал homebrew для установки autoconf и mcrypt, что так же просто, как:

brew install autoconf mcrypt

если это не работает для вас, или вы не хотите использовать homebrew, то проверьте в этом уроке.

Шаг 2: Создайте расширение PHP

для создания расширения PHP вам понадобится исходный код PHP 5.4.17, который доступен для скачивания здесь и извлечения это:

cd ~/Downloads
unzip PHP-5.4.17.zip

затем создайте расширение, используя следующие команды:

cd php-src-PHP-5.4.17/ext/mcrypt/
/usr/bin/phpize
./configure
make
sudo make install

Шаг 3: Включите расширение

все, что осталось, это включить расширение путем редактирования /etc/php.ini. Если этот файл отсутствует, скопируйте файл /etc/php.ini.по умолчанию и переименуйте его:

sudo cp /etc/php.ini.default /etc/php.ini

отредактируйте /etc / php.ini и добавьте следующие:

extension=mcrypt.so

Шаг 4: перезапустите apache Теперь просто перезапустите apache и ты молодец!

sudo apachectl restart

ДОПОЛНИТЕЛЬНЫЕ ПРИМЕЧАНИЯ И РАЗЪЯСНЕНИЯ

я столкнулся с двумя проблемами, выполнив следующие шаги:

  1. я должен был соответствовать PHP zip-файл, который я загрузил в версию PHP, которая была установлена на моей машине.

так я и сделал

php -v

чтобы определить номер версии, а затем изменить загрузку, чтобы соответствовать этому номеру версии. В моем случае PHP версия была 5.6.28, и поэтому мне нужно было загрузить источник PHP из

https://github.com/php/php-src/archive/PHP-5.6.28.zip
  1. я получил исключение на Шаге 2, Когда я пыталась сделать sudo make install, исключение было вызвано SIP, безопасность, добавленная El Capitan. Исключение указано в этот вопрос, и решение этой проблемы я нашел в ответ.

применение информации из этого ответа изменило Шаг 2, указанный выше, и заменило the sudo make install следующим образом:

mkdir -p /usr/local/lib/php/extensions
sudo make EXTENSION_DIR='/usr/local/lib/php/extensions' install

обратите внимание, что из-за этого изменения Шаг 4 выше также должен быть изменен, чтобы включить путь к mcrypt.so. Поэтому следующее должно идти в php.ini:

extension=/usr/local/lib/php/extensions/mcrypt.so