Apache
Постоянная ссылка
Apache не открывает файлы с смонтированного диска
Тэги: windowsaccessmount_smbfsmount
Apache не открывает файлы с смонтированного диска
Столкнулся с проблемой следующего характера при попытке открыть в браузере файл с диска, примонтированного через mount_smbfs
Что есть
- Apache 2.2
- Виртуальный хост
- Смонтированная шара с Windows сервера
Решение найдено при помощи параметра
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
Постоянная ссылка
SIP firmware для CISCO 7911G для Asterisk
Тэги: asteriskphpfirmwarecisco 7911Gsip
SIP firmware для CISCO 7911G для Asterisk
Для тех, кто приучивает cisco 7911G к SIP для подключения к Asterisk
Скачать можно здесь прошивку для SIP
Здесь можно скачать прошивку для SCCP
Здесь можно скачать XML конфиг рабочий для Asterisk 1.6
- Распаковываем в tftpboot
- XXXXXXXXXX меняем на MAC-адрес телефона
Кажется, все.. пробуем
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, он завис при обновлении намертво.
Собственно процедура практически похожа.
- 1. Выключаем питание
- 2. Зажимаем #, держим и включаем питание, продолжаем держать
- 3. Держим до тех пор, пока кнопки блока расширения справа вверху аппарата
не начнут методично перемигивать
- 4. Отпускаем и вводим заветные 123456789*0#
После этого происходит сброс настроек, подключение к TFTP и повторная попытка закачать первоначальную прошивку.
Мне помогло.
FreeBSD
Постоянная ссылка
Пример редиректа используя пакетный фильтр PF
Тэги: accessnetworkсинтаксисfreebsdдокументациябезопасностьpf
Пример редиректа используя пакетный фильтр PF
Была задача. Машина в локалке на нее рредирект портов при обращении на один из IP адресов внешнего гейтвея
- Внешний IP 1.2.3.4
- Внутренний IP машины в локалке 5.6.7.8
Файл с правилами для чтения
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
Для многих выглядит как "повторение", особенно для тех, кто это уже прошел, но.
Я расскажу от себя, как и что я делал, чтобы все это запустить.
Всте вставилось из исходников, не порты
- установка PCRE ( описывать не буду - элементарно )
- установка MySQL - бинарник ( опять таки рассказывать нечего, очень хороший мануал по установке)
- сборка и установка PHP
./configure --prefix=/usr/php --sysconfdir=/etc/php --enable-fpm --with-config-file-path=/etc/php --with-libxml-dir-regex=/store/pcre --with-zlib --with-bz2 --with-curl --enable-exif --enable-ftp --with-gd --with-jpeg-dir=/usr/jpeg --with-png-dir --with-zlib-dir -pe-dir --enable-gd-native-ttf --with-mhash --enable-mbstring --with-mcrypt --with-mysql=/usr/local/mysql --with-unixODBC=/usr/unixODBC --enable-sockere-dir --enable-fastcgi --enable-force-cgi-redirect --enable-discard-path
- установка nginx
Тут немного подробнее. Я его собирал с такими параметрами
--prefix=/usr/nginx --conf-path=/usr/nginx/conf --with-http_dav_module --with-pcre=/sources/pcre --with-poll_module
PHP у меня уже юыла собрана с поддержкой FPM так что много мороки не возникло. Надо было только скрипт автостарта сделать и подключить в rc.conf
Собственно практически все, тут я вспомнил про phpmyadmin
1. Скачал
2. Распаковал в папку в корне дефолтного сервера, обозвал sql
3. Залез в конфиг дефолтного сервера и кое-что поправил после 2 часов колупания
upstream backend {
server unix:/var/run/php-fpm/php-fpm.sock;
}
server {
listen 80;
server_name 192.168.70.226;
charset utf-8;
access_log logs/ns2.access.log main;
error_log logs/ns2.error.log;
root /store/www;
index index.php;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /store/www/errors;
}
// тут все что связаное исполнение PHP скриптов
location ~ \.php$ {
fastcgi_index index.php;
include /usr/nginx/fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
if (-e $request_filename ) {
fastcgi_pass backend;
}
}
Не поверите! Но это все. Больше ничего не надо.
Рекоменедую - если не запустится, сходить и поправить здесь
fastcgi_conf
Тут в первой строке у меня стояло fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
Снес $document_root
И здесь fastcgi_param SCRIPT_NAME $document_root$fastcgi_script_name; тоже снес.
Переходим к fastcgi_params
Везде где находим $document_rootчего-то там - сносим $document_root
И все заработало.
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, это место где будет конфигурация лежать
дальше:
- --enable-memcache, думаю название само за себя говорит
- --enable-pcre, опять таки, расчитываю на вашу смышленность
- --enable-openssl, куда ж тут без этого, в наш то век
- --with-mysql-config, думаю что в какой-то момент своей жизни конфиги и прочее переползут в базу MySQL
Ну вот, дальше делаем
make install clean
Ждем, дожидаемся окончания процесса установки и таки смотрим на конфигурацию дефолтную (по умолчанию) в
/etc/proftpd, стартовый скрипт в
/usr/local/etc/rc.d не забываем в rc.conf прописать proftpd_enable="YES"
Все - это вся установка. Делалось все на FreeBSD 7.2 из исходников. Порты стараюсь использовать в крайнем случае.