Я пытаюсь использовать функцию migrate в Laravel 4 на OSX. Однако я получаю следующую ошибку:
Laravel requires the Mcrypt PHP extension. Насколько я понимаю, он уже включен (см. изображение ниже). Что не так, и как я могу это исправить?
Ответ 1
Расширения с поддержкой веб-интерфейса и расширения с поддержкой командной строки могут отличаться. Запустите php-m в терминале и проверьте, есть ли в списке mcrypt. Если его нет, проверьте, откуда командная строка загружает ваш файл php.ini, запустив php --ini в терминале. В этом файле php.ini вы можете включить расширение.
OSX
Я слышал, что люди на OSX сталкивались с проблемами из-за того, что терминал указывал на родной PHP, поставляемый с OSX. Вместо этого вам следует обновить свой профиль bash, указав реальный путь к PHP. Что-то вроде этого (я не использую OSX, так что это может быть не на 100%):
export PATH=/usr/local/php5/bin:$PATH
Ubuntu
На ранних версиях Ubuntu (до 14.04), когда вы запускаете sudo apt-get install php5-mcrypt, он не устанавливает расширение в mods-available. Вам нужно будет установить его по симлинку.
sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/mcrypt.ini
На всех версиях Ubuntu вам нужно будет включить мод после его установки. Это можно сделать с помощью php5enmod.
sudo php5enmod mcrypt
sudo service apache2 restart
Ответ 2
Установлен ли у вас MAMP? Используйте команду which php в терминале, чтобы узнать, какую версию PHP вы используете. Если это не версия PHP из MAMP, вам следует отредактировать или добавить .bash_profile в домашний каталог пользователя, то есть : cd
В .bash_profile добавьте следующую строку:
export PATH=/Applications/MAMP/bin/php/php5.4.10/bin:$PATH
Сначала вы должны использовать команду cd/Applications/MAMP/bin/php, чтобы проверить, какую версию PHP из MAMP вы используете, а затем заменить ее на версию PHP, указанную выше. Затем перезапустите терминал и посмотрите, какой PHP вы используете сейчас. Теперь все должно работать.
Ответ 3
Для тех, кто использует XAMPP 1.7.3 и Mac:
Перейдите в Терминал.
Введите php.
Если там написано /usr/bin/php, то перейдите к пункту 3.
Введите sudo nano ~/.bash_profile (или sudo vim ~/.bash_profile, если вы знаете, как им пользоваться).
Затем вставьте это export PATH="/Applications/XAMPP/xamppfiles/bin:$PATH".
Ctrl+O, затем enter для сохранения, затем Ctrl+X для выхода.
Введите cd ~.
Введите .bash_profile.
Перезапустите терминал.
Введите php. Если вы все сделали правильно, он должен быть таким же, как путь в #4.
Причина ошибки mcrypt в том, что ваш Mac использует свой родной php, вам нужно изменить его на тот, который есть у xampp.
P.S. Я бы рекомендовал использовать MAMP для Laravel 4 для пользователей Mac, эта проблема будет решена вместе с ошибкой php file info без проблем, а версия php в xampp несколько устарела.
Ответ 4
Обеспечение работы Laravel на Apache. Версия PHP : PHP 5.5.9. Версия Ubuntu: 14.04
У меня был рабочий проект laravel на windows. Когда я скопировал его на сервер ubuntu, я начал получать ошибку mcrypt. Это было после многих часов проб и ошибок. Получение работающей команды artisan (если у вас возникла ошибка mcrypt при использовании инструмента командной строки artisan). Я сделал много проб и ошибок, поэтому каждый раз, когда я запускал команду php5enmod, у меня появлялись сообщения об ошибках. После этого шага у меня заработала команда artisan.
sudo rm /etc/php5/mods-available/mcrypt.ini
sudo apt-get purge php5-mcrypt
sudo apt-get install mcrypt
sudo apt-get install php5-mcrypt
sudo php5enmod mcrypt
Исправление ошибки браузера
(если у вас возникает ошибка mcrypt в браузере при доступе к локальной странице индекса laravel)
sudo nano /etc/php5/apache2/php.ini
Добавьте следующую строку в раздел динамически скомпилированных расширений php ini.
extension=mcrypt.so
Перезапустите сервер apache, очистите кеш laravel, и все заработает
Ответ 5
В OS X
Использование MAMP
Введите команду which php в терминале, чтобы узнать, какую версию PHP вы используете. Если это не версия PHP от MAMP, необходимо обновить переменную $PATH, используемую в Bash.
Во-первых, вы должны использовать команду «cd/Applications/MAMP/bin/php», чтобы проверить, какая версия php из MAMP, и принять к сведению версию (например, php5.6.7).
Как только вы узнаете версию, вы должны отредактировать файл ~/.bash_profile (то есть тот .bash_profile,который находится в вашем домашнем каталоге) и добавить строку экспорта:
export PATH=/Applications/MAMP/bin/php/php5.6.7/bin:$PATH
Убедитесь, что вы заменили php5.6.7 на версию PHP, которую вы выбрали в MAMP. После сохранения файла убедитесь, что вы закрыли Терминал и открыли его снова. После этого вы будете использовать PHP, поставляемый вместе с MAMP. Один из способов легко найти строку, которую нужно вставить в .bash_profile, это выполнить следующую команду в терминале:
echo export PATH='cat /Applications/MAMP/conf/apache/httpd.conf \
| grep php | grep -i LoadModule | head -n1 \
| sed -e 's/^[^\/]*\/\(.*\)\/mod.*/\/\1/''/bin:\$PATH
Копирование и вставка этих трех строк в ваш терминал правильно выведет версию PHP, выбранную на панели управления MAMP.
Использование Homebrew/MacPorts
Убедитесь, что ваш path содержит /usr/local/bin/(Homebrew) или /opt/local/bin(MacPorts), если вы используете PHP, который поставляется с одним из этих двух менеджеров пакетов.
Проверка пути PHP с помощью MacPorts
Вы можете найти точное местоположение PHP с помощью MacPorts с помощью следующей команды:
port contents php70 | grep bin/php
Обратите внимание, что вы должны заменить php70 на ту версию PHP, которая у вас установлена.
Проверка пути PHP с помощью Homebrew-php
Вы можете найти точное местоположение PHP при помощи Homebrew с помощью следующей команды:
brew --prefix homebrew/php/php56
Web