В Linux я установил php 5.3.8 из исходников. Использование phpize для установки расширения отлично работает, но не с одним конкретным расширением (mysqlnd).
# cd /opt/php/5.3.8/ext/pdo && /opt/php/5.3.8/bin/phpize
... this runs ok
# cd /opt/php/5.3.8/ext/mysqlnd && /opt/php/5.3.8/bin/phpize
Cannot find config.m4.
Make sure that you run '/opt/php/5.3.8/bin/phpize' in the top level source directory of the module`
Как видите, ошибка не может быть связана с тем, что я не нахожусь в исходном каталоге верхнего уровня, поскольку я нахожусь. Пытался вызвать phpize из папки ext - тоже не вышло! Для информации у меня установлен m4
Любая идея? Спасибо :)
Проблема в том, что файл m4 mysqlnd не config.m4
а вот config9.m4. Это механизм зависимости, чтобы гарантировать buildconf
помещает его в конец configure. Можно утверждать, что phpize
должен знать об этом, в настоящее время это не так.
Обходной путь - переименовать config9.m4 в config.m4, но учтите, что "нормальная" сборка тогда не будет работать.
Также обратите внимание, что PHP 5.3.8 не позволяет mysqlnd
для совместного использования, поэтому описанный выше обходной путь не сработает. Однако это будет разрешено в PHP 5.3.9. Это все еще не решает проблему config.m4 vs. config9.m4, но для PHP вы сможете сделать --enable-mysqlnd=shared
получить mysqlnd.so
как часть основной сборки PHP.
Попробуйте запустить phpize из папки mysql
Вы можете проверить тот же пост здесь: http://kmaiti.blogspot.com/2010/08/cannot-find-configm4-phpize-resolved.html