Добавление расширения GMP PHP в MAMP

Пытаюсь использовать MAMP 3.4 с последней версией PHP в настоящее время (5.6.10), но мне нужно расширение PHP GMP. Насколько я понимаю, это расширение не является отдельным модулем, но требует полной перекомпиляции PHP с —with-gmp.

Пытаясь следовать руководство, связанное здесь с чистым исходным кодом 5.6.10, но я получаю ту же ошибку, что и OP:

Didiers-MacBook-Pro:php-5.6.10 didier$ ./configure --with-mysql=/Applications/MAMP/Library --with-apxs2=/Applications/MAMP/Library/bin/apxs --with-gd --with-jpeg-dir=/Applications/MAMP/Library --with-png-dir=/Applications/MAMP/Library --with-zlib --with-freetype-dir=/Applications/MAMP/Library --prefix=/Applications/MAMP/bin/php5 --exec-prefix=/Applications/MAMP/bin/php5 --sysconfdir=/Applications/MAMP/conf/php5 --with-soap --with-config-file-path=/Applications/MAMP/conf/php5 --enable-track-vars --enable-bcmath --enable-ftp --enable-gd-native-ttf --with-bz2=/usr --with-ldap --with-mysqli=/Applications/MAMP/Library/bin/mysql_config --with-sqlite --with-ttf --with-t1lib=/Applications/MAMP/Library --enable-mbstring=all --with-curl=/Applications/MAMP/Library --enable-dbx --enable-sockets --enable-bcmath --with-imap=shared,/Applications/MAMP/Library/lib/imap-2006i --enable-soap --with-kerberos --enable-calendar --with-pgsql=shared,/Applications/MAMP/Library/pg --enable-dbase --enable-exif --with-libxml-dir=/Applications/MAMP/Library --with-gettext=shared,/Applications/MAMP/Library --with-xsl=/Applications/MAMP/Library --with-pdo-mysql=/Applications/MAMP/Library --with-pdo-pgsql=shared,/Applications/MAMP/Library/pg --with-mcrypt=shared,/Applications/MAMP/Library --with-openssl --with-gmp --without-iconv --prefix=/Users/Didier/Desktop/result
configure: WARNING: unrecognized options: --with-soap, --enable-track-vars, --with-sqlite, --with-ttf, --enable-dbx, --enable-dbase
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for a sed that does not truncate output... /usr/bin/sed
checking build system type... x86_64-apple-darwin14.5.0
checking host system type... x86_64-apple-darwin14.5.0
checking target system type... x86_64-apple-darwin14.5.0
checking for cc... cc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether cc accepts -g... yes
checking for cc option to accept ISO C89... none needed
checking how to run the C preprocessor... cc -E
checking for icc... no
checking for suncc... no
checking whether cc understands -c and -o together... yes
checking how to run the C preprocessor... cc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking minix/config.h usability... no
checking minix/config.h presence... no
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
checking whether ln -s works... yes
checking for system library directory... lib
checking whether to enable runpaths... yes
checking if compiler supports -R... no
checking if compiler supports -Wl,-rpath,... yes
checking for gawk... no
checking for nawk... no
checking for awk... awk
checking if awk is broken... no
checking for bison... bison -y
checking for bison version... invalid
configure: WARNING: This bison version is not supported for regeneration of the Zend/PHP parsers (found: 2.3, min: 204, excluded: 3.0).
checking for re2c... no
configure: WARNING: You will need re2c 0.13.4 or later if you want to regenerate PHP parsers.
checking whether to enable computed goto gcc extension with re2c... no
checking whether cc supports -no-cpp-precomp... yes
checking whether to force non-PIC code in shared modules... no
checking whether /dev/urandom exists... yes
checking for pthreads_cflags...
checking for pthreads_lib...

Configuring SAPI modules
checking for AOLserver support... no
checking for Apache 1.x module support via DSO through APXS... no
checking for Apache 1.x module support... no
checking whether to enable Apache charset compatibility option... no
checking for Apache 2.0 filter-module support via DSO through APXS... no
checking for Apache 2.0 handler-module support via DSO through APXS...

Sorry, I cannot run apxs.  Possible reasons follow:

1. Perl is not installed
2. apxs was not found. Try to pass the path using --with-apxs2=/path/to/apxs
3. Apache was not built using --enable-so (the apxs usage page is displayed)

The output of /Applications/MAMP/Library/bin/apxs follows:
cannot open /Applications/MAMP/Library/build/config_vars.mk: No such file or directory at /Applications/MAMP/Library/bin/apxs line 217.
configure: error: Aborting

3

Решение

Оказывается, вам нужны некоторые важные файлы из httpd для сборки php в качестве модулей Apache (как того требует MAMP). MAMP пропускает эти файлы из установки.

  1. Загрузите Apache с http://mirror.reverse.net/pub/apache/httpd/
    Убедитесь, что загружаемая вами версия совпадает с версией, найденной в дистрибутиве MAMP. Вы можете напечатать /Applications/MAMP/Library/bin/httpd -version из командной строки, чтобы узнать.
  2. Разархивируйте дистрибутив и перейдите в него.
  3. Создайте папку где-нибудь для хранения результатов сборки. Мы разместим наши файлы на рабочем столе, что-то вроде ~/Desktop/build/httpd,
  4. Следующий шаг — построить httpd, Что-то вроде ./configure --prefix=/Users/[username]/Desktop/build/httpd --enable-so должен сделать свое дело. Обратите внимание, что путь установки должен быть абсолютным, поэтому мы не можем использовать здесь символ тильды.
  5. После завершения настройки и без каких-либо ошибок, make а потом make install, Теперь у вас есть сервер Apache, скомпилированный из исходного кода. Congrats!
  6. Из этой сборки нам нужно получить файлы, отсутствующие в нашей установке MAMP. Это на самом деле один каталог, расположенный на ~/Desktop/build/httpd/build, Скопируйте это в /Applications/MAMP/Library и теперь вы сможете создавать PHP без этого вышеупомянутого сообщения об ошибке. Убедитесь, что вы скопировали каталог и не перемещайте его. Это понадобится вам позже во время компиляции PHP.

Следующим шагом является компиляция самого PHP:

  1. Загрузите исходный код PHP с http://php.net/downloads.php,
    Убедитесь, что вы загружаете ту же версию, которую пытаетесь заменить (вы можете найти все версии, которые MAMP имеет в магазине, в /Applications/MAMP/bin/php, В моем случае я строю 5.6.10.
  2. Разархивируйте дистрибутив и перейдите в него.
  3. Создайте папку где-нибудь для хранения результатов сборки. Еще раз, я помещаю свои результаты на мой рабочий стол в ~/Desktop/build/php,
  4. Настройте PHP, чтобы создать то, что вам нужно, с чем-то вроде ./configure --with-apxs2=/Applications/MAMP/Library/bin/apxs --prefix=/Users/[username]/Desktop/build/php --with-openssl --without-iconv, Если вы хотите, вы можете посмотреть на существующей странице phpinfo версию, которую вы заменяете, чтобы узнать, с чем она была скомпилирована. Имейте в виду, что некоторые модули требуют, чтобы вы собирали из исходных копий некоторых других библиотек.
  5. make а также make install,
  6. Теперь у вас есть общий объект для php, который вы можете использовать с MAMP. Закрыть MAMP, скопировать ~/Dekstop/build/httpd/modules/libphp5.so в /Applications/MAMP/bin/php/php5.6.10/modules и перезапустите его. Хранение копии предыдущего libphp5.so Файл не плохая идея на тот случай, если дела пойдут на юг.
3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]