В процессе самостоятельной настройки нового сервера (в связи с переездом нашего сервиса на новую площадку) пришлось повозиться с установкой модуля Xdebug, который нужен нашим разработчикам для разработки и тестирования кода. На одном из форумов предлагалось протестировать его работу коммандой phpize.
Комманда phpize является часть PHP пакета для разработчиков. Если у вас на сервере ее нет, то нужно установить. На Debian это делается так:
Как видите у меня на сервере установлена самая свежая версия пакета php5-dev.
Команда phpize используется для подготовки окружения PHP-расширения. В следующем примере директория, где находятся исходные коды расширения, называется extname:
В случае успешной установки будет создан файл extname.so и помещен в PHP директорию расширений. Вам будет необходимо добавить строку extension=extname.so в php.ini перед использованием этого расширения.
Я не знал как пользоваться этой команды. При запуске команды phpize я получил следующую ошибку:
Методом научного тыка я решил сделать обновление/установку следующих пакетов, как посоветовал мне мой товарищ:
Оказалось, что у меня все эти пакеты установлены и с ними проблем не может быть.
Тогда я решил поискать эти файлы config.m4.
Этот поиск сразу и решил мою проблему, так как в системе было две версии Xdebug. Я зашел в директорию нужной мне версии и запустил там phpize:
Осталось только перебрать и установить нужный модуль:
Перегружаем Apache2 и наслаждаемся нормальной работой модуля.
Кстати, если у тебя не получается запустить команду путем ввода в командную строку phpize, то пробуйте /usr/bin/phpize. Она должна быть в этой директории или просто поищите, где она находится:
В этом случае путь /usr/bin не прописан в глобальной переменной PATH, но я уверен, что он должен там быть. Решение следущее:
Всем удачи!
Комманда phpize является часть PHP пакета для разработчиков. Если у вас на сервере ее нет, то нужно установить. На Debian это делается так:
# apt-get install php5-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
php5-dev is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Как видите у меня на сервере установлена самая свежая версия пакета php5-dev.
Команда phpize используется для подготовки окружения PHP-расширения. В следующем примере директория, где находятся исходные коды расширения, называется extname:
$ cd extname
$ phpize
$ ./configure
$ make
# make install
В случае успешной установки будет создан файл extname.so и помещен в PHP директорию расширений. Вам будет необходимо добавить строку extension=extname.so в php.ini перед использованием этого расширения.
Моя проблема
Я не знал как пользоваться этой команды. При запуске команды phpize я получил следующую ошибку:
# phpize
Cannot find config.m4.
Make sure that you run '/usr/bin/phpize' in the top level source directory of the module
Методом научного тыка я решил сделать обновление/установку следующих пакетов, как посоветовал мне мой товарищ:
# sudo apt-get install autoconf automake libtool m4
Reading package lists... Done
Building dependency tree
Reading state information... Done
autoconf is already the newest version.
automake is already the newest version.
m4 is already the newest version.
Оказалось, что у меня все эти пакеты установлены и с ними проблем не может быть.
Тогда я решил поискать эти файлы config.m4.
# cd /
# find -name 'config.m4'
./var/xdebug-2.2.1/config.m4
./var/xdebug-2.2.2/config.m4
./var/memcache-2.2.7/config.m4
Этот поиск сразу и решил мою проблему, так как в системе было две версии Xdebug. Я зашел в директорию нужной мне версии и запустил там phpize:
cd ./var/xdebug-2.2.2/
# phpize
Configuring for:
PHP Api Version: 20090626
Zend Module Api No: 20090626
Zend Extension Api No: 220090626
Осталось только перебрать и установить нужный модуль:
$ phpize
$ ./configure
$ make
# make install
Перегружаем Apache2 и наслаждаемся нормальной работой модуля.
Кстати, если у тебя не получается запустить команду путем ввода в командную строку phpize, то пробуйте /usr/bin/phpize. Она должна быть в этой директории или просто поищите, где она находится:
# whereis phpize
phpize: /usr/bin/phpize /usr/share/man/man1/phpize.1.gz
В этом случае путь /usr/bin не прописан в глобальной переменной PATH, но я уверен, что он должен там быть. Решение следущее:
#PATH=$PATH\:/usr/bin; export PATH
Всем удачи!