在 Mac OS X 上构建 PHP 5.3.0 时,如何确定要使用哪些 ./configure 选项?有 10 亿个选项,我不知道该使用哪一个。
我想要做的就是确保我已启用 PDO 和 PDO+MySQL。
[[[[尖叫!]]]] 我运行sudo port install php5-mysql
后它“起作用了”,但是当我运行 php 时:
$ php
PHP Warning: Cannot load module 'mysql' because required module 'mysqlnd' is not loaded in Unknown on line 0
Warning: Cannot load module 'mysql' because required module 'mysqlnd' is not loaded in Unknown on line 0
dyld: lazy symbol binding failed: Symbol not found: __mysqlnd_palloc_rinit
Referenced from: /opt/local/lib/php/extensions/no-debug-non-zts-20090626/mysqli.so
Expected in: dynamic lookup
dyld: Symbol not found: __mysqlnd_palloc_rinit
Referenced from: /opt/local/lib/php/extensions/no-debug-non-zts-20090626/mysqli.so
Expected in: dynamic lookup
Trace/BPT trap
啊哈!macports 的维护者发现一样的问题。我执行sudo port selfupdate
并重新运行了 php5 的安装并且它运行良好。
答案1
使用麦金塔因为他们将大多数设置以一种更容易理解的方式打包在一起。例如:
port install php5-mysql
答案2
通过在 configure 命令行上指定选项来启用所需的选项。我的 5.1.6 configure 命令中出现的 MySQL 选项如下:
$ ./configure --help | grep mysql --with-mysql[=DIR] 包含 MySQL 支持。DIR 是 MySQL 基目录 --with-mysql-sock[=DIR] MySQL:MySQL unix 套接字指针的位置。 --with-mysqli[=FILE] 包含 MySQLi 支持。FILE 是可选路径名 到 mysql_config --enable-embedded-mysqli MYSQLi:启用嵌入式支持 --with-pdo-mysql[=DIR] PDO:MySQL 支持。DIR 是 MySQL 基目录
至少,我将指定一个安装前缀以及 Apache 安装的类型(v1 或 v2)(您应该已经构建):
$ ./configure --prefix=/opt/apache --with-apxs2=/opt/apache/bin/apxs \ --with-mysql --with-pdo-mysql
确保 mysql_config(假设有这样的东西)在你的路径中,或者告诉 configure mysql 库位于何处。
答案3
如何确定在 OSX 上构建 PHP 5.3.0 时要使用哪些 ./configure 选项?
当您需要知道如何配置某些东西时,如果您想获得一些关于构建包的真正通用的建议。
- 阅读 Fine Manual,通常文档会给出示例,告诉您需要什么,以及哪个选项做什么。阅读名为 INSTALL 的文件,查看网站。对于像 PHP 这样流行的软件包,这些信息应该很容易理解寻找。
- PHP 5.3.0 是一个相当新的软件包,但也有较旧的软件包可用。去找一个别人构建的软件包并复制他们使用的配置行。
答案4
对于 PHP 5.3,集成 MySQL 访问库非常简单。只需mysqlnd
在配置标志中启用 MySQL Native Driver(或):
./configure --enable-pdo --with-mysql=shared,mysqlnd --with-pdo-mysql=shared,mysqlnd --with-mysqli=shared,mysqlnd
无论如何,看看构建php,这是一个基于 Rake 的 PHP 构建系统,专门用于简化 PHP 5.3(以及一组最新的 PHP 扩展库)的编译。