Как мне определить, какие параметры ./configure использовать при сборке PHP 5.3.0 в Mac OS X? Есть 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, и все заработало.
Использовать MacPorts поскольку они собрали вместе большинство настроек таким образом, чтобы их было легче понять. Например:
port install php5-mysql
Как мне определить, какие параметры ./configure использовать при сборке PHP 5.3.0 на OSX?
Если вам нужен действительно общий совет по созданию пакетов, когда вам нужно знать, как что-то настроить.
Включите нужные параметры, указав их в командной строке configure. Параметры MySQL, которые появляются в моей команде конфигурации 5.1.6, следующие:
$ ./configure --help | grep mysql --with-mysql[=DIR] Include MySQL support. DIR is the MySQL base directory --with-mysql-sock[=DIR] MySQL: Location of the MySQL unix socket pointer. --with-mysqli[=FILE] Include MySQLi support. FILE is the optional pathname to mysql_config --enable-embedded-mysqli MYSQLi: Enable embedded support --with-pdo-mysql[=DIR] PDO: MySQL support. DIR is the MySQL base directory
Как минимум, я бы указал префикс установки вместе с типом (v1 или v2) установки Apache (который вы уже должны были создать), который у вас есть:
$ ./configure --prefix=/opt/apache --with-apxs2=/opt/apache/bin/apxs \ --with-mysql --with-pdo-mysql
Убедитесь, что mysql_config (при условии, что он есть) находится на вашем пути, или сообщите configure, где расположены библиотеки mysql.
В PHP 5.3 интегрировать библиотеки доступа MySQL очень просто. Просто нужно включить собственный драйвер MySQL (или mysqlnd
) во флагах конфигурации:
./configure --enable-pdo --with-mysql=shared,mysqlnd --with-pdo-mysql=shared,mysqlnd --with-mysqli=shared,mysqlnd
Для чего это стоит, взгляните на buildphp, который представляет собой систему сборки на основе Rake для PHP, которая была создана специально для упрощения компиляции PHP 5.3 (и современного набора библиотек для расширений PHP).