使用xampp在mac os x上构建XHP php扩展

时间:2013-04-29 20:47:05

标签: php installation xhp

我正在尝试在我的本地计算机上安装xhp,这是一台运行os x 10.8.2,又名Mountain Lion(64位)的Macbook pro。我xampp安装了开发包。

我已经花了很多时间试图让它发挥作用,我觉得我非常接近。但是......我已经通过自制程序安装了所有依赖项,升级了我的XCode版本并安装了XCode命令行工具。

通过research,我了解到xampp正在以32位模式运行,而Mountain Lion(文章中的Snow Leopard,但我在这里猜测它是一样的)在64位模式下编译。 / p>

这是我遇到麻烦的地方。我试过./configure以下方式:

  1. ./配置

  2. CFLAGS = -m32 CPPFLAGS = -m32 CCASFLAGS = -m32 ./configure

  3. MACOSX_DEPLOYMENT_TARGET = 10.8 CFLAGS =' - O3 -fno-common -arch i386 -arch x86_64'LDFLAGS =' - O3 -arch i386 -arch x86_64' CXXFLAGS =' - O3 -fno-common -arch i386 -arch x86_64' ./configure --with-php-config = / Applications / XAMPP / xamppfiles / bin / php-config-5.3.1

  4. 1)在make失败。可能是因为32/64位问题。

    2)和3)成功,但它破坏了PHP。将xhp.so扩展名添加到php.ini并运行一些任意但有效的PHP代码后,我收到以下错误:

    http://pastebin.com/80w2sWQN

    我发现了与issue on Github相同的问题,但我的makefile与解决方案中的makefile不匹配。

    有什么想法吗?

1 个答案:

答案 0 :(得分:0)

最后我解决了。我认为Github问题中的解决方案是修改源目录中的Makefile,而实际上是xhp / Makefile就是问题。

解决方案是添加对xhp / Makefile执行以下修改:

更改:

g++ -shared -Wl,-soname,libxhp.so -o libxhp.so $^

g++ -m32 -shared -Wl,-arch,i386 -o libxhp.so $^

更改:

ifdef DEBUG
  CPPFLAGS = -fPIC -ggdb -Wall -DDEBUG
else
  CPPFLAGS = -fPIC -g -Wall -O3 -minline-all-stringops
endif

ifdef DEBUG
  CPPFLAGS = -fPIC -ggdb -Wall -DDEBUG -arch i386
else
  CPPFLAGS = -fPIC -g -Wall -O3 -minline-all-stringops -arch i386
endif

然后使用参数配置:

./configure --with-php-config=/usr/local/zend/bin/php-config 
--target=i386-apple-darwin10.8.2 --build=i386-apple-darwin
--host=i386-apple-darwin10.8.2 CFLAGS='-arch i386' LDFLAGS='-arch i386'  
CC='gcc -m32' CXX='g++ -m32' CHOST='i386-apple-darwin10.8.2' 
CPPFLAGS='-arch i386'

我不知道上述所有步骤是否都是必要的,但它对我有用。希望这会让别人有些头疼。