Установка расширений PHP в Mac OS X
Как известно, в Mac OS X уже есть и apache и PHP, но что делать если требуется добавить какое-либо расширение в PHP? Можно, конечно, воспользоваться brew и получить еще одну параллельную версию PHP, а потом мучиться с ее настройкой, ради одного расширения. Я же опишу более правильный путь — собрать расширение для уже имеющегося в системе PHP.
Описание на примере mcrypt, который мне понадобился при установке laravel. Фактически ниже будет перевод поста http://stackoverflow.com/a/21803286, благодаря которому у меня все получилось. По аналогии с этим, фактически, ставится любое расширение для штатного PHP в Mac OS X.
1. autoconf
Для начала понадобится autoconf, у меня он уже был после установки Oracle Client и php-oci8, поэтому прежде чем копипастить код, стоит проверить наличие его у вас.
/mcrypt/dependencies/autoconf
$ curl -OL http://ftpmirror.gnu.org/autoconf/autoconf-latest.tar.gz
$ tar xzf autoconf-latest.tar.gz
$ cd autoconf-*/
$ ./configure —prefix=/usr/local
$ make
$ sudo make install
Должно вернуть /usr/local/bin/autoconf
2. libmcrypt
Как известно, php-mcrypt зависит от libmcrypt 🙂 Поэтому качаем исходники с SourceForge, например по ссылке http://sourceforge.net/projects/mcrypt/files/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.bz2/download. Переходим по ссылке и доходим до скачивания, копируем прямую ссылку на файл и вставляем ee в код ниже:
/mcrypt/dependencies/libmcrypt
$ curl -L -o libmcrypt.tar.bz2 ‘ ‘
$ tar xjf libmcrypt.tar.bz2
$ cd libmcrypt-*/
$ ./configure
$ make
$ sudo make install
3. php-mcrypt
Теперь собираем раcширение mcrypt, для этого понадобятся исходники установленного PHP. Для начала узнаем версию нашего PHP:
$ php —version # в моем случае 5.5.14
Далее как в предыдущем пункте, идем по ссылке http://www.php.net/get/php-5.5.14.tar.bz2/from/a/mirror и получаем прямую ссылку на скачивание файла. Если ваш PHP сильно устарел, то придется поискать его исходники, начать можно отсюда https://secure.php.net/releases/.
/mcrypt/php
$ curl -L -o php-5.5.14.tar.bz2 ‘
‘
$ tar xjf php-*.tar.bz2
$ cd php-*/ext/mcrypt
$ phpize
$ ./configure # вот тут все сломается, если libmcrypt из предыдущего шага не установлен
$ make
$ make test
$ sudo make install
Теперь у нас появилось само расширение mcrypt.so, для пущей уверенности можно проверить это при помощи команды
$ sudo find / -iname mcrypt.so
Это обыщет ВСЮ файловую систему на предмет файла mcrypt.so, не быстрая операция.
4. Включаем расширение mcrypt
Проверяем, что у нас есть работающий php.ini
Если не выдает ничего, то у нас его нет, и его нужно создать, например вот так:
$ sudo cp /private/etc/php.ini.default /private/etc/php.ini
И теперь добавляем строку в php.ini, желательно рядом с тем местом, где описаны остальные расширения
Убедится, что расширение включено можно с помощью команды:
$ php -m | grep mcrypt
Которая должна вывести «mcrypt» и больше ничего.
Ну и теперь перезапускам apache, чтоб php-mcrypt был доступен веб серверу
$ sudo apachectl restart
Еще раз напомню, что аналогично устанавливается практически любое расширение, входящее в состав PHP.
How to enable mcrypt in php on Mac OSX 10.9?
Since I want to start learning Laravel, I need to install mcrypt in php. I’m on Mac OSX 10.9 and I installed apache and php manually (no mamp or anything like it) so I followed this guide to install mcrypt. The whole procedure works as expected (no errors), but after restarting the server using sudo apachectl restart I have a look at the output of phpinfo(), and I can’t find any mentioning of mcrypt.
Since I don’t think I had any errors in the process of compiling and installing, I don’t really know where to look for the mistake. Does anybody know what would be logical things to check for?
3 Answers 3
I have the same problem, on MAC OS X 10.9, no mcrypt library working. After some hours and many headaches (I’m not so skilled. ) I found this guide, and finally get it working on my local machine: http://jenssegers.be/blog/49/installing-the-php-mcrypt-extension-on-osx-10-9-mavericks
The passage I missed were to go in the ext/mcrypt dir of a new php downloaded package and then type:
cd php-5.4.17/ext/mcrypt/ /usr/bin/phpize ./configure make sudo make install
Как установить расширение mcrypt на mac os x yosemite (10.10)
я обновил свой Mac OS X до Yosemite, но делая это, я пишу всю свою среду разработки. Итак, теперь, чтобы запустить Laravel 4 на моем локальном apache, мне нужно установить расширение Mcrypt, но все, что я пробовал, я терплю неудачу. Даже шаги, которые работали на OS X Mavericks (10.9)
У кого-нибудь есть такая же проблема? Спасибо заранее.
4 ответов
я только что установил его прямо сейчас на моей установке Mavericks с помощью homebrew, и он работал удивительно хорошо. Не могу сказать, будет ли это работать так хорошо на Йосемити, но стоит попробовать..
доморощенного
системы MacPorts
проверьте версию PHP
Загрузите и установите соответствующий версия..
теперь фиктивное доказательство..
найдите, куда Macports поместил файл mcrypt.Итак, скопируйте его во все экземпляры . Если у вас есть эта структура каталогов в нескольких местах, скопируйте ее во все из них. Таким образом, каждый php / extensions / no-debug.. папка на вашем компьютере имеет копию mcrypt.so
определите, где ваш php.ini-файл и убедитесь, что это тот, который ваш фактически используя, потому что у вас может быть этот файл более чем в 1 месте. Сделай это со всеми php.ini файлы, которые вы найдете..
в этом файле найдите и раскомментируйте следующую строку. Если она закомментирована, раскомментируйте ее. Если его вообще нет в файле, добавьте его. В моем php по умолчанию.ini-файл я нашел это в строке 536:
Compile
настройка, сборка и установка
настройка, сборка и установка
Apache
независимо от того, какой метод вы использовали, чтобы установить его. Вы всегда должны перезапускать Apache, когда ваш сделанный.
Я просто сделал это и он установлен. MAMP etc. не установленный.
и, как ни странно, мне пришлось переустановить, чтобы установить его правильно.
однако это также переустановило PHP5.5 из источника, но неважно, все работает нормально с моей стороны.
У меня была та же проблема. Но я использую MAMP для своего местного развития. Итак, мне просто нужно было символически связать файл php с версией MAMP, и все работает.
при использовании homebrew попробуйте переустановить или повторно связать установку php.
Я уверен, что могу помочь вам встать и работать, так что просто дайте мне знать, если это не поможет.
Сначала установите libtool из homebrew, который является зависимостью в 10.10 Yosemite
затем CD в каталог php
и в ваш php.каталог д
затем, наконец, сделайте быстрый ls, чтобы увидеть, какие расширения вы используете:
если вы видите повторяющиеся записи, содержащие «mcrypt» вам нужно будет открыть одну из них, и закомментировать строку:
но только в одном из них. Для меня это был Мак-крипт.ini. Так..
idleberg / Install-Mcrypt.md
Setup php-mcrypt on macOS (and versions of Mac OS X)
These steps should have been mentioned in the prerequisites of the Laravel Installation Guide, since I’m surely not the only person trying to get Laravel running on macOS.
Install Mcrypt using Homebrew and PECL (comes with PHP)
Add this line to your php.ini :
Install Mcrypt using Homebrew
Add this line to /private/etc/php.ini :
You are ready to go!
Upgrade Mcrypt using Homebrew
This comment has been minimized.
Copy link Quote reply
juanmadurand commented Apr 4, 2017
This comment has been minimized.
Copy link Quote reply
pqt commented Oct 17, 2017
This. You get a gold damn start for this.
This comment has been minimized.
Copy link Quote reply
jonathandana commented Oct 28, 2017
is not working you can to help me.
thank you.
This comment has been minimized.
Copy link Quote reply
trunghaiy commented Dec 12, 2017
You could try «brew install homebrew/php/php71-mcrypt»
This comment has been minimized.
Copy link Quote reply
dlclarkGOB commented Dec 19, 2017
Trying to update PHP56: Get errors from brew indicating no formula found in taps .
This comment has been minimized.
Copy link Quote reply
danny-freeman commented Feb 2, 2018
This hasn’t worked for me. It installs it and I have added the line to my php.ini.default and the error still remains.
This comment has been minimized.
Copy link Quote reply
ericmargules commented Feb 19, 2018
This comment has been minimized.
Copy link Quote reply
raulcastro commented Feb 27, 2018
Wow! Thank you very much, it worked for me! with the command «brew install homebrew/php/php71-mcrypt» that @trunghaiy suggest
This comment has been minimized.
Copy link Quote reply
robhuijben commented Apr 9, 2018
homebrew/php is deprecated
This comment has been minimized.
Copy link Quote reply
emekaorjiani commented Apr 9, 2018
I kept getting that «Warning: Use php instead of deprecated homebrew/php/php72» Please does it mean that php72 is unstable or how can I recompile to remove the homebrew/php, Also can someone help me install php72-mcrypt
This comment has been minimized.
Copy link Quote reply
MatTeague commented Apr 17, 2018 •
I can’t get this to work for PHP 7.1. When I try brew install php71-mcrypt or brew install homebrew/php/php71-mcrypt I get the following error:
This comment has been minimized.
Copy link Quote reply
xnhinzkyx commented Apr 18, 2018
This comment has been minimized.
Copy link Quote reply
BramEsposito commented May 4, 2018
You need to install with PECL: pecl install mcrypt-1.0.1 (PHP 7.2)
This comment has been minimized.
Copy link Quote reply
dlaweb commented May 4, 2018 •
This comment has been minimized.
Copy link Quote reply
kervin commented May 21, 2018 •
For php 7.0, which version of mcrypt should I use?
It was so much easier previously with homebrew. dah!
This comment has been minimized.
Copy link Quote reply
syednaeem15191 commented Jun 5, 2018
‘brew install mcrypt’ is working for me and it give me the directory location of the install too, but i cannot find a .so file in there,
This comment has been minimized.
Copy link Quote reply
rogoit commented Jun 6, 2018
«but i cannot find a .so file in there» — same problem on me ;( Also tried to include the bin/mcrypt file with path and without.
This comment has been minimized.
Copy link Quote reply
javierenciso commented Jun 13, 2018
I couldn’t install mcrypt for php53 as it is deprecated today (june 2018), so I’ve got a copy from fellow of the .so for php53, and installed mcrypt with
brew install mcrypt
and then copied the files and added lines to php.ini to get it working with php53
source: https://blog.pheonixsolutions.com/install-mcrypt-php-macos-high-sierra-development-server/
Commenting this here for anybody with the same issue.
This comment has been minimized.
Copy link Quote reply
simplesirnet commented Jun 26, 2018
PHP 7.1.16 (cli) (built: Apr 1 2018 13:14:42) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies
wangrui$ brew install php70-mcryp
Updating Homebrew.
==> Auto-updated Homebrew!
Updated 1 tap (homebrew/core).
==> Updated Formulae
mariadb@10.2
Error: No available formula with the name «php70-mcryp»
==> Searching for a previously deleted formula (in the last month).
Warning: homebrew/core is shallow clone. To get complete history run:
git -C «$(brew —repo homebrew/core)» fetch —unshallow
Error: No previously deleted formula found.
==> Searching for similarly named formulae.
==> Searching local taps.
Error: No similarly named formulae found.
==> Searching taps.
==> Searching taps on GitHub.
Error: No formulae found in taps.
wangruideMBP: