10.07 2010

Если вы программируете не первый день, то наверняка слышали про xdebug, средство отладки для PHP. Его использование изрядно упрощает жизнь, помогает быстрее отыскивать баги и соответственно их устранять. Помимо отладки, это расширение позволяет производить профилирование, трассировку, подсчет покрытия кода, а также делать красивый форматированный вывод исключений и [vardump](http://php.net/vardump) =)
Читать дальше
03.07 2010

Во время отладки и оптимизации зачастую встает вопрос грамотного профилирования запросов в базу данных, вывод отладочной информации и просто логирования. В таких случаях крайне полезным может оказаться FirePHP, дополнение к небезызвестному FireBug. К счастью разработчики zend позаботились об этом, и нам не надо изобретать велосипед или подставлять костыли для этого. Достаточно использовать расширения стандартных классов логирования и профилирования.
Читать дальше
20.06 2010
Если перед вами встала задача соединиться с удаленной базой данной, которая, по очевидным причинам, не доступна извне, то я могу предложить вам по крайней мере 3 варианта решения этой проблемы.
- Открыть к ней доступ извне, тем самым снизив уровень безопасности.
Соединиться через ssh и выполнять команды вида:
echo "SELECT * FROM table
" | mysql
Сделать проброс соединения через SSH
Так как первых два варианта глупые чуть более, чем полностью, остановимся на третьем. Для этого нам понадобится выполнить всего одну команду в консоле:
ssh -L 3307:localhost:3306 [email protected]
Где 3307 - локальный порт, к которому нужно присоединяться из PHP, localhost - локальный хост, 3306 - удаленный порт, [email protected] - пользователь@удаленный хост
Подводные камни
- Команду нужно выполнять после каждого перезапуска сервера и контролировать работоспособность
- Время отклика возрастет, так как добавятся накладные расходы на шифрование/расшифровывание
- На локальном компьютере появится уязвимость удаленного сервера, так как есть прямой проброс соединения. Так что следует для порта 3307 заблокировать доступ извне через iptable или брандмауэр
Читать дальше