重新编译MAMP的PHP的方法

MAMP自带的PHP版本在编译的时候是没有加上--enable-debug选项的,于是我打算自己重新编译一下PHP方便自己在进行PHP扩展研究的时候可以用gdb来查看core dump文件。

首先使用MAMP中的php版本查看phpinfo()
得到了MAMP在编译时候的参数

--more--
并且在后面加上了--enable-debug选项

sudo './configure' '--with-mysql=mysqlnd' '--with-gd' '--with-jpeg-dir=/Applications/MAMP/Library' '--with-png-dir=/Applications/MAMP/Library' '--with-zlib' '--with-zlib-dir=/Applications/MAMP/Library' '--with-freetype-dir=/Applications/MAMP/Library' '--prefix=/Applications/MAMP/bin/php/php5.5.26' '--exec-prefix=/Applications/MAMP/bin/php/php5.5.26' '--sysconfdir=/Applications/MAMP/bin/php/php5.5.26/conf' '--with-config-file-path=/Applications/MAMP/bin/php/php5.5.26/conf' '--enable-ftp' '--enable-gd-native-ttf' '--with-bz2=/usr' '--with-ldap' '--with-mysqli=mysqlnd' '--with-t1lib=/Applications/MAMP/Library' '--enable-mbstring=all' '--with-curl=/Applications/MAMP/Library' '--enable-sockets' '--enable-bcmath' '--with-imap=shared,/Applications/MAMP/Library/lib/imap-2007f' '--enable-soap' '--with-kerberos' '--enable-calendar' '--with-pgsql=shared,/Applications/MAMP/Library/pg' '--enable-exif' '--with-libxml-dir=/usr/include' '--with-gettext=shared,/Applications/MAMP/Library' '--with-xsl=/Applications/MAMP/Library' '--with-pdo-mysql=mysqlnd' '--with-pdo-pgsql=shared,/Applications/MAMP/Library/pg' '--with-mcrypt=shared,/Applications/MAMP/Library' '--with-openssl' '--enable-zip' '--with-iconv=/Applications/MAMP/Library' '--enable-opcache' '--enable-cgi' '--enable-intl' '--with-icu-dir=/Applications/MAMP/Library' '--with-tidy=shared' '--enable-wddx' '--with-libexpat-dir=/Applications/MAMP/Library' --enable-debug
将重新下载的php对应版本新建了一个目录,解压在了以下的文件夹中

/Applications/MAMP/bin/php/php5.5.26/include/php

第一次使用上面的参数第一次编译报错:

configure: error: Cannot find OpenSSL's <evp.h>

brew link openssl --forece
再编译,又获得如下错误

configure: error: jpeglib.h not found
使用brew安装jpeglib

sudo brew install jpeglib
接下来又报错

configure: error: png.h not found
sudo brew install t1lib
报错

configure: error: Cannot locate header file libintl.h
用以下来解决

sudo brew install gettext
1) 安装 gettext:

brew install gettext
2) 编辑configure文件
将:

for i in $PHP_GETTEXT /usr/local /usr ; do
更改为:

for i in $PHP_GETTEXT /usr/local /usr /usr/local/opt/gettext; do
3)重新运行 ./configure

报错

configure: error: utf8_mime2text() has new signature, but U8T_CANONICAL is missing. This should not happen. Check config.log for additional information
安装

sudo brew install imap-uw
报错

configure: error: mcrypt.h not found. Please reinstall libmcrypt.
安装

sudo brew install libmcrypt
报错

configure: error: Cannot find libpq-fe.h. Please specify correct PostgreSQL installation path
安装

sudo brew install PostgreSQL
之后

sudo make && sudo make install
会报错找不到libxml/parse.h

改成

/usr/include/libxml2
安装iconv

sudo brew install homebrew/dupes/libiconv
在修复libiconv报错的时候,网上一篇文章写移动/use/lib/目录底下的libiconv.*移动到其他目录,替换刚刚安装的libiconv来交叉编译,结果刚移动系统就崩溃了。这个库应该是系统很多程序调用的库, 花了一晚上重装了个系统,打算明天用docker来装个PHP环境。

时间: 2024-09-16 13:12:57

重新编译MAMP的PHP的方法的相关文章

c语言-linux C 编译 动态库.so 提示 方法load failed

问题描述 linux C 编译 动态库.so 提示 方法load failed makefile里:libtest.so: 1.o 2.o 3.o 4.o gcc -shared -fPIC -o libtest.so 1.c 1.c 用到的方法都在2.o3.o4.o里, 现在编译libtest.so没问题,但是程序跑的时候,提示 1.c调用2.o里的方法load fail:小弟没怎么弄过makefile, 求大神指点! 解决方案 把所有用到的so也放到程序当前目录 解决方案二: http://

vc60-VC编译器编译问题,解决的方法是什么

问题描述 VC编译器编译问题,解决的方法是什么 我打的代码在自己的电脑上用VC编译器编译总是出错,但把代码在其它同学电脑上编译时没有错误,请问这该怎么解决,请各位帮忙解决一下 解决方案 (1)请你的同学帮你检查下,你在创建程序和编写代码方面是不是有什么小差错,你没有检查出来 (2)如果还不行,就是你的VC++的问题,VC++6.0太古老,和Win7/8/10不兼容,我这里有个下载(不用担心,免积分)http://download.csdn.net/detail/caozhy/9469921 你按

Linux下编译redis和phpredis的方法_php技巧

本文讲述了Linux下编译redis和phpredis的方法.分享给大家供大家参考,具体如下: 1.准备工作 下载软件:本站下载地址. 操作系统:CentOS 5.5 redis 版本:redis-2.6.9 2.编译安装 tar zxvf redis-2.6.9.tar.gz //解压 cd redis-2.6.9 make //编译 如果出现如下错误: zmalloc.o: In function `zmalloc_used_memory': /data/redis-2.6.9/src/zm

Eclipse不自动编译java文件的解决方法

最近我的eclipse经常犯傻,项目中总是有很多,启动项目也是没有启动类.查了下项目中生成的class文件,我靠竟然没有,或者还是以前的.原来是eclipse犯傻了,它没帮我自动编译java文件.一般是如下几个步骤.但是还是不自动编译. 最基本的解决办法--这是前提 然后clean和refresh下项目.如果这样还是不行,用下面的方法吧,终极解决方案...... 1:去除项目中的jre的classpath 查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.

人肉反编译使用yield关键字的方法

我认为这是一个真命题:"没有用.NET Reflector反编译并阅读过代码的程序员不是专业的.NET程序 员"..NET Reflector强大的地方就在于可以把IL代码反编译成可读性颇高的高级语言代码,并且能够支 持相当多的"模式",根据这些模式它可以在一定程度上把某些语法糖给还原,甚至可以支持简单的 Lambda表达式和LINQ.只可惜,.NET Reflector还是无法做到极致,某些情况下生成的代码还是无法还原 到易于理解--yield关键字便是这样一个典

Word2003“隐含模块中的编译错误:UserAddWord”解决方法

用户在使用Word2003编辑Word文档的过程中,有时会遇到"隐含模块中的编译错误:UserAddWord"的错误提示,可以按照如下方法加以解决: 第1步,在Word2003文档菜单栏依次选择"工具"→"模板和加载项"菜单命令,如图2009012401所示. 图2009012401 选择"模板和加载项"命令 第2步,打开"模板和加载项"对话框,在"模板"选项卡中查看"共用模板

Linux编译升级php的详细方法_php技巧

服务器环境:CentOS – 5.4php升级:5.4.14 - 5.5.0升级心得:比较顺利,但是有一点需要说明:eaccelerator无法兼容php5.5.0,好在php在5.5.0默认提供了Zend OPcache,所以一直习惯eaccelerator的朋友如果要升级到php5.5.0的话,可能要暂时和eaccelerator说bye bye了.1.安装php5.5.0下载php安装包:http://www.php.net/get/php-5.5.0.tar.gz/from/a/mirr

常见的ASP.NET中编译执行错误及解决方法

21.vs2005不能从源文件模式切换到视图模式 解决方法:dos下运行下 devenv /resetskippkgs (win+r cmd) 22.Validation of viewstate MAC failed 解决办法:页面的顶部page加 EnableViewState="False" EnableViewStateMac = "False" 来解决这个问题 23.Automation server can't create object"(A

VC6.0常见编译错误提示附解决方法

这篇文章主要介绍了VC++6.0编译过程中常遇到的一些错误提示并给出了错误原因与分析,需要的朋友尅参考下   (1)error C2001: newline in constant 编号:C2001 直译:在常量中出现了换行. 错误分析: 1.①字符串常量.字符常量中是否有换行. 2.②在这句语句中,某个字符串常量的尾部是否漏掉了双引号. 3.③在这语句中,某个字符创常量中是否出现了双引号字符""",但是没有使用转义符""". 4.④在这句语句中