Использование неопределенной константы 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 для модуля безопасности и шифровать некоторые из файлов настройки.
то, что вам нужно, это шаги тезисы.
- Скачать Mcrypt http://sourceforge.net/projects/mcrypt/files/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz/download
затем настройте make и установить его.
скачать php http://php.net/releases/index.php Выше 5.5.14 предложили. (Использовать этот путь позже на шаге 4)
-
затем загрузите 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
-
тогда вам нужно перейти на уровень каталога
cd ***YOURPHPDIRECTORY***/ext/mcrypt/
и запустите phpize на этом уровне каталога
/usr/bin/phpize ./configure make sudo make install
-
измените свой php.ini для включения расширения mcrypt с помощью insert это в PHP.ini
extension=mcrypt.so
- перезапустить веб-сервер.
более простой способ на ubuntu
- apt-get установить php5-mcrypt
- mv-i / etc/php5 / conf.d / mcrypt.ini / etc/php5/mods-доступно/
- php5enmod mcrypt
- перезапуск службы apache2
Примечание: Если у вас нет "/etc/php5/conf.д" просто пропустить этот шаг и он будет работать нормально
для пользователей 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
ДОПОЛНИТЕЛЬНЫЕ ПРИМЕЧАНИЯ И РАЗЪЯСНЕНИЯ
я столкнулся с двумя проблемами, выполнив следующие шаги:
- я должен был соответствовать
PHP
zip-файл, который я загрузил в версию PHP, которая была установлена на моей машине.
так я и сделал
php -v
чтобы определить номер версии, а затем изменить загрузку, чтобы соответствовать этому номеру версии. В моем случае PHP
версия была 5.6.28, и поэтому мне нужно было загрузить источник PHP из
https://github.com/php/php-src/archive/PHP-5.6.28.zip
- я получил исключение на Шаге 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