The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Раздел полезных советов: Отладка php скриптов на стороне сер..."
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Разговоры, обсуждение новостей (Public)
Изначальное сообщение [ Отслеживать ]

"Раздел полезных советов: Отладка php скриптов на стороне сер..."  
Сообщение от auto_tips (ok) on 07-Сен-08, 18:06 
Иногда пользовательские скрипты или зависают, или хотят соединиться с чем-то запрещенным в файрволе,
или интерпретатор неожиданно вылетает, не передав заголовок Content-type, что приводит к ошибке 500.
Для того, чтобы разобраться в причине, попробуем отладить скрипты со стороны сервера,
не залезая в код php. Сначала придется изменить конфигурацию apache, чтобы php работало через suphp,
а не через модуль mod_php5. Я не буду рассказывать, как это делается. Главное, кроме обычного,
"неотладочного", надо добавить свой обработчик в suphp.conf:

    x-httpd-php_debug=php:/usr/local/bin/php-cgi.sh

А вот содержимое этого скрипта /usr/local/bin/php-cgi.sh. Поставьте ему права 755.
Видно, что он запускает отладчиком php с перенаправлением отладочной информации в файл.

    #!/bin/bash
    /usr/bin/strace /usr/bin/php5-cgi $@ 2>/tmp/debug

Не забудьте добавить этот обработчик в конфиг apache , это делается строкой

    suPHP_AddHandler x-httpd-php_debug

Затем в .htaccess нужного сайта допишите
    
    AddHandler x-httpd-php_debug .php

В результате после повторной загрузки сайта появится файл /tmp/debug, в который будет добавляться
отладочная информация о работе php нужного сайта. В это время лучше ограничить посещение сайта,
разрешив только 1 IP адрес, чтобы отладочной информации не было чрезмерно.
Обычно будет достаточно имени системного вызова, который приводит к прекращению выполнения скрипта.
Можно поиграться с параметрами strace.

URL:
Обсуждается: http://www.opennet.dev/tips/info/1759.shtml

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Отладка php скриптов на стороне сервера"  
Сообщение от angra (ok) on 07-Сен-08, 18:06 
Ничего что есть разница между выполнением под php-cgi и mod_php? Ничего что cgi сценарий можно просто выполнить из консоли(сформировав ему нужные переменные окружения) вместо остановки сервиса?
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Отладка php скриптов на стороне сервера"  
Сообщение от Piatruk.P on 08-Сен-08, 02:35 
Насчет различий в cgi и mod_php. В случае mod_php вообще не вижу корректного способа отладки. Если видите, то подскажите. Формирование переменных -долгое  и нудное занятие, если это не повседневная необходимость. Сервис останавливать необязательно, можно перенести скрипты на другой виртуальный хост и т.д.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "Отладка php скриптов на стороне сервера"  
Сообщение от dart (??) on 09-Сен-08, 11:10 
> В случае mod_php вообще не вижу корректного способа отладки. Если видите, то подскажите.

tail /var/log/httpd-error.log

Ничуть не глупее, чем чтение "невероятного" файла /tmp/DEBUG, как предлагает автор статьи.
А если вспомнить, что это средство штатное, то как раз вопросы "зачем? а ты что не знал?...." вызывает способ автора.....

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Отладка php скриптов на стороне сервера"  
Сообщение от одмин on 08-Сен-08, 15:29 
use xdebug, luke
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Отладка php скриптов на стороне сервера"  
Сообщение от Аноним (??) on 08-Сен-08, 15:58 
Верно мыслишь товарисч.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру