Тег <pre>, перенос строки в WordPress

4 Ноябрь, 2009

При написании предыдущих постов, у нас возникла небольшая заминка с тегом <code>. Проблема в том, что когда постишь в блог WordPress -а большие конфиги или код программирования и заносишь это всё в теги <code>, то тег закрывается раньше чем надо, код или конфиг фактически «обрубает» тег и тег закрывается не верно, и не там где надо. Пробовали различные плагины, но решения оказалось более чем банально. На помощь пришёл тег <pre>, тег почти справился, но длинные строки нашего конфига вылезли за придел таблицы, и блог «слегка разнесло». Покопавшись в google нашлось очень добротное решение, просто добавить в стили нашего блога, стиль pre.

pre {
white-space: pre-wrap; /* css-3 */
white-space: -moz-pre-wrap; /* Mozilla, с 1999 */
white-space: -pre-wrap; /* Opera 4-6 */
white-space: -o-pre-wrap; /* Opera 7 */
word-wrap: break-word; /* Internet Explorer 5.5+ поддерживается в IE, Safari, и Firefox 3.1.*/
}

Для закрытия текста, конфига и т.д. следует закрывать теги <code> в теги <pre>.

<pre><code>текст...</code></pre>

Tags: ,  

Настраиваем потоковый радио сервер SHOUTcast

4 Ноябрь, 2009

Поднимаем потоковый радио сервер SHOUTcast, на Ubuntu Linux Server.

Для начала, чтоб всё было на своём месте создадим папочку для файлов нашего будущего радио сервера.

sudo mkdir /etc/SHOUTcast/

Далее заходим в папку радио сервера.

sudo cd /etc/SHOUTcast/

И скачиваем с сервера «shoutcast.com» архив с shoutcast server для Linux.

sudo wget http://yp.shoutcast.com/downloads/sc1-9-8/sc_serv_1.9.8_Linux.tar.gz

Распаковываем архив.

tar xzvf sc_serv_1.9.8_Linux.tar.gz

В директории радио сервера, должны появится 3 файла.

README.TXT
sc_serv.conf
sc_serv

Сервер установлен.

Конфигурация радио сервера.

Теперь нам остаётся только настроить конфигурацию нашего радио сервера. Для этого нам понадобится конфигурационный файл sc_serv.conf.

sudo nano /etc/SHOUTcast/sc_serv.conf

И правим.

; ***************************
; Required stuff (Обязательные настройки)
; ***************************

;MaxUser. Максимальное количество пользователей, одновременно соединяющихся с сервером.
MaxUser=5

;Password. Пароль. Необходим, для направления аудио потока на ваш радио сервер.
Password="ваш уникальный пароль для потока"

;PortBase. Порт радио сервера, по которому будут соединятся пользователи.
PortBase=8000

; ***************************
; Optional Parameters (Параметры по выбору)
; ***************************

; ***************************
; Logging configuration (Конфигурация Логов)
; ***************************

;LogFile: Логи радио сервера.
LogFile=sc_serv.log

;Отображение строки состояния радио сервера. Обновляется (RealTime=1) каждую секунду. С самой последней информацией о текущем аудио потоке.
;После тестирования можно отключить, поставив RealTime=0.
RealTime=1

;Логи выводится на экран. Желательно отключить, если радио сервер работает в фоновом режиме.
ScreenLog=1

;ShowLastSongs определяет, сколько песен в списке в / played.html
ShowLastSongs=10

;TchLog определяет, должен ли DNAS-лог записывать подключения
;yp.shoutcast.com к серверу.
TchLog=yes

;Не учитывать посещения web страницы.
WebLog=no

;W3CEnable включает W3C логирование. Эти данные могут быть проанализированы с помощью инструментов, Analog и WebTrends.
W3CEnable=Yes

;Файл с W3C логами.
W3CLog=sc_w3c.log

; ***************************
; Network configuration (Сетевые конфигурации)
; ***************************

;IP адрес, с которого будет осуществляться аудио поток на наш радио сервер.
;По умолчанию SrcIP=ANY. В моём же случае поток идёт с машины из локальной сети.
SrcIP=192.168.1.110

;IP адреса пользователей, которым разрешено соединение с сервером.
DestIP=ANY

;Порт для подключения к yp.shoutcast.com.
Yport=80

;Не смотреть DNS подключающихся пользователей.
NameLookups=0

;Настройки для пересылки аудио потока на другой сервер.
; RelayPort=8000
; RelayServer=192.168.1.58

; ***************************
; Server configuration (Конфигурация сервера).
; ***************************

;Пороли Администратора радио сервера.
AdminPassword="ваш уникальный пароль администратора"

;AutoDumpUsers. Отключает пользователей, если источник потока отключается.
AutoDumpUsers=1

;AutoDumpSourceTime. Определяет, сколько времени в секундах, источник потока может молчать, перед отключением от радио сервера.
AutoDumpSourceTime=10

;Директория на жестком диске, где расположены стандартные аудиофайлы.
; ContentDir=./content

;IntroFile. Вы можете указать mp3-файл, который будет проигран присоединившимся пользователям прежде чем они услышат живой эфир.
; IntroFile=c:\intro%d.mp3

;MP3-файл, который будут слышать подключившийся пользователь, если источник аудио потока отключится.
; BackupFile=C:\intro%d.mp3

; Формат строки, отображаемый в клиентах пользователях во время прослушивания радио. %s определяет строку, которая берется у источника аудио потока.
; TitleFormat=Justin Radio: %s

; URLFormat. Определяет формат строки URL-а передаваемого слушателю.
; URLFormat=http://www.server.com/redirect.cgi?url=%s

; PublicServer. Статус сервера. Значения могут быть - always, never или default.
PublicServer=default

; AllowRelay. Могут ли другие сервера пересылать свои трансляции через этот радио сервер.
AllowRelay=No

;Cервер не подлежит публикации в каталоге SHOUTcast.
AllowPublicRelay=No

; MetaInterval. Определяет, как часто, в байтах, отправляются метаданные.
MetaInterval=32768

; *****************************
; Access Control (Контроль Доступа)
; *****************************

; ListenerTimer. Максимально допустимое время для соединения клиента с радио сервером. По умолчанию время не ограничено.
;ListenerTimer=600

; BanFile - является бан листом.Списком клиентов, которым запрещено подключаться к нашему радио серверу.
; Автоматически генерируется через Интернет.
; BanFile=sc_serv.ban

; Текстовый файл, используемый для работы со списком клиентских IP-адресов, которые всегда могут подключиться к серверу.
; RipFile=sc_serv.rip

; Если включить, то к серверу смогут подключаться только клиенты с IP-адресами из файла RipFile.
; RIPOnly=No

; *****************************
; Extended Logging (Расширенное Протоколирование)
; *****************************

; Тут какой-то прогон, мы его опустим.

; ***************************
; Mass Configuration (Массовая конфигурация)
; ***************************

; Тут тоже опустим. Разве что:

; Подключение дополнительной общей конфигурации.
; Include=/usr/local/shoutcast/common.conf

; *****************************
; Tweaks (Хитрости)
; *****************************

;Дальнейшее изречение говорит само за себя.

; DON'T MESS WITH THIS STUFF UNLESS YOU REALLY KNOW WHAT YOU'RE DOING.
; DON'T COMPLAIN TO US IF YOU MESS WITH IT AND THINGS BREAK.
; HAVE A NICE DAY.

; Количество рабочих процессоров.
; CpuCount=1

; Время "сна" процессора (в мс) в промежутках между отправлением данных
; пользователям. Значение по умолчанию (833) оптимально для 128kbps.
; Sleep=833

; Удаление некоторых лишних пробелов и строк в выводе XML.
; CleanXML=No
;
; TAG RULES

Запустим сервер.

sudo ./sc_serv sc_serv.conf

Настраиваем клиента, для вещания аудио потока на наш сервер.

В этих целях я использую старый добрый Winamp. И всё что нам понадобится для организации потока на сервер – это небольшой плагин SHOUTcast Radio DSP plug-in for Windows.
Качаем, ставим, сложного ничего сдесь нет… Запускаем winamp и настраиваем плагин.

Идём в Options > Preferences (или просто Ctrl+P) и далее DSP/Effect и в списке плагинов выбираем Nullsoft SHOUTcast Source DSP v1.9.1 [dsp_sc.dll]. Кликнем на плагине.

winamp_shoutcast_plugin

Затем появится окно SHOUTcast Source. Перейдём сразу в закладку Encoder где выберем Encoder Type – MP3 Encoder и ниже Encoder Settings - качество звучания нашего потока (всё зависит от возможностей вашего сервера и его интернет соединения).

shout_encoder_settings

Далее щёлкаем вкладку Outputи вбиваем Address – (Ip вашего сервера. В маём случае машина в локальной сети 192.168.1.111). Port- 8000 и Password (пароль который мы забивали в начале конфига). И жмём Connect.

shout_connect_type

Если всё правильно настроено, то во вкладке Output появится в Status – длительность соединения и объём посылаемых данных в байтах. Ну и на сервере появится параллельная информация.

shout_output

Осталось только защемиться на WEB интерфейс нашего радио сервиса и попробовать прослушать поток. Набираем в вашем любимом браузере http://192.168.1.111:8000 где, вместо 192.168.1.111 устанавливаем IP адрес вашего сервера, на котором слушает ваш радио сервер или имя вашего хоста… Я использую как и локальный IP для тестов, так и халявный хост на dyndns.org. В открывшейся WEB странице нажимаем ссылку Listen где нам предложат загрузить лист воспроизведения Listen.pls. Открываем его в Winamp и слушаем своё радио.

shout_web

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

Ну вот в принципе и всё, надеюсь получилось максимально развёрнуто.

Приятного прослушивания ;)

Tags: , , , , ,  

Установка веб-сервера Nginx на Debian

30 Октябрь, 2009

Nginx является бесплатным высокопроизводительным веб-сервером, известный своей стабильностью, богатым набором функций, простой конфигурацией и низким потреблением ресурсов. Я поэтапно покажу как можно установить Nginx на сервере Debian и настроить поддержку PHP5 (через FastCGI) и MySQL.

Перво-наперво ставим инструмены и библиотеки необходимые для сборки Nginx:

sudo apt-get install libpcre3 libpcre3-dev libpcrecpp0 libssl-dev zlib1g-dev

Если нужна поддержка встроенного Perl, то добавляем:

sudo apt-get install libperl-dev

Теперь пора загрузить Nginx. Переходим в ваш каталог источников.

cd ~/sources/

Качаем последнюю стабильную версию.

wget http://sysoev.ru/nginx/nginx-0.7.63.tar.gz

И распаковываем.

tar -zxvf nginx-0.7.63.tar.gz
cd nginx-0.7.63/

Чтобы узнать обо всех параметрах конфигурации нужно выполнить:

./configure --help

Я использую следующие настройки:

./configure --sbin-path=/usr/local/sbin --with-http_ssl_module

И ставлю.

make
make install

Основные папки и файлы nginx по-умолчанию:
Корневая папка: /usr/local/www/nginx/
Конфигкрационный файл: /usr/local/etc/nginx/nginx.conf
Логи ошибок: /var/log/nginx-error.log
Логи доступа: /var/log/nginx-access.log
Дефолтный сайт /usr/local/nginx/html

Пришло время протестировать работоспособность сервера. Запускаем Nginx командой.

sudo /usr/local/sbin/nginx

Открываем браузер и вводим ваш IP адрес или имя хоста (например, http://192.168.0.100), и вы должны увидеть приветствующую страницу: Welcome to nginx!

Если всё хорошо, идем дальше. Добавляем Nginx в автозагрузку:

sudo nano /etc/init.d/nginx

Вставляем:

#! /bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/local/nginx/sbin/nginx
NAME=nginx
DESC=nginx

test -x $DAEMON || exit 0

# Include nginx defaults if available
if [ -f /etc/default/nginx ] ; then
. /etc/default/nginx
fi

set -e

case "$1" in
start)
echo -n "Starting $DESC: "
start-stop-daemon --start --quiet --pidfile /usr/local/nginx/logs/nginx.pid --exec $DAEMON -- $DAEMON_OPTS
echo "$NAME."
;;
stop)
echo -n "Stopping $DESC: "
start-stop-daemon --stop --quiet --pidfile /usr/local/nginx/logs/nginx.pid --exec $DAEMON
echo "$NAME."
;;
restart|force-reload)
echo -n "Restarting $DESC: "
start-stop-daemon --stop --quiet --pidfile /usr/local/nginx/logs/nginx.pid --exec $DAEMON
sleep 1
start-stop-daemon --start --quiet --pidfile /usr/local/nginx/logs/nginx.pid --exec $DAEMON -- $DAEMON_OPTS
echo "$NAME."
;;
reload)
echo -n "Reloading $DESC configuration: "
start-stop-daemon --stop --signal HUP --quiet --pidfile /usr/local/nginx/logs/nginx.pid --exec $DAEMON
echo "$NAME."
;;
*)
N=/etc/init.d/$NAME
echo "Usage: $N {start|stop|restart|force-reload}" >&2
exit 1
;;
esac

exit 0

Делаем файл исполняемым и заносим nginx в автозагрузку.

sudo chmod +x /etc/init.d/nginx
sudo /usr/sbin/update-rc.d -f nginx defaults

Теперь мы можем запускать, останавливать и перезапускать Nginx командами:

sudo /etc/init.d/nginx start
sudo /etc/init.d/nginx stop
sudo /etc/init.d/nginx restart

С установкой всё. В следующих статьях я покажу как из Nginx сделать полноценный веб-сервер – мы установим PHP и МySQL.

Tags: ,  

Asterisk PBX на Linux Ubuntu Server. Настраиваем связь между двумя SIP телефонами

22 Октябрь, 2009

Для этого нам понадобится Linux Server (Например – Ubuntu ;) ) Asterisk PBX, два SIP телефона. Мы будем использовать Express Talk VoIP Softphone.

Для начала, обновим информацию о репозитарии пакетов.

sudo apt-get update

И установим asterisk.

sudo apt-get install asterisk

Для соединения двух пользователей с помощью asterisk нам понадобятся два конфигурационных файла asterisk-а sip.conf и extensions.conf.

/etc/asterisk/sip.conf
/etc/asterisk/extensions.conf

Редактируем sip.conf.

sudo nano /etc/asterisk/sip.conf

Добавляем регистрацию для пользователя user100.

[100]
type=friend
secret=password
username=user100
host=dynamic
deny=0.0.0.0/0.0.0.0
permit=192.168.1.100/255.255.255.0
canreinvite=no
nat=yes
context=phone

И ниже добавляем регистрацию для нашего второго пользователя user200.

[200]
type=friend
secret=password
username=user200
host=dynamic
deny=0.0.0.0/0.0.0.0
permit=192.168.1.101/255.255.255.0
canreinvite=no
nat=yes
context=phone

Затем редактируем файл extensions.conf.

sudo nano /etc/asterisk/extensions.conf

Добавляем расширение (context=phone) для звонков наших пользователей.

[phone]
exten => 100,1,Dial(SIP/100,12)
exten => 100,2,Congestion
exten => 100,102,Busy
exten => 200,1,Dial(SIP/200,12)
exten => 200,2,Congestion
exten => 200,102,Busy
exten => _.,1,Answer()
exten => _.,2,Wait(2)
exten => _.,3,Playback(pbx-invalid)
exten => _.,3,Congestion

Изменения вступят в силу после перезагрузки настроек, для этого зайдём в asterisk сервер командой:

sudo asterisk -r

И перезагрузим конфигурацию командой:

bitch*CLI> reload

Asterisk настроен, следующий шаг, это настройка и регистрация наших sip телефонов на asterisk сервере.

Устанавливаем Express Talk и идём в его настройки Options > Lines.
Где в полях указываем:

Full Friendly Display Name - user100
Server (SIP Proxy or Virtual PBX)192.168.1.111 (IP адрес PBX сервера).
SIP Number (or User Name)100 («Телефонный» номер пользователя user100).
PasswordPassword (Указываем свой пароль для пользователя user100).

Express_Talk_Configuration

На другом компьютере пользователя user200 проделываем тоже самое, только заменяем все настройки, на настройки пользователя user200:

Full Friendly Display Name - user200
Server (SIP Proxy or Virtual PBX)192.168.1.111 (IP адрес PBX сервера).
SIP Number (or User Name)200 («Телефонный» номер пользователя user200).
PasswordPassword (Указываем свой пароль для пользователя user200).

Далее идём в настройки Express Talk. Options > Network и вставляем в Public IP Address (if IP is static) – 192.168.1.100 (статический IP адрес машины с которой будет звонить пользователь user100 – 192.168.1.100)

Express_Talk_Network_Configuration.jpg

И соотвественно на машине пользователя user200 вставляем его IP адрес 192.168.1.101
Если всё правильно настроено, то Express Talk автоматически зарегистрируется на PBX сервере.

При звонках, пользователь user100 должен набрать номер 200, а пользователь user200 номер 100.
Так же статистику и правильность звонков, можно контролировать на asterisk сервере набрав команду:

sudo asterisk -vvvvvr

Tags: , , ,  

Подключаем модуль Mod_Rewrite в Apache2

15 Сентябрь, 2009

Рассмотрим подключение модуля Mod_Rewrite web сервера Apache2

Всё очень просто. Специальной командой apache2 добавляем модуль mod_rewrite.

sudo a2enmod rewrite

Получаем вывод, где просят перезагрузить apache2.

Enabling module rewrite.
Run '/etc/init.d/apache2 restart' to activate new configuration!

Перезагружаем.

sudo /etc/init.d/apache2 restart

Затем редактируем файл /etc/apache2/sites-enabled/000-default

sudo nano /etc/apache2/sites-enabled/000-default

Находим значение AllowOverride, меняем с None на All

<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>

В .htaccess добавляем (если только вы не используете CMS системы, которые добавляют свой файл .htaccess, где как правило опция RewriteEngine on уже включена, остается только подключить модуль в apache2).

RewriteEngine on
Options +FollowSymlinks
RewriteBase /
RewriteRule ^.htaccess$ - [F]

Перезагружаем apache2.

sudo /etc/init.d/apache2 restart

Готово.

Tags: ,  

Как смонтировать жесткий диск в Linux?

11 Сентябрь, 2009

Монтируем диск в Ubuntu Linux.

Сначала, утилитой для управления разделами жёсткого диска fdisk проверяем наличие подключенных жестких дисков и их файловые системы.

Если утилита не установлена, устанавливаем.

sudo apt-get install fdisk

Затем.

sudo fdisk -l

Получаем вывод примерный этому.

Disk /dev/sda: 8455 MB, 8455200768 bytes
255 heads, 63 sectors/track, 1027 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x22992298

Device Boot Start End Blocks Id System
/dev/sda1 * 1 978 7855753+ 83 Linux
/dev/sda2 979 1027 393592+ 5 Extended
/dev/sda5 979 1027 393561 82 Linux swap / Solaris

Disk /dev/sdb: 30.7 GB, 30750031872 bytes
255 heads, 63 sectors/track, 3738 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xeedfeedf

Device Boot Start End Blocks Id System
/dev/sdb1 1 3738 30025453+ 83 Linux

Где sda основной диск с системой и sdb диск, который необходимо смонтировать.

Форматируем диск, создаём раздел sdb1.

sudo mkfs -t ext3 /dev/sdb1

Редактируем файл fstab.

sudo nano /etc/fstab

Добовляем в файл строку.

/dev/sdb1 /media/newdisk auto users,noauto,rw,utf8 0 0

Создаём точку монтирования для нового диска.

sudo mkdir /media/newdisk

Монтируем диск в систему.

sudo mount /dev/sdb1 /media/newdisk/

Проверяем смонтированные диски.

sudo df -h

Получаем вывод.

Filesystem Size Used Avail Use% Mounted on
/dev/sda1 7.5G 1.3G 5.8G 18% /
varrun 506M 80K 506M 1% /var/run
varlock 506M 0 506M 0% /var/lock
udev 506M 36K 506M 1% /dev
devshm 506M 0 506M 0% /dev/shm
/dev/sdb1 29G 173M 27G 1% /media/newdisk

Готово.

Tags:  

RSS 2.0 Feed

Рубрики

Метки

Архивы