Где почитать

Что на этом работает

Тэги

mssql mysql asterisk windows


Apache

Постоянная ссылка Apache не открывает файлы с смонтированного диска
Тэги: windowsaccessmount_smbfsmount

Apache не открывает файлы с смонтированного диска

Столкнулся с проблемой следующего характера при попытке открыть в браузере файл с диска, примонтированного через mount_smbfs
Что есть


Решение найдено при помощи параметра EnableSendfile Off
Ниже привел конфиг
# Сделал следующее
mount_smbfs -E windows-1251:cp866 -W WORKGROUP -N //Guest@share/STORE /storage/domain.net.ua/fmanager
# диск примонтировался
# создал виртуальный хост в Apache
# pupkin.domain.net.ua



DocumentRoot "/storage/pupkin.domain.net.ua/manager"
Alias /store "/storage/pupkin.domain.net.ua/fmanager/"
ServerName pupkin.domain.net.ua
AddDefaultCharset windows-1251
IndexOptions Charset=windows-1251

ErrorLog "/storage/pupkin.domain.net.ua/err.log"


        EnableSendfile Off # Вот этот параметр указывать, иначе в браузере не откроются файлы
        Options Indexes FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all




MySQL

Постоянная ссылка FIELD_IN_SET вместо IN, как сделать отбор по текстовому набору
Тэги: mysqlgroup_concatсинтаксисfield_in_setin

FIELD_IN_SET вместо IN, как сделать отбор по текстовому набору

Предистория
У меня есть таблица с маршрутами в виде

-----------------------------------
| Id | route_id | cityList | dateList  | ... и другие поля
-----------------------------------
   1 | 2        |  1,4,8   | набор дат |
И таблица с городами
-----------------------
| Id | display        |
-----------------------
| 1  | Киев           |
| 2  | Днепропетровск |
и дальше ...
вообщем, при создании выборки маршрутов, мне надо заменить cityList на человекопонятный набор названий городов. cityList - MEDIUMTEXT, поскольку наборы бывают крупными.

Если использовать запрос в котором делать LEFT JOIN таблица с городами где IN ( таблица с маршуртами.cityList ) то толку было мало. Оно отображало исключительно по первой цифре название города. Все остальные игнорировались.
Накопал инфу по использованию FIELD_IN_SET помучался и нашел данную статью про использованию mysql FIELD_IN_SET
И вот результат.

SELECT

-- Отобрать иджентифиатор маршрута
A.Id as routeID, 

-- отобрать дату віезда 
A.dBegin as routeStartDate,

-- отобрать дату приезда
A.dEnd as routeFinishDate,

-- список дат выездов
A.dateList as routeDates,

-- сгруппированній список городом, через которые проходит данный маршрут
GROUP_CONCAT( B.display ) as routeCitys 

-- первая таблица - это маршруты, где хранится поле cityList (пример 1,5,6,9,12), вторая - список городов
FROM db_transfer_routes as A, db_transfer_city as B

WHERE 

-- тут я подставлял идентификатор маршрута
A.target_id={targetID}

-- а вот и самое FIELD_IN_SET
-- искать в наборе A.cityList записи соответствующие идентификатору ( Id ) из таблица B
AND FIND_IN_SET(B.Id, A.cityList)


Музыка, саундтреки

Постоянная ссылка Саундтрек к сериалу Ответный удар (MP3)
Тэги: саундтрексериалсериал Strike Back

Саундтрек к сериалу Ответный удар (MP3)

И еще один не менее популярный саундтрек от группы "The Heavy" к британскому сериалу "Ответный удар (Strike Back)".
Скачать можно здесь


Музыка, саундтреки

Постоянная ссылка Саундтрек к сериалу Убежище (MP3)
Тэги: саундтрексериалсериал Убежище

Саундтрек к сериалу Убежище (MP3)

Восстанавливаю пост для тех, кто ищет саундтрек к сериалу убежище.
Скачать можно здесь


Cisco

Постоянная ссылка SIP прошивка (firmware) для CISCO 7931G, CISCO 7942 - 7962
Тэги: phpcisco 7931firmwarecisco 7942cisco 7962sip

SIP прошивка (firmware) для CISCO 7931G, CISCO 7942 - 7962

Возможно кому-то понадобится, я очень долго искал

CISCO 7931G SIP Firmware ( 8-4-4 )
CISCO 7942 - 7962 SIP Firmware ( 8-5-4 )
CISCO 7942 - 7962 SIP Firmware ( 8-4-2S )

Буду этот пост обновлять по мере поступления прошивок


Cisco

Постоянная ссылка SIP firmware для CISCO 7911G для Asterisk
Тэги: asteriskphpfirmwarecisco 7911Gsip

SIP firmware для CISCO 7911G для Asterisk

Для тех, кто приучивает cisco 7911G к SIP для подключения к Asterisk

Скачать можно здесь прошивку для SIP
Здесь можно скачать прошивку для SCCP
Здесь можно скачать XML конфиг рабочий для Asterisk 1.6


Кажется, все.. пробуем


Cisco

Постоянная ссылка Настройка сервисных кнопок на cisco 7931
Тэги: ciscoсинтаксисконфигурациядокументацияcisco 7931

Настройка сервисных кнопок на cisco 7931

Итак, поставил телефон cisco 7931. Включил, зарегался, начал искать кнопку входа в сервисное меню, там где живут настройки, звонки и прочее.
Не нашел, начал гуглить. Нашел в одном месте, а именно в форуме "специалистов" а оттуда попал на страницу cisco 7391
Сразу предупреждаю, по первой ссылке есть недочеты, не буду их приводить, порекомендую сразу пойти на страницу cisco 7931 и там все прочитать.
Вкратце синтаксис такой

1.	enable
2.	configure terminal
3.	ephone template template-tag
4.	button-layout set phone-type [1 | 2]
5.	exit
6.	ephone phone-tag
7.	ephone-template template-tag
8.	end


Postfix

Постоянная ссылка Postfix - убийца спама
Тэги: postfixaccessmailсинтаксисcheck_client_accessreject_rbl_clientreject_non_fqdn_sender

Postfix - убийца спама

Немного конфигурации для Postfix чтобы уверенно начать бороться с спамом
Это важно В файле main.cf должно быть следующее

  • ;### Checks to remove badly formed email
  • smtpd_helo_required = yes strict_rfc821_envelopes = yes disable_vrfy_command = yes unknown_address_reject_code = 554 unknown_hostname_reject_code = 554 unknown_client_reject_code = 554 smtpd_helo_restrictions = permit_mynetworks, reject_invalid_hostname, regexp:/etc/postfix/helo.regexp, permit ;### When changing sender_checks, this file must be regenerated using postmap , to ;generate a Berkeley DB smtpd_recipient_restrictions = check_client_access hash:/etc/postfix/helo_client_exceptions check_sender_access hash:/etc/postfix/sender_checks, reject_invalid_hostname, ### Can cause issues with Auth SMTP, so be weary! reject_non_fqdn_hostname, ################################## reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_unknown_sender_domain, reject_unknown_recipient_domain, permit_mynetworks, reject_unauth_destination, ;Add RBL exceptions here, when changing rbl_client_exceptions, this ;file must be regenerated using postmap , to generate a ;Berkeley DB check_client_access hash:/etc/postfix/rbl_client_exceptions, reject_rbl_client cbl.abuseat.org, reject_rbl_client sbl-xbl.spamhaus.org, reject_rbl_client bl.spamcop.net, reject_rhsbl_sender dsn.rfc-ignorant.org, check_policy_service inet:127.0.0.1:60000 permit
    Таким был мой конфиг изначально.


    Cisco

    Постоянная ссылка Сброс настроек к телефона CISCO 79xx серии, ссылка на официальное руководство
    Тэги: ciscoдокументация

    Сброс настроек к телефона CISCO 79xx серии, ссылка на официальное руководство

    Поскольку много народу приходит в поисках сброса телефонов, сообщаю место, где можно почитать.

    Reset 7900 series IP phones здесь.


    Postfix

    Постоянная ссылка Пример использования regexp в файле helo.regexp
    Тэги: postfixaccessсинтаксисregexpконфигурациябезопасность

    Пример использования regexp в файле helo.regexp

    Я использую для проверки поля helo в Postfix файл helo.regexp где описано по каким правилам кого пускать, кого нет.
    Вот небольшая часть примера

    
    ; вот к примеру как я закрыл доступ доменам из зоны kiev.ua которые являются open relay
    ; сюда попали epro.kiev.ua, ilab.kiev.ua, sky-net.kiev.ua, get-up.kiev.ua, host-ua.kiev.ua
    ; () использую для набора, | использую как конструкцию разделителя набора
    ; \. так экранирую точку в имени домена
    ; ^ указатель на начало строки и $ указатель на окончание строки
    
    /^(epro|ilab|sky-net|get-up|host-ua)\.kiev\.ua$/ 550 BAN Spammer ; и еще пример против тех, кто в поле helo пишет helo=[< ip.add.re.ss >] /^\<\[([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})\]\>$/ 550 IP in helo not acceptable [2]


    Asterisk

    Постоянная ссылка Статусы звонков в Asterisk
    Тэги: asteriskсинтаксисdialstatusпеременныеplaybackgotowaitextenhangup

    Статусы звонков в Asterisk

    Имя переменной где лежит значение -${DIALSTATUS}

    
    //Ответ на звонок получен. Удачный дозвон.
    ANSWER
    
    //Сигнал занято. При наборе номера возвращено сообщение о занятости абонента.
    BUSY
    
    //Нет ответа. Дозвон произошел, но абонент не ответил за определенное время
    NOANSWER
    
    //Звонок отменен. Дозвонились, но повесили трубку либо Вы ли с другой стороны
    CANCEL
    
    //Неизвестен адресат. Номер не определен.
    CONGESTION
    
    //Канал для звонков недоступен. Скорее всего удаленный пир не зарегистрирован.
    CHANUNAVAIL
    
    //Приватный режим, типа "Не беспокоить"
    DONTCALL
    
    //Приватный режим, все входящие звонки отправляются на некий сервис, который их обслужит
    TORTURE
    
    //Ошибка, неверно набранный номер (добавлено в Asterisk 1.4.1, SVN r53135-53136)
    INVALIDARGS
    
    


    Пример использования
    exten => _600,n, Goto(${EXTEN}-${DIALSTATUS},1)
    
    -----------------------------
    Если созвонились
    exten => 600-ANSWER,1, Hangup
    -----------------------------
    
    ; NOANSWERED
    
    Если никто не ответил последовательность голосовых сообщений. Каждое сообщение отдельно.
    ; Первое сообщшение - абонент не отвечает
    exten => 600-NOANSWER,1, Playback(user-not-answer) 
    ; Далее - чтобы связаться с абонентом по сотовому телефону
    exten => 600-NOANSWER,n, Playback(dial-to-mobile) 
    ; Далее - оставайтесь на линии
    exten => 600-NOANSWER,n, Playback(keep-online) 
    exten => 600-NOANSWER,n, Wait(5)
    ; Вместо XXXXXXXXXX - указываем номер мобильного
    exten => 600-NOANSWER,n, GoTo(XXXXXXXXXX,1)
    
    
    ;CHANUNAVAILABLE
    
    ;Если абонент недоступен (не зарегистрирован на сервере)
    ; Проигрываем - абонент недоступен
    exten => 600-CHANUNAVAIL,n, Playback(user-unavailabel) 
    ; Проигрываем - чтобы связаться с абонентом по сотовому телефону
    exten => 600-CHANUNAVAIL,n, Playback(dial-to-mobile) 
    ; Проигрываем - оставайтесь на линии
    exten => 600-CHANUNAVAIL,n, Playback(keep-online) 
    exten => 600-CHANUNAVAIL,n, Wait(5)
    ; Вместо XXXXXXXXXX - указываем номер мобильного
    exten => 600-CHANUNAVAIL,n, GoTo(XXXXXXXXXX,1)
    
    
    По аналогии и остальные статусы обрабатываются.
    
    


    Asterisk

    Постоянная ссылка GotoIf() пример событий при звонке с определенного номера
    Тэги: asteriskgotoifсинтаксисконфигурациядокументация

    GotoIf() пример событий при звонке с определенного номера

    [globals]
        ; Тут установле некто TEST, с номером 101 чтобы можно было посмотреть результат GotoIf(  )
        ; если результат не TRUE
        TEST=101
        ;
        [incoming]
        ; устанавливаем переменные
        ; с приоритетом 10 если ${TEST} с номером 101, иначе уходим на приоритет 20
        exten => 123,1,GotoIf($[ ${TEST} = 101 ]?10:20)
        exten => 123,10,Playback(название звукового файла)
        exten => 123,20,Playback(название звукового файла)
    


    Всячина

    Постоянная ссылка Небольшая подборка плагинов, скриптов, утилит для jQuery, PHP
    Тэги: phpjquerypluginextensionскачать

    Небольшая подборка плагинов, скриптов, утилит для jQuery, PHP

    Возможно кому-то будет полезно


    Системы контроля версий

    Постоянная ссылка GIT, немного основных комманд или параметров
    Тэги: gitсинтаксисдокументация

    GIT, немного основных комманд или параметров

    Что необходимо знать о GIT


    git branch — просто перечислит существующие ветки, отметив активную.
    git branch [name] — создаст новую ветку name.
    git branch -d [name] — удалит ветку name, если та была залита (merged) с разрешением возможных конфликтов в текущую.
    git branch -D [name] — удалит ветку name в любом случае.
    git branch -m [newName] — переименует текущую ветку в ветку с именем newName.
    git branch --contains [someText] — покажет те ветки, среди предков которых есть определенный коммит c текстом someText.
    git checkout [name] - переключение между ветками name
    git checkout -b [newName] — создаст ветку newName, в которую и произойдет переключение.
    git checkout -f [name] - Если в текущей ветке были какие-то изменения по сравнению с последним коммитом в ветке (HEAD), то команда откажется производить переключение, дабы не потерять произведенную работу. Проигнорировать этот факт позволяет ключ -f


    Apache

    Постоянная ссылка Примеры и информация как защитить сайт через .HTACCESS
    Тэги: accesswebсинтаксисregexpдокументацияhtaccessбезопасность

    Примеры и информация как защитить сайт через .HTACCESS

    Первая и Вторая
    Писателям сайтов и админам веб-сервисов - читать обязательно.


    Cisco

    Постоянная ссылка Как скопировать из консоли CISCO файл с TFTP на FLASH
    Тэги: cisconetworkсинтаксисконфигурациядокументацияtftp

    Как скопировать из консоли CISCO файл с TFTP на FLASH

    Коммандная строка такая

    copy tftp: flash:
    


    Cisco

    Постоянная ссылка Сброс к заводским настройками CISCO 7962
    Тэги:

    Сброс к заводским настройками CISCO 7962

    Обнаружил здесь запись о сбросе настроек к заводским на аппарате CISCO 7975
    Собственно, мне необходимо было сбросить настройки CISCO 7962, он завис при обновлении намертво.
    Собственно процедура практически похожа.


    После этого происходит сброс настроек, подключение к TFTP и повторная попытка закачать первоначальную прошивку.
    Мне помогло.


    FreeBSD

    Постоянная ссылка Пример редиректа используя пакетный фильтр PF
    Тэги: accessnetworkсинтаксисfreebsdдокументациябезопасностьpf

    Пример редиректа используя пакетный фильтр PF

    Была задача. Машина в локалке на нее рредирект портов при обращении на один из IP адресов внешнего гейтвея


    Файл с правилами для чтения pf.conf
    
    # Внешний интерфейс
    ext="bge1"
    
    # Это внутренний IP
    from="5.6.7.8"
    
    # Это внешний IP на который будут приходить запросы
    extip="1.2.3.4"
    
    # Перечисление портов, при обращении к которым на внешний IP будет происходить редирект
    devports="{53, 10000, ftp, 1723}"
    
    # Нормализация траффика
    scrub in all
    
    #Правило для nat
    nat on $ext from $from -> $extip
    
    #Собственно сам редирект
    rdr on $ext proto {tcp, udp} from any to $extip port $devports -> $from
    
    # Еще вариант, если порт надо с какоего-либо внешнего перекинуть на внутренний
    # Тут получается что если кто-то из вне обращается на внешний IP на порт 12345
    # будет переадресован на внутренний IP на порт 54321
    
    rdr on $ext proto {tcp, udp} from any to $extip port 12345 -> $from 54321
    
    
    

    Вуаля. Работает
    Не забываем о том, что на внешнем интерфейсе должен быть данный IP )


    NGINX

    Постоянная ссылка Nginx PHP-FPM, прикручиваем phpmyadmin
    Тэги:

    Nginx PHP-FPM, прикручиваем phpmyadmin

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


    FreeBSD

    Постоянная ссылка proFTPD 1.3.4 Установка и конфигурировение
    Тэги:

    proFTPD 1.3.4 Установка и конфигурировение

    Качаем отсюда исходники proftpd-1.3.4 зеркало сами выбирать будете.
    Далее так:
    1. Распаковываем через tar -zxvf proftpd-1.3.4a.tar.gz ( помним что у вас может быть другая версия и имя файла другое )
    2. Конфигурируем. Я собирал с такими параметрами
    --prefix=/usr/proftpd куда ставить сам proFTPD
    --sysconfdir=/etc/proftpd, это место где будет конфигурация лежать
    дальше:


    Ну вот, дальше делаем make install clean
    Ждем, дожидаемся окончания процесса установки и таки смотрим на конфигурацию дефолтную (по умолчанию) в /etc/proftpd, стартовый скрипт в /usr/local/etc/rc.d не забываем в rc.conf прописать proftpd_enable="YES"
    Все - это вся установка. Делалось все на FreeBSD 7.2 из исходников. Порты стараюсь использовать в крайнем случае.