«Не удается найти config.m4.» Во время работы phpize при установке apd с помощью pecl

Я пытаюсь получить доступ к rename_function в PHP, и для этого мне нужен PECL APD. Я запускаю Ubuntu 14.04 LTS.

Я пытаюсь запустить sudo pecl install apd , но я получаю:

 загрузка apd-1.0.1.tgz ...
 Начиная с загрузки apd-1.0.1.tgz (36 643 байта)
 .......... сделано: 36,643 байт
 15 исходных файлов, построение
 running: phpize
 Не удается найти config.m4.
 Убедитесь, что вы запустили '/ usr / bin / phpize' в исходном каталоге верхнего уровня
 модуль

 Если команда завершилась неудачей с «phpize: not found», вам необходимо установить пакет php5-dev.  Вы можете сделать это, запустив «apt-get install php5-dev» в качестве root userERROR: «phpize» не удалось

Должен ли я запускать эту команду из определенного каталога?

На этот раз я попробовал его с включенными подробными параметрами, если в журналах есть ключ:

 sudo / usr / bin / pecl -vvvvv установить apd
 Предупреждение: file_exists (): Не удалось найти оболочку «канал» - вы забыли включить ее при настройке PHP?  в PEAR / Downloader / Package.php в строке 1518

 Предупреждение: is_file (): Не удалось найти оболочку «канал» - вы забыли включить ее при настройке PHP?  в PEAR / Downloader / Package.php в строке 1528

 Предупреждение: is_file (): Не удалось найти оболочку «канал» - вы забыли включить ее при настройке PHP?  в PEAR / Downloader / Package.php в строке 1528
 Загрузка «http://pecl.php.net/get/apd-1.0.1.tgz»
 загрузка apd-1.0.1.tgz ...
 Начиная с загрузки apd-1.0.1.tgz (36 643 байта)
 .......... сделано: 36,643 байт
 + cp /tmp/pear/temp/tmpNUpEpz/apd-1.0.1/LICENSE /usr/share/php/doc/apd/.tmpLICENSE
 добавление к транзакции: chmod 664 /usr/share/php/doc/apd/.tmpLICENSE
 добавление к транзакции: rename /usr/share/php/doc/apd/.tmpLICENSE / usr / share / php / doc / apd / LICENSE
 добавление к транзакции: installed_as LICENSE / usr / share / php / doc / apd / LICENSE / usr / share / php / doc / apd
 + cp /tmp/pear/temp/tmpNUpEpz/apd-1.0.1/README /usr/share/php/doc/apd/.tmpREADME
 добавление к транзакции: chmod 664 /usr/share/php/doc/apd/.tmpREADME
 добавление к транзакции: rename /usr/share/php/doc/apd/.tmpREADME / usr / share / php / doc / apd / README
 добавление к транзакции: installed_as README / usr / share / php / doc / apd / README / usr / share / php / doc / apd
 + cp /tmp/pear/temp/tmpNUpEpz/apd-1.0.1/pprofp /usr/bin/.tmppprofp
 + chmod + x /usr/bin/.tmppprofp
 добавление к транзакции: chmod 775 /usr/bin/.tmppprofp
 добавление к транзакции: rename /usr/bin/.tmppprofp / usr / bin / pprofp
 добавление к транзакции: installed_as pprofp / usr / bin / pprofp / usr / bin /
 + cp /tmp/pear/temp/tmpNUpEpz/apd-1.0.1/pprof2calltree /usr/bin/.tmppprof2calltree
 + chmod + x /usr/bin/.tmppprof2calltree
 добавление к транзакции: chmod 775 /usr/bin/.tmppprof2calltree
 добавление к транзакции: rename /usr/bin/.tmppprof2calltree / usr / bin / pprof2calltree
 добавление к транзакции: installed_as pprof2calltree / usr / bin / pprof2calltree / usr / bin /
 15 исходных файлов, построение
 здание в / tmp / pear / temp / pearf7LGca
 running: phpize
 Не удается найти config.m4.
 Убедитесь, что вы запустили '/ usr / bin / phpize' в исходной директории верхнего уровня модуля

 Если команда завершилась неудачей с «phpize: not found», вам необходимо установить пакет php5-dev. Вы можете сделать это, выполнив «apt-get install php5-dev» в качестве корневой пользовательской активации 12 операций с файлами
 + rm /usr/share/php/doc/apd/.tmpLICENSE
 + rm /usr/share/php/doc/apd/.tmpREADME
 + rm /usr/bin/.tmppprofp
 + rm /usr/bin/.tmppprof2calltree
 ОШИБКА: ошибка «phpize»

 Предупреждение: unlink (/ tmp / glibctestRdKE0K): нет такого файла или каталога в System.php в строке 214

 Предупреждение: unlink (/ tmp / pear / temp / pearf7LGca): Нет такого файла или каталога в System.php в строке 214

Это будет краткое резюме всего, что является предварительным условием для запуска APD в качестве профилировщика PHP, я надеюсь, что это поможет вашим потребностям. Это резюме относится к PHP 5.6.2 APD 1.0.1 и может быть неправильным для других версий.

Прежде всего, не начинайте, если вы не обеспечили эти два:

  • Деактивируйте платформу Zend или любой другой оптимизатор PHP. В общем, вам нужно отключить все расширения Zend.
  • Установите разрешенную для отладки версию PHP ( --enable-debug )

Если у вас есть рабочая настройка PEAR, вам нужно настроить APD, как в этой статье. Не забудьте также попробовать дистрибутивные пакеты. В противном случае APD построит следующим образом:

  • Извлеките архив.
  • Изменить каталог в tarball.
  • Запустить <apache root>/bin/phpsize
  • Запустите ./configure (добавьте --with-php-config=<apache root>/bin/php-config если configure не работает.)
  • Скомпилируйте и установите все, используя
     делать
     сделать установку
    
  • Измените php.ini и добавьте хотя бы
     zend_extension = / apd.so
     apd.statement = 1
     apd.tracedir = / TMP / APD-следы
    
  • Создайте выходной каталог, указанный в php.ini

Теперь вам нужно будет перезапустить Apache, но прежде чем вы это сделаете, убедитесь, что расширение APD работает нормально. Чтобы просто запустить PHP

 / Bin / PHP

Предупреждение не должно выдаваться, если расширение загружено правильно. Если вы получите сообщение об ошибке, то что-то вроде расширения «apd.so» не может быть загружено, возникает проблема. Проверьте, скомпилированы ли вы против правильной версии Apache / PHP и используете то же самое прямо сейчас.

Если PHP ничего не жалуется, введите:

 <?php phpinfo(); ?> 

и проверьте некоторые строки о APD. Если вы их найдете, все готово.

Вам также понадобятся некоторые следы, чтобы начать трассировку, необходимую вашему Apache, чтобы позволить модулю PHP загружать APD. Затем вам нужно будет определить сценарий для отслеживания. Добавьте вызов APD в верхней части скрипта:

 apd_set_pprof_trace(); 

Затем выполните некоторые запросы и снова удалите заявление, чтобы не нанести дальнейший вред. Теперь посмотрим на каталог трассировки. Здесь вы должны найти файлы с схемой именования pprof[0-9]*.[0-9] . Декодируйте их с pprofp инструмента pprofp из исходного pprofp APD. Пример:

 / bin / php / pprofp -u 

При необходимости перенаправляйте stdout. Используйте -t вместо -u (итоговый вывод), чтобы получить деревья вызова. Когда вы создаете трассировки с помощью -t, вы также получаете итоговый вывод, но он не содержит продолжительности каждого вызова. Я предлагаю всегда создавать как дерево вызова, так и итоговую трассировку.

Надеюсь, что это поможет, я рекомендую вам едва ли прочитать ссылку, упомянутую выше .

РЕДАКТИРОВАТЬ:

Команда phpize предназначена для запуска на верхнем уровне источника источника расширения (этот источник должен содержать имя файла config.m4). См. Это для получения дополнительной информации.

По ошибке:

Если команда не выполнена с помощью phpize: not found вам необходимо установить пакет php5-dev.

Вы можете сделать это, запустив apt-get install php5-dev в качестве пользователя root

Я думаю, вы должны установить модульную разработку для PHP через:

 sudo apt-get install php5-dev 

Это должно предоставить вам phpize код phpize необходимый для компиляции источников расширения Pecl. И убедитесь, что это в вашей PATH .