Отладка PHP с удаленным доступом к оболочке - PullRequest
3 голосов
/ 02 февраля 2009

Я играю с приложением PHP, использующим общий хостинг, как часть моего процесса обучения PHP. У поставщика услуг есть типичная среда LAMP с удаленным доступом по ssh.

Vim был моим лучшим другом в изучении кода PHP. Тем не менее, иногда было сложно отследить что-то в коде в случае ошибки. Например, иногда я захожу на страницу и получаю пустой ответ без каких-либо сообщений об ошибках. Как мне отладить это? Какие-нибудь инструменты, которые будут полезны?

Мой опыт был в основном на C / C ++, Perl и некоторых программах CGI. Так что PHP - это очень приятный опыт для меня: -)

В случае, если это имеет значение, приложение, с которым я играю, - Лицей , и у меня нет большого выбора в самой среде LAMP.

РЕДАКТИРОВАТЬ: Предпочитаемые бесплатные программные инструменты: -)

Ответы [ 5 ]

4 голосов
/ 02 февраля 2009

Я полагаю, ваш хостинг-провайдер настроил установку PHP с отключенным display_errors , что хорошо. Вот почему вы видите пустые страницы. Поэтому наиболее практичным решением на данный момент было бы иметь файл .htaccess, который включает его:

php_flag display_errors on

Вам также потребуется error_reporting для соответствующего значения:

php_flag error_reporting "E_ALL | E_STRICT"

В любом случае, не забудьте отключить это, прежде чем разрешить пользователям доступ к вашему веб-сайту.

Для предварительной отладки я рекомендую Xdebug , установленный на сервере с Eclipse PDT или IDE NetBeans с поддержкой PHP в качестве редактора. Они оба являются хорошими клиентами для отладки, но я действительно сомневаюсь, что какой-либо провайдер установит Xdebug на своих живых серверах. Таким образом, у вас в значительной степени остались функции ведения журналов, если у вас нет среды разработки.

2 голосов
/ 02 февраля 2009

Получение доступа к вашей локальной среде разработки (например, через XAMPP) позволит вам установить XDebug.

PhpEd позволит вам отладить его, а также среду Eclipse PDT.

Ошибка Трассировка и регистрация через редактирование ini config файла php также является хорошим способом, особенно если вы можете управлять им для регистрации информации. Кроме того, рассмотрите возможность добавления операторов трассировки и использования FirePHP, например.

1 голос
/ 02 февраля 2009

Если вы получаете пустую страницу, это, вероятно, из-за фатальной ошибки, с отключенным display_errors. По умолчанию PHP регистрирует ошибки в журнале ошибок Apache, но вы также можете настроить его на регистрировать ошибки в отдельном журнале .

Для отладки вы также можете заглянуть в Xdebug. Это расширение может делать много вещей, включая интерактивную отладку. Вам понадобится клиент, чтобы использовать отладчик, но есть плагин для vim, который делает это.

1 голос
/ 02 февраля 2009

Лично я бы порекомендовал jEdit , а не vim. Плагин SFTP позволяет редактировать (ну, загружать и сохранять) документы PHP непосредственно на сервере, а плагин PHPParser даст вам некоторое распознавание ошибок.

Кроме того, если вы получаете пустую страницу без сообщений об ошибках, высока вероятность того, что эти сообщения просто скрыты от вас. Убедитесь, что отчеты об ошибках включены, либо в вашей конфигурации , либо в вашем коде, например:

// Report all PHP errors
error_reporting(E_ALL);

Если функция отчетов об ошибках включена и вы по-прежнему не видите сообщений, либо включите ведение журнала , либо включите вывод в браузер .

0 голосов
/ 02 февраля 2009

Попробуйте NuSphere PhpED

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...