Кто-нибудь знает, как отлаживать скрипты CLI PHP из CLI?!? Я не хочу отлаживать веб-страницу PHP - у меня нет веб-страницы PHP. Я не хочу отлаживать удаленный script либо - я запускаю/отлаживаю прямо здесь, в этой системе. Я не хочу (в это время) пытаться получить некоторую среду IDE (Eclipse, PhpStorm или что-то еще) для отладки CLI PHP, а просто хочу отлаживать некоторый PHP CLI script в самой командной строке Linux. В Perl это будет просто perl -d < script.pl > < опция > . Отладка script, для меня, не вычисляет ошибки компиляции или другие простые вещи. Для меня он устанавливает точки останова, запускает код, проверяет содержимое переменных и может произвольно выполнить или eval ('< php code > ') в отладчике.
Конечно, я хотел бы настроить это в свою IDE по выбору (в это время это Eclipse), но мне не удалось получить эту работу. Отладка из CLI для PHP CLI script была бы хорошим началом для меня.
Спасибо.
Я не знаю, почему я ограничусь количеством символов при публикации комментария. Возможно, я могу добавить здесь больше текста.
Здесь я попытался использовать xdebug и/или отладчик Zend с Eclipse:
- Базовая версия Eclipse Mars.1 Release 4.5.
- Версия плагина Eclipse PDT UI 3.7.0.2015112
- Пробовал установку xdebug с помощью pecl install xdebug. Говорит, что мне нужно добавить "zend_extension = xdebug.so" в php.ini. В самом деле? Какой php.ini? У меня несколько:
Андромеда: sudo find/-xdev -name php.ini /etc/php 5/cli/php.ini /etc/php 5/apache2/php.in /opt/eclipse/plugins/org.zend.php.debug.debugger.linux.x86_64_5.3.18.v20110322/resources/php53/php.ini /opt/eclipse/plugins/org.zend.php.debug.debugger.linux.x86_64_5.3.18.v20110322/resources/php5/php.ini /opt/eclipse/plugins/com.zend.php.debug.debugger.php56.linux.x86_64_13.0.1.v20151112-2045/resources/php56/php.ini Андромеда:
- Я поместил объект zend_extension в /etc/php 5/cli/php.ini и/etc/php5/apache2/php.ini. Сделал страницу phpinfo.php, и я вижу там Xdebug (да!). Настройте конфигурацию отладки в Eclipse, чтобы использовать xdebug и пытаться отлаживать:
При запуске renameUser возникла проблема. Внутренняя ошибка произошла во время "Запускаем renameUser" java.lang.NullPointerException.
О, хорошо...
- Я также установил Zend Debugger и добавил следующие те же два файла php.ini:
zend_extension =/USR/Library/php5/20121212/ZendDebugger.so zend_debugger.allow_hosts = 127.0.0.1/32, 192.168.0.0/16 zend_debugger.expose_remotely = всегда
- Изменена конфигурация отладки для использования Zend Debugger и попытка отладки. Поступила в редакцию:
Ошибка при запуске 'renameUser' Не удалось запустить сеанс отладки. Убедитесь, что отладчик правильно настроен как директива php.ini.
- Перезапуск Eclipse, и теперь отладчик пытается запустить, но просто завершает работу с 255 выходным значением, пытающимся запустить /opt/eclipse/plugins/org.zend.php.debug.debugger.linux.x86_64_5.3.18.v20110322/resources/php5/PHP-CGI. Почему это runnign php-cgi вне меня. Я сказал, что это CLI, а не CGI. В любом случае я получаю следующее при попытке запустить это из командной строки:
Андромеда:/opt/eclipse/plugins/org.zend.php.debug.debugger.linux.x86_64_5.3.18.v20110322/resources/php5/php-cgi /opt/eclipse/plugins/org.zend.php.debug.debugger.linux.x86_64_5.3.18.v20110322/resources/php5/php-cgi: ошибка при загрузке разделяемых библиотек: libiconv.so.2: невозможно открыть файл общих объектов: Нет такого файла или каталога
- Нашел libiconv.so.2 в /opt/eclipse/plugins/org.zend.php.debug.debugger.linux.x86_64_5.3.18.v20110322/resources/lib и установил LD_LIBRARY_PATH, чтобы включить это, но это просто не удается запустите отладчик на всех, чтобы убедиться, что отладчик правильно настроен как директива php.ini... UGH!
Другие нечетные вещи:
- Когда Eclipse запускается, он не может открыть мой проект на основе RSE, таким образом отображая буферы редактирования из последнего запуска как пустые
- Eclipse больше не выйдет! Выберите "Файл: выход". Ничего не произошло. Нажмите на X в строке заголовка - ничего не происходит. Теперь я должен убить его, чтобы закрыть его!