2016-09-26 3 views
4

После обновления до Mac OSX Sierra от El Capitan, как только я запустил php, он отказывается запускать любой проект php, который был ранее установлен в моей системе. что после изучения этой проблемы в интернете, я пришел с этими вариантами ... После выполнения команды ниже:Проблема с mcrypt при обновлении до Mac OSX Sierra

cd /etc/apache2/ 
sudo mv httpd.conf httpd.conf.sierra 
sudo mv httpd.conf~previous httpd.conf 

cd .. 
sudo cp php.ini-previous php.ini 

sudo apachectl restart 

Я сделал свою работу проекта PHP как шарм. Но теперь я столкнулся с другой проблемой. Это ошибка расширения php mcrypt. Поскольку я запускаю проект php (проект laravel 4.2), проект не работает и показывает мне ошибку - «требуется расширение PHP mcrypt!» Пожалуйста, помогите мне с этим .. Mcrypt линия мой php.ini файла выглядит следующим образом

; Directory in which the loadable extensions (modules) reside. 
; http://php.net/extension-dir 
; extension_dir = "./" 
extension_dir = "/usr/lib/php/extensions/no-debug-non-zts-20121212/" 
; extension_dl = On 
extension=mcrypt.so 
; On windows: 
; extension_dir = "ext" 

Можете ли вы сказать мне, что случилось с моей системой.

+0

Я бы порекомендовал не использовать apache или PHP, которые поставляются с системой, а вместо этого установить их чистыми и отдельными через Homebrew. Затем вы избегаете всего устаревания и меняетесь при обновлении. –

+0

Лучше всего не использовать mcrypt, он является отказом, не обновлялся годами и не поддерживает стандартные дополнения PKCS # 7 (née PKCS # 5), только нестандартное нулевое заполнение, которое нельзя даже использовать с двоичным данные. В mcrypt было много выдающихся [ошибок] (https://sourceforge.net/p/mcrypt/bugs/), относящихся к 2003 году. Вместо этого подумайте об использовании [defuse] (https://github.com/defuse/php-encryption) или [RNCryptor] (https://github.com/RNCryptor), они обеспечивают полное решение и поддерживаются и верны. – zaph

+0

Прошел через каждый шаг - я на php 5.6.25 и все скомпилировано и файлы в нужном месте, но номер версии php api был неожиданно другим! Не знаю, куда идти, но это не сработало. –

ответ

3

Я исправил мою проблему ... Для расширения Mcrypt работы (если вы получите сообщение об ошибке после обновления) Затем следует this guide с нуля ...

Пожалуйста, используйте обновленную версию libmcrypt и PHP (PHP 5.6 - поставляется с OSX Sierra) из упомянутого руководства (см. Выше).

И если ваш MySQL перестает работать после того, как folowing вышеописанный процесс (как это случилось со мной :(), а затем просто удалить все .ERR файлы из каталога /USR/местные/MySQL/данные и перезапустить MySQL снова для получения дополнительной информации - see this

Перезапуска MySQL использовать эту команду

sudo /usr/local/mysql/support-files/mysql.server restart 

Надеется, что это поможет вам обновить Mac OSX без какого-либо проблемы и экономит ваши драгоценные часы .. !! : D

+0

Я следовал за гидом, но все же я получаю ту же ошибку для проектов Laravel 4.2. Laravel 5.2 отлично работает. phpinfo() не показывает mcrypt. Пробовала установку Homebrew тоже, все это не работало! Есть идеи? –

+1

@Jose, позвольте мне прояснить, что, пожалуйста, используйте последнюю версию php и libmcrypt, которая используется Mac OSX Sierra. Руководство, о котором я упомянул, относится к Mac OSX El Capitan, поэтому вам следует следовать этому руководству, имея в виду, что использовать последние вещи для обновления ... !! Надеюсь, все будет работать как шарм. –

0

Необходимо установить динамические расширения.

Эта линия ваша проблема:

; extension_dl = On 

Вы должны удалить ";"

0

В моем случае я сделал это работать со следующими шагами:

  • Installed XAMPP с PHP 7.0
  • Добавлено следующее в файле Баш профиля

    export PATH=/Applications/XAMPP/xamppfiles/bin/:$PATH 
    

Порядок действительно важен, так как он найдет php 7.0 перед сист em one (5.6).

Смежные вопросы