Обновить
188
0.1

Пользователь

Отправить сообщение

Как на самом деле работает mod_rewrite. Пособие для продолжающих

Время на прочтение17 мин
Охват и читатели284K
image
Эта статья выросла из идеи продвинутого обучения наших сотрудников технической поддержки работе с mod_rewrite. Практика показала, что после изучения имеющихся в большом количестве учебников на русском языке саппортам хорошо дается решение шаблонных задач, но вот самостоятельное составление правил происходит методом проб и большого количества ошибок. Проблема заключается в том, что для хорошего понимания работы mod_rewrite требуется изучение оригинальной англоязычной документации, после чего — либо дополнительные разъяснения, либо часы экспериментов с RewriteLog.

В статье изложен механизм работы mod_rewrite. Понимание принципов его работы позволяет четко осознавать действие каждой директивы и ясно представлять себе, что происходит в тот или иной момент внутри mod_rewrite при обработке директив.

Я предполагаю, что читатель уже знаком с тем, что такое mod_rewrite, и не буду описывать его основы, которые легко найти в интернете. Также нужно отметить, что в статье освещается работа mod_rewrite при использовании его директив в файле .htaccess. Отличия при работе в контексте <VirtualHost> изложены в конце статьи.

Итак, вы изучили mod_rewrite, составили несколько RewriteRule и успели столкнуться с бесконечными перенаправлениями, со случаем, когда правило почему-то не ловит ваш запрос, а также с непредсказуемой работой группы правил, когда последующее правило неожиданно изменяет запрос, кропотливо подготовленный правилами предыдущими.

Почему так происходит?
Читать дальше →

Пишем консольный переводчик для *nix на Python

Время на прочтение4 мин
Охват и читатели17K
Здравствуйте. Наверняка Вам встречались незнакомые английские слова или фразы, и Вам постоянно приходилось лезть в браузер, открывать сайт с онлайн переводчиком и переводить, при этом думая как хорошо было бы, если это было реализовано бы в виде софта под *nix.
Читать дальше →

Массовая почтовая рассылка через Exim или как не попасть в спам

Время на прочтение4 мин
Охват и читатели99K
Жизнь была прекрасна и все было в этом мире хорошо, пока почта с моего сайта не стала активно посылаться в спам практически всеми крупными почтовыми серверами. Особенно усердствовал в этом Gmail. Частенько меня принимали за спамера в Yandex, реже в mail.ru и rambler.
image
Исходя из совокупности представленных факторов стало понятно, что надо что-то делать с настройками своего почтового сервера Exim. Посмотреть, как это было сделано, приглашаю под хабракат.
Читать дальше →

Параллельные вычисления, класс-обёртка для pcntl_fork()

Время на прочтение3 мин
Охват и читатели7.3K
Хочу показать свой базовый класс, который я использую для PHP скриптов.
Приемущество его в том, что легко можно «распараллелить» работу.
Используется pcntl_fork() со всеми «вытекающими».

(тестировалось только на линукс)
Читать дальше →

Поддержка мышки в Midnight Commander запущенного из под tmux/screen

Время на прочтение1 мин
Охват и читатели11K
в топике про tmux был поднят вопрос о неработоспособность мыши в случае когда mc запущен в сессии tmux либо screen.

После небольшого исследования функции init_xterm_support, выяснилось что включить поддержку мыши, не прибегая к пересборке mc, можно прямо сейчас, достаточно «правильно» (как того ожидает mc) установить переменную COLORTERM.

image

Таким образом, если вам необходимо чтобы мышь работала в обычном режиме, поместите следующие строки в файл ~/.profile

if [ $TERM = "screen" ]; then
    export TERM=xterm
fi
if [ -n "$TMUX" ]; then
    export COLORTERM=rxvt
fi


Так же отследить решение проблемы можно будет в соответствующем тикете вот тут www.midnight-commander.org/ticket/2479

PS: Буду рад если кому то данная информация пригодится…

UPD: забыл добавить что желательно добавить в ~/.tmux.conf
следующую строку.
setw -g xterm-keys on


если этого не сделать то сочетание shift-стрелки, shift-Fx работать не будут…

Обработка входящей почты на PHP

Время на прочтение2 мин
Охват и читатели38K
Хочу поделиться рецептом, как совместить php-скрипт и почтовый сервер Postfix для автоматической обработки входящей почты.

С помощью такой связки мы собираем статистику по количеству возвратов bounce-писем:Undelivered Mail Returned to Sender.

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

Как это сделать...

Регулярные выражения для валидации распространенных видов данных

Время на прочтение2 мин
Охват и читатели514K
Для проверки текстовых полей на валидность обычно используют регулярные выражения. Существует несколько наиболе распространенных видов таких даных, как например номер кредитки, дата в определенном формате и т. д. На сайте html5pattern.com собирается коллекция регулярных выражений для таких данных (там это позиционируется, как возможное содержимое html5-атрибута pattern у inpit-элементов, но эти регулярные выражения можно использовать и для привычной валидации с помощью javascript). Актуальные для российской аудитории примеры, вместе с соответствующими регулярными выражениями вы можете посмотреть под катом.
Читать дальше →

За баранкой пылесоса или умный Firefox

Время на прочтение5 мин
Охват и читатели4.3K
Браузер, который сам ходит по ссылкам, открывает/закрывает табы, парсит или сохраняет весь контент на файловую систему — интересно посмотреть на такое, не так ли? Лично мне интересно было создать что-то подобное. Никакой фантастики! В общем в очередной раз во мне проснулось нечто вроде программистской лени вдохновения и вместо того, чтобы писать обычный crawler (он же spider или по-простому парсер сайта) на PHP, Perl или Ruby, я начал разбираться, как это сделать на FireFox.
Читать дальше →

Практическое применение Asterisk в домашних условиях

Время на прочтение5 мин
Охват и читатели35K
Как и у многих коллег по цеху, дома у меня построена небольшая сеть. И, конечно же, есть домашний сервер, этакий плацдарм для испытания новых технологий. С регулярной периодичностью тихими вечерами под монотонное бубнение какого-нибудь подкаста, меня посещают мысли поковырять что-то новое и интересное. Объявление провайдера об открытии услуги sip-телефонии натолкнуло меня на мысль пойти в сторону voip. Интересное и перспективное направление. Казалось бы, что тут такого – поставил софтфон, а еще лучше железный sip-шлюз и радуйся жизни. Но разве это тот путь, который мы выбрали, пойдя по пути инженера, сисадмина, программиста (нужное подчеркнуть). Гораздо интереснее будет поставить свой собственный VoIP-сервер, повесить на нем голосовую почту и пускай красивым женским голосом отвечает на звонки, когда никто не может снять трубку. Конечно выбор пал на Asterisk.
Читать дальше →

Asterisk от простого — к сложному

Время на прочтение4 мин
Охват и читатели175K

Вступление


Добрый день. На написание статьи меня сподвигла необходимость передать мои знания подчиненным, которым уже пора бы вникать в работу Asterisk.
Когда я заметил интерес к платформе с их стороны — я чрезвычайно обрадовался, но пришел в недоумение, когда все рвение остановилось на клацанье по триксбоксу и его подобным.

Я ничего не имею против надстроек к Астериску, которые облегчают жизнь, но я боюсь, что скоро появился поколение администраторов Астериска, которые консоли в живую не видели ниразу.

Целью моих статей является желание показать, что астериск красив сам по себе, без дополнительных надстроек, что можно, используя минимальные, ускоряющие работу скриптовые языки — творить чудеса. Хочется показать, ищущим и желающим познать новое, людям нюансы и тонкости работы системы.
Читать дальше →

Стратегия восстановления поврежденной таблицы в MySQL

Время на прочтение4 мин
Охват и читатели12K
Началось все с того, что в один прекрасный момент ядро прибило демона mysqld и mysql_safe автоматом его перезапустил и все бы хорошо, да только таблицы в БД использовались MyISAM. В итоге пришлось воспользоваться myisamcheck но это совсем другая история. В процессе проверки и починки индексов пострадала одна таблица и было принято решение восстанавливать из бекапов, хорошо, что раз в сутки делаются.

Исходные данные:
  • имеем сервер БД с MySQL на борту;
  • поврежденную таблицу логов(статистики) чего угодно, что постоянно заполняется и может например не использоваться какое-то время;
  • суточный бекап;
  • бинарные логи с последнего суточного(полного) бекапа.

Задача:
  • сервер должен быть доступен для работы;
  • новые данные должны попадать в таблицу;
  • восстановить целостность данных.

Ожидаемый результат:
данные в поврежденной таблицы восстановлены без останова базы дынных;
таблица содержит все данные включая текущие.
Читать дальше →

Учим bash-скрипты, пишем Sokoban

Время на прочтение4 мин
Охват и читатели140K
Мне кажется, что на свете еще есть люди, которые хорошо знают несколько языков программирования, но при этом не пишут скриптов для bash, потому что скриптовый язык bash выглядит для них слишком странным. Чтобы доказать, что bash — это несложно, я написала игру Сокобан (или Грузчик, кому как нравится), и хочу рассказать, как она работает.
Краткая справка по bash, скриншот игры, исходный код и ссылка на файл - под катом

Частный опыт установки и настройки Asterisk с нуля

Время на прочтение17 мин
Охват и читатели349K
Во-первых, дисклаймер

Настройке Asterisk посвящены сайты, форумы и целые порталы типа voip-info.org. Но всегда есть люди, для которых эта тема – дремучий лес, а запустить продукт надо «вчера». Ещё полтора месяца назад я про Asterisk знал только то что он есть. Данный труд призван лишь несколько облегчить жизнь тем, кто окажется в такой же ситуации после меня. В нём могут быть ошибки любой степени «чайниковости». Если вы гуру настройки Asterisk – укажите на ошибку, я поправлю, потомки будут вам благодарны.
Читать дальше →

Сборник советов и фактов по оптимизации PHP-скриптов

Время на прочтение9 мин
Охват и читатели46K
image Эту статью давно стоило переписать (слишком много «экономии на спичках»), но руки не доходят. Пускай весит и напоминает о том, как мы глупы в молодости.
Одним из основных критериев успешности любого интернет-ресурса является скорость его работы и с каждым годом пользователи становятся всё более и более требовательными по этому критерию. Оптимизация работы php-скиптов — это один из методов обеспечения скорости работы системы.
В этой статье я бы хотел представить на суд общественности свой сборник советов и фактов по оптимизации скриптов. Сборник собирался мною достаточно долго, основан на нескольких источниках и личных экспериментах.
Читать дальше →

Тонкости регулярных выражений. Часть 2: возвраты и их количество

Время на прочтение9 мин
Охват и читатели13K
Часть 1: метасимволы внутри и вне символьных классов.

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

Тонкости регулярных выражений. Часть 1: метасимволы внутри и вне символьных классов

Время на прочтение5 мин
Охват и читатели17K

Вместо вступления



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

Что бывает, когда начинающий программист в первый раз узнает про регулярные выражения? Чаще всего первое знакомство с ними происходит методом «научного тыка», поскольку ни знаний в соотвествующей области, ни понимания «как это работает» обычно на данном этапе у человека нет. Почему так происходит?

Читать дальше →
12 ...
13

Информация

В рейтинге
3 673-й
Откуда
Varna, Varna, Болгария
Зарегистрирован
Активность