После того как я обновил свою систему с Ubuntu 13.04 до 13.10, возникли несколько проблем с конфигурациями apache, mysql и php.
Я решил большинство из них, но я не могу заставить работать библиотеку mCrypt.
Пакет установлен, поэтому мне не нужно его использовать. Сервер работает, и все кажется прекрасным, но когда я пытаюсь запустить php artisan serve
с Laravel 4, я получаю сообщение о том, что mCrypt требуется.
Я сделал php --ri mcrypt
, а результат был Extension 'mcrypt' not present.
Я попытался поставить extension=mcrypt.so
на /etc/php5/apache2/php.ini
, но это не сработало.
Любые идеи?
Вывод dpkg --get-selections | grep php5
libapache2-mod-php5 install
php5 install
php5-cli install
php5-common install
php5-gd install
php5-json install
php5-mcrypt install
php5-mysql install
php5-readline install
Я думаю, что нашел решение на launchpad.net.
Итак:
sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available
sudo php5enmod mcrypt
sudo service apache2 restart
Это сработало для меня. Надеюсь, это будет полезно и для других людей.
У меня была проблема с Ubuntu 14.04, и я решил сделать следующее:
sudo apt-get install php5-mcrypt
sudo php5enmod mcrypt
sudo service apache2 restart
У меня также есть эта проблема с Ubuntu 14.04 после установки.
Сначала включите mcrypt
sudo gedit /etc/php5/apache2/php.ini
Добавьте эту команду в любую строку
extension=mcrypt.so
Создайте папку conf.d в /etc/php 5
sudo mkdir conf.d
И внутри этой папки создайте файл mcrypt.ini
sudo gedit mcrypt.ini
Затем добавьте эту команду в этот файл
extension=mcrypt.so
Затем создайте ссылку на файл
sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available
Включить модуль mcrypt
sudo php5enmod mcrypt
Перезапустить apache
sudo service apache2 restart
extension=mcrypt.so
в php.ini
. Он работает и без него, так как расширения php (например, mcrypt) находятся в отдельных файлах .ini
.
От Ubuntu 13.10 до 14.04:
sudo php5enmod mcrypt
sudo service apache2 restart
Работает для меня.
WARNING: Module mcrypt ini file doesn't exist under /etc/php5/mods-available
. Тем не менее, файл был расположен где-то еще. sudo cp /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/
и sudo cp /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/
приведенные выше команды. Взято с www.devraju.com
У меня также была эта проблема с Ubuntu 14.04 и Nginx, но для меня был перезапуск службы FPM, поэтому я сделал:
Установите библиотеку
apt-get install php5-mcrypt
Найдите путь
updatedb && & Найдите mcrypt.so
Задайте путь к mcrypt.so внутри файла mcrypt.ini, расположенного в файле /etc/php 5/mods-available/mcrypt.ini
расширение =/USR/Library/php5/20121212/mcrypt.so
И затем перезапустите службу FPM
перезапуск службы php5-fpm
Попробуйте этот код:
ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/apache2/conf.d/20-mcrypt.ini
service apache2 restart
Иногда эта "проблема" возникает из-за того, что вы ввели команду мастера на свой локальный компьютер, а не на свою виртуальную машину. Если вы используете Homestead, mcrypt уже установлен. Рассмотрим это как напоминание homestead ssh
только что найденный на php.net
Обратите внимание, что для Ubuntu просто установка php5-mcrypt не заставила mcrypt работать. Для его включения необходимо выполнить следующие команды:
apt-get install php5-mcrypt
mv -i /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/
php5enmod mcrypt
service apache2 restart
У меня была та же проблема с PHP 5.5.14, работающим на Mac OS X Yosemite. Я пытался установить Laravel 5.0. И когда я попытался создать новый проект, я получил ошибку, как показано ниже (даже когда я попытался запустить сервер laravel с помощью php artisan serve
Alejandros-MacBook-Pro:Documents Lexynux$ laravel new blog
Crafting application...
PHP Notice: Use of undefined constant MCRYPT_RIJNDAEL_128 - assumed 'MCRYPT_RIJNDAEL_128' in /Library/WebServer/Documents/blog/config/app.php on line 83
PHP Notice: Use of undefined constant MCRYPT_RIJNDAEL_128 - assumed 'MCRYPT_RIJNDAEL_128' in /Library/WebServer/Documents/blog/config/app.php on line 83
Generating optimized class loader
Compiling common classes
Compiling views
PHP Notice: Use of undefined constant MCRYPT_RIJNDAEL_128 - assumed 'MCRYPT_RIJNDAEL_128' in /Library/WebServer/Documents/blog/config/app.php on line 83
Application key [CCOPocoMjnJTx4AFXk64wqyTKyo3BlHq] set successfully.
Application ready! Build something amazing.
Alejandros-MacBook-Pro:Documents Lexynux$
Итак, я просто добавил строку ниже в конце моего файла php.ini с помощью редактора nano:
extension=mcrypt.so
sudo nano /etc/php.ini
Наконец, просто перезапустите терминал и перезапустите сервер приложений laravel с помощью
php artisan serve
И он отлично работает!
Другое решение, если пакет уже установлен:
sudo aptitude reinstall php5-mycript
Это работало для меня после обновления
dpkg --get-selections | grep php5