Показаны сообщения с ярлыком linux. Показать все сообщения
Показаны сообщения с ярлыком linux. Показать все сообщения

воскресенье, 5 июля 2009 г.

Установка Subversion на OpenSuse 11

Кратко, просто и с примером:

Установка Subversion возможна как на отдельный компьютер, так и на сервер.
В данном примере обсуждается установка на сервер на базе Apache2.

1. Первым делом нужно установить следующие пакеты:
apache2, apache2-prefork, libapr1, libapr-util1, neon, subversion, subversion-server.

2. Активируем модули dav, dav_svn (под рутом)
a2enmod dav
a2enmod dav_svn

3. на сервере должен появиться файл с примерами настроек конфигурации Subversion.
По умолчанию этот файл не запустится, так как конфигурацию нужно настроить вручную.
В нем есть примеры настроек. Если веб-сервер Apache использует виртуальные хосты (Virtual Hosts),
то, если просто включить этот файл в общий файл конфигурации Apache, то будет предоставлен доступ к
системе управления версиями на всех виртуальных хостах. В большинстве случаев такого нужно избегать.
Для решения этого вопроса можно либо включить ссылку на файл конфигурации (Include /путь/к/файлу) или
добавить эти строки непосредственно в настройку виртуального хоста.
Я выбрал второй вариант, поскольку удобней сразу видеть настройки конкретного виртуального хоста
без "пробежки" по файловой системе.

Итак, предположим, что я хочу видеть по адресу svn.mydomain.com все свои проекты (репозитарии).
Вот пример конфигурации виртуального хоста:


Замечания:
  • замените svn.mydomain.com на ваш домен
  • не нужно добавлять DocumentRoot - могут быть конфликты
  • по умолчанию в примере после установки стоит параметр - SVNParent. Корректно - SVNParentPath
  • конфигурация настроена так, чтобы все могли видеть список проектов, но для проекта
  • myproject система запросит логин и пароль
  • если не указать SVNListParentPath on, вместо списка проектов, будет вываливаться:
Access forbidden!
You don't have permission to access the requested directory. There is either no index document or the directory is read-protected.
If you think this is a server error, please contact the webmaster.
Error 403
4. Дальнейшие настройки (под рутом)
mkdir -p /srv/svn/myproject # создаем каталон для нашего проекта
mkdir /srv/svn/auth # папка для хранения файла пользователей
touch /srv/svn/auth/svn.mydomain.com.htpasswd # сам файл, в котором хранятся пользователи для доступа к SVN
chown root:www /srv/svn/auth/svn.mydomain.com.htpasswd # права доступа
chmod 640 /srv/svn/auth/svn.mydomain.com.htpasswd # права доступа
htpasswd2 /srv/svn/auth/svn.mydomain.com.htpasswd my_user # добавляем пользователя
rcapache2 restart # перезапуск Apache2

После удачного перезапуска по адресу http://svn.mydomain.com можно просмотреть наш репозитарий, который пока пустой

5. Настраиваем проект myproject (под рутом)
svnadmin create /srv/svn/repos/myproject
-- команда создаст структуру каталогов для этого проекта
(Если нужно удалить, просто удаляем с помощью команды rm )
chown -R wwwrun:www /srv/svn/repos/myproject/
-- права доступа
svn import /path/to/project/files http://svn.mydomain.com -m "initial import"
-- команда импортирует необходимую структуру файлов с Subversion
(Если не указать путь к /path/to/project/files, то будет импортироваться текущая директория)


6. Теперь можно на удаленных компьютерах делать checkout
svn checkout http://svn.mydomain.com

Все.
Некоторая информация была переведена с этого сайта
Более подробную информацию о Subversion можно прочитать/скачать тут.
На этом сайте можно найти и на русском, но кто знает английский, лучше на английском -
точнее и новее информация.

PS. Современные IDE типа NetBeans и Eclipse имеют модули для работы с SVN.
Для Eclipse я выбрал Subclipse. об установке можно прочитать по этой ссылке (с рисунками ;) )

понедельник, 2 февраля 2009 г.

Преобразование форматов wma wav ogg mp3

Кратко:

c wma в wav:
mplayer ws_30075.wma -ao pcm:file=out.wav
Пример скрипта, который конвертирует все файлы в текущей папке:
n=0
for i in $(find . -maxdepth 1 -name "*.wma"); do
let "n += 1"
mplayer $i -ao pcm:file=$n.wav
done

с wma в ogg
mpg321 ws_30075.wma -w raw && oggenc raw -o output.ogg

с ogg в wav
oggdec *.ogg

с wav в mp3 (всю текущую директорию)
for i in *.wav ; do lame $i `echo $i|awk -F . '{print $1 ".mp3"}'`; done

среда, 17 декабря 2008 г.

установка сканера Epson v10 на Mandriva Linux


В дистрибутиве Mandriva и в других крупных дистрибутивах есть графические утилиты установки и настройки принтеров, сканеров и др.
Чтобы долго не мучиться я решил тоже ее использовать. Запустить графические утилиты настройки в Mandriva можно с помощью команды mcc. На первом этапе установки сканера утилита предлагает установить XSANE (нужно установить, если еще не установлен). На втором этапе предлагается идет автоматический поиск драйвера. К сожалению, автоматическая установка драйвера не получилась поэтому было предложение самому найти в списке драйверов необходимое устройство. Но в списке устройств Epson V10 не было.
На официальном сайте Epson драйвера были только для Windows и Mac (Позор Epson-у !).
Необходимые драйвере для Epson V10 под нужный дистрибутив можно скачать с сайта http://www.avasys.jp/lx-bin2/linux_e/scan/DL1.do.
Там есть и исходники и документация (на англ. языке)
после установки драйвера iscan и iscan-plugin по идее все уже должно работать и можно запускать xSANE и сканировать.

Если проблемы все-таки есть:
В предыдущих версиях Mandriva, например 2008 у меня возникала проблема конфликта пакетов. Как вариант решения использовать
rpm -i
--force *.rpm
Возможна проблема доступа к сканеру для не-root пользователя.
Для этого можно
а) установить права вручную :
sane-find-scanner | grep 0x04b8
ответом должно быть что-то вроде
found USB scanner (vendor=0x04b8 [EPSON], product=0x012d [EPSON Scanner]) at libusb:006:025
потом под root-пользователем запустить
chmod 0666 /proc/bus/usb/006/025
две последние цифры взять от предыдущего результата вывода команды
В этом варианте придется каждый раз делать эту операцию после включения сканера или перезагрузки компьютера (или написать скрипит). Очевидно, это не очень удобно, поэтому лучше исаользовать вариант б)
б) использовать файл настроек /etc/sane.d/epkowa.conf
в нем нужно указать соответствующее Usb- устройство сканера, например
usb /dev/usb/scanner0
В этом файле есть примеры. Их можно использовать.

Успехов!

среда, 3 декабря 2008 г.

Интеграция Tomcat и Apache


Зачем?
Когда возникает необходимость размещать на сайте свои JSP-страницы и/или сервлеты на веб-сервере, то одним из самых лучших помощников есть Tomcat. Есть и другие бесплатные контейнеры сервлетов, например Jetty, но мне по душе Tomcat.
Зачем Tomcat связывать с Apache? Над этим вопросом я думал немало. На многих форумах пишут, что Apache быстрее работает со статистическими файлами (например, .gif, .html), но это было раньше. Последние версии Tomcat, в моем случае Tomcat 6, работают со статикой намного лучше, а на официальном сайте Tomcat пишут, что иногда даже лучше. Радует также то, что в Tomcat есть возможность использовать виртуальный хостинг (с алиасами), а также есть поддержка PHP! Для того чтобы клиентам не приходилось указывать порт веб-сервера (по умолчанию в Tomcat 8080) можно либо настроить в server.xml чтобы Tomcat запускался с обслуживание порта 80 либо сделать перенаправление с порта 8080 на порт 80 (если конечно никакой сервер этот порт еще не использует). В целях безопасности я предпочитаю второй вариант. В Linux это делается элементарно:
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080

Но в связке Tomcat и Apache есть свои преимущества:
можно использовать модуль mod_jk для балансировки нагрузки нескольких Tomcat серверов, а также для создания кластера.
Можно использовать разнообразные модули Apache (но не всегда они нужны и даже могут мешать безопасности)
Больше аргументов в пользу связки Apache и Tomcat для современных версий Tomcat я не нашел. Но этот первый пункт для меня был весомым. Возможно (и скорее всего) разработчики Tomcat реализуют эту функциональность и он станет достаточно самостоятельным веб-сервером. Но все-таки Tomcat в первую очередь нацелен на Java-разработчиков.

Как?
Есть 2 базовый варианта.
Первый: использовать модули Apache, а именно mod_proxy, mod_alias
Для этого нужно в httpd.conf или конфигурационном файле виртуально хоста (если он отдельно) прописать так:

RedirectMatch permanent ^/$ http://<домен>/<приложение>/
ProxyPass /<приложение> http://<домен>:8080/<приложение>/
ProxyPassReverse /<приложение> http://<домен>:8080/<приложение>/


mod_alias нужен для RedirectMatch и mod_proxy - для ProxyPass и ProxyPassReverse директив
В этом подходе есть преимущества — простота настройки и недостатки:
- Tomcat сервер не может находится во внутренней и/или DMZ-зоне (без специальных настроек фаервола и/или DNS)
- слабая поддержка балансировки и кластеризации (на официальном сайте пишут, что mod_proxy поддерживает балансировку, но производительность хуже)
- плохая производительность.

Второй. Использовать коннекторы. Из всего разнообразия коннектором на официальном сайте Apache указано, что сейчас для версии 6 поддерживается Jk и mod_proxy.
Коннекторы jserv, Jk2 (!), webapp — устарели. Первые два используют протокол AJP, последний — WARP.
Далее описывается как настроить коннектор jk (mod_jk).
Где взять модуль JK и как его установить?
Установить mod_jk можно используя репозитарий Linux. Просто сделайте поиск в репозитарии, например jk. Этот модуль я видел в дистрибутивах SuseOpenSuse), Mandriva, Debian, CentOS (соответственно должно быть и в RadHat и Fedora). В OpenSuse он назывался apache2-mod_jk. Я так понял, что этот модуль можно установить с репозитария во всех популярных дистрибутивах. Именно так я его установил.
Но, если нет такой возможности или хочется установить самый последний модуль, то его можно либо скачать в бинарном виде с этого сайта - обязательно учтите архитектуру процессора и версию Apache!
Либо установить с исходников. Для этого нужно скачать с этого сайта нужную версию, проверить на целостность, и установить. Важная заметка: для того чтобы при установке скомпилировалась именно та, версия, которая подходит для вашей версии Apache должна быть установлена программа apxs !

Как подключить mod_jk к Apache? На примере OpenSuse все очень просто:
В файле /etc/sysconfig/apache2 в строке APACHE_MODULES= дописываем mod_jk и перегружаем Apache. Чтобы убедиться, что он загружен используем команду:
apache2ctl -t -D DUMP_MODULES
В списке должно быть jk_module (shared)
Если модуль устанавливался НЕ с помощью репозитария дистрибутива, то модуль нужно скинуть в место где находятся библиотеки Apache (учитывайте архитектуру процессора), а загрузка модуля зависит от версии Apache, которую используете.
А теперь непосредственно настройка коннектора. Сделаем это в 4 шага
1) подключаем свой конфигурационный файл в httpd.conf
Include /etc/apache2/mod-jk.conf
2) в этом файле пишем:
JkWorkersFile /etc/apache2/workers.properties
JkLogFile /etc/apache2/mod-jk.log
JkLogLevel info
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
JkRequestLogFormat "%w %V %T"
JkExtractSSL On


/* пути исправляйте для собственных нужд */

Тут мы указываем на файл настроек так называемых workers (работники :) )
Обо всех остальных директивах и настройках для Apache можно почитать на этом сайте

3) описываем работу воркеров в файле workers.properties
worker.list=worker1, worker2
worker.worker1.port=8009
worker.worker1.host=hostname
worker.worker1.type=ajp13
worker.worker2.port=8010
worker.worker2.host=hostname
worker.worker2.type=ajp13


Что это значит?
worker.list — список воркеров
И ниже свойства каждого воркера, а именно port, host, type (порт, хост, тип).
Порт — это порт AJP, который слушает соответствующий Tomcat-сервер. По умолчанию это 8009
Хост — имя хоста или его Ip-адрес, где находится соответствующий Tomcat-сервер.
Тип — Тип воркера. В данном случае используется протокол AGP версии 1.3. Без особой необходимости его менять не нужно.
Дополнительно про настройку worker-ов можно почитать тут

4) Указываем как и когда использовать Tomcat, а не Apache.
Указать можно либо в самом файле httpd.conf например,
JkMount /jsp-examples worker1
либо непосредственно при настройке виртуального хоста
(внутри тега VirtualHost):
JkMount /* worker2


Вот и все ;)

И еще немного о виртуальных хостах (Virtual hosts).
Как делать виртуальные хосты в Apache написано тут
Например (внутри тега "VirtualHost"):

ServerAdmin webmaster@localhost
ServerName mysite.com.ua
ServerAlias www.mysite.com.ua
DocumentRoot /srv/www/htdocs/mysite.com.ua
ErrorLog /var/log/apache2/mysite.com.ua-error_log
CustomLog /var/log/apache2/mysite.com.ua_log combined
JkMount /* workername # если, конечно, необходим Tomcat

Создать виртуальный хост для Tomcat еще проще:
в /conf/server.xml создать разные хосты ()
Engine name="Catalina" defaultHost="ren"
Host name="site1.com" appBase="site1apps"
Host name="site2.com" appBase="site2apps"
Engine

Для создания алиасов используем элемент alias... внутри тега host, например alias> www.site1.com.ua /alias>
и создать соответствующие директории site1apps и site2apps.
При этом нужно чтобы эти директории не перекрывались (не находились друг в друге)
Контекст по умолчанию (например, сразу после того, как вводим site1.com) должен находиться в site1apps/ROOT или site1apps/root.war, а остальные контексты (например site1.com/mycontext) в той же директории, но не ROOT.
Подробней на английском читайте тут

А как связать виртуальные хосты (Virtual hosts) Apache c Tomcat?

Для этого нужно:
1) создать витруальные хосты в Apache.
2) Создать несколько директорий для разных хостов Tomcat, поменяв необходимые порты в каждом из них. Например, у нас уже есть директория с Tomcat, которая использует порты по умолчанию, а именно: 8080 — для веб, 8009 — для AJP, 8005 — для останова Tomcat (это значит останов или крах одного сайта не повлияет на другой).
Просто копируем и переименовуем новую директорию Tomcat, например, SITE1-Tomcat.
Потом в /conf/server.xml новой директории Tomcat меняем порты:
а) порт останова с 8005 на другой, например:
Server port="8006" shutdown="SHUTDOWN"
б) веб-порт с 8080 на другой, например:
Connector port="8081" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />

в) порт для AGP c 8009 на другой, например:
Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
3) В файле workers.properties мы для каждого сайта создаем свой worker, например site1worker

4) В настройках виртуального хоста Apache внутри тега VirtualHost используем соответствующий worker, например
JkMount /* site1worker

Если что-то не получается смотрим логи модуля mod_jk, в данном примере он был указал в файле mod-jk.conf в директории JkLogFile /etc/apache2/mod-jk.log. Также не забываем о логах Apache, логах Tomcat и системных логах.

Некоторые полезные ссылки:
http://www.opennet.ru/base/dev/apache2_tomcat5.txt.html — об интеграции Apache c Tomcat (на русском)
http://www.javatalks.ru/sutra31163.php — дополнительно о кластеризации (на русском)
http://voituk.kiev.ua/2007/06/25/tomcat-cluster/ - тоже хорошо о кластеризации (на русском)
http://people.apache.org/~mturk/docs/article/ftwai.html — о кластеризации Apache Tomcat (на английском)
http://tomcat.apache.org/tomcat-6.0-doc/connectors.html - рассуждение о коннекторах от разработчиков (на английском)

четверг, 6 ноября 2008 г.

Как настроить Linux, чтобы просматривать Java аплеты в Firefox и Opera



Все-таки Flash на сегодня (2008 год) используется на много больше, чем Java аплеты, несмотря на то, что у аплетов больше возможностей.

Одной из главных причин есть то, что Flash не нужно устанавливать и нет проблем в настройке для обычного пользователя Innternet.
Проблема, думаю, не в сложностях технической реализации, а скорее в политике - такие IT-гиганты как Microsoft и Sun не сумели подружиться и ...
Но сейчас не об этом.

Предполагаю, что Java уже установлен. Проблем с установкой Java возникает редко и особых усилий не нужно (можно просто скачать .bin файлик с java.sun.com и запустить его)

Если возникли проблема с запуском аплетов существует самый простой способ, который должен подойти для большинства браузеров.

Нужно просто создать символическую ссылку /usr/lib/browser-plugins/libjavaplugin.so на файл $JAVA_HOME/plugin/i386/ns7/libjavaplugin_oji.so

Пример:
cd /usr/lib/browser-plugins/
ln -s /usr/java/default/jre/plugin/i386/ns7/libjavaplugin_oji.so libjavaplugin.so

и перезагрузить браузер.
Ни в коем случае не следует копировать файл. Иначе браузер виснет при отображении аплетов

Если что-то не получается существуют еще вариаты:
Для Firefox
Необходимо создать ссылку в папке $HOME/.mozilla/plugins/ (если папки plugins нет, то нужно ее создать)
на файлик libjavaplugin_oji.so с директории $JRE_HOME/plugin/i386/ns7
Пример команды:
mkdir /home/user/.mozilla/plugins (если plugins там нет)
ln -s /usr/java/default/jre/plugin/i386/ns7/libjavaplugin_oji.so /home/user/.mozilla/plugins/libjavaplugin_oji.so

На некоторых сайтах рекомендуют еще создать переменную окружения MOZ_PLUGIN_PATH
(в основном это не обязательно).
Для этого в файлике .bash_profile нужно добавить:
MOZ_PLUGIN_PATH=$HOME/.mozilla/plugins
export MOZ_PLUGIN_PATH
Чтобы переменная окружения заработала нужно либо перелогиниться либо запустить: sh ./.bash_profile

Перезапускаем Firefox на всякий случай проверяем разрешен ли в настройках Java (Настройки-Содержание)

для Opera все намного проще:
Настройки-Дополнительно(закладка)-Содержание(в списке)-ставим галочку "включить Java", нажимаем на кнопке "Параметры Java", указываем путь к Java (у меня /usr/java/jdk1.6.0_10/jre/lib/i386), проверяем путь с помощью кнопки проверки.
Если путь является корректным, то перезапускаем Opera.

И радуемся богатством технологий Java

пятница, 11 апреля 2008 г.

Настройка USB wifi адаптера 3Com OfficeConnect Wireless 108Mbps 11g USB Adapter под Linux Mandriva 2008



После установки точки доступа LinkSYS WRT350N решил приобрести адаптер для нормальной работы с этой точкой доступа.

Решил остановиться на 3CRUSB10075, поскольку на официальном сайте есть готовые драйвера под Linux.
Список уже готовых драйверов для USB WiFi адаптеров нашел на специальном сайте.

Но поскольку на складе этого адаптера небыло и мне предложили по той же цене взять 3COM 3CRUSB20075, я согласился, надеясь на то, что возможно подойдут те же драйвера.

Оказалось не все так просто.

На официальном сайте 3com драйвера для 3CRUSB20075 небыло.
Решил попробовать драйвера 3CRUSB10075 для 3CRUSB20075 (разницу нашли? :) ). Они находятся тут
Но оказалось что: во-первых в моем ядре (2.6.23) уже есть этот драйвер, а именно zd1211 (можно еще скачать c http://sourceforge.net/projects/zd1211/) - это обрадовало :)
во-вторых, он не подошел - это разочаровало :(

Чем больше желания - тем больше настойчивости. На этом не останавливаюсь.

на форуме http://lafox.net/support/index.php?showtopic=14512 нашел, что есть специальный програмный штук - madwifi, которые специально разработан для моего чипсета Atheros.
Узнать какой чипсет стоит в USB Wifi можно с помощью:
lspci (с параметром -v вообще много подробностей)
lspcidrake (удобная примочка Mandriva, которая еще показывает какой модуль назначен адаптеру)
lshw -C network

а можно и на официальном сайте (у меня - Chipset: Atheros AR5523/AR2112)

На том же форуме узнал, что он не поможет для USB устройсв WiFi. Лично я не проверял и решил воспрользоваться ndiswrapper для решения проблемы. (но пишут что madwifi удобней)

Ndiswrapper - утилита для того, чтобы пользователи Linux могли воспользоваться драйверами под M$ Windows для установки драйверов под свою любимую ОС - LINUX. Как же сильно разработчики Linux любят своих товарищей пользователей Linux! Бесплатно!

По умолчанию у меня в Mandriva 2008 уже был установлен ndiswrapper, но без модуля.
Но те RPM-ки, которые были в дистрибутиве не подходили для моего нового ядра 2.6.23.
Поэтому я тешил снести мой предустановленный ndiswrapper (urpme ndiswrapper), скачать с сайта последнюю стабильную версию
и установить с исходников.
Для установки необходимо:
- исходники ядра (в Mandriva их можно установить с rpm-ки)
- wireless-tools

Устанавливаем:
make
make install
ndiswapper -i net5523.inf (драйвер для Windows)
По умолчанию в Windows эти файлы автоматически установились в c:\Program Files\3COM\3Com Wireless 108 Mbps 11g USB Utility. Можно ссылаться сразу на эту примонтированую директорию.
Указывать нужно именно .inf файлик, а .sys файлики должны быть в той же директори.
потом:
ndiswapper -l показывает результаты установки
вывод должен показать какой драйвер установился и присутствует ли само устройство:
net5523 : driver installed
device (A727:6893) present


Загружаем модуль командой
modprobe ndiswapper
Если все нормально, то должнен появиться wlan0 (по умолчанию). Проверить можно командой ifconfig или iwconfig.

Радуемся и улыбаемся всем ближним :)

сканируем сеть:
iwlist wlan0 scan

А дальше можно использовать Приложения Mandriva для подключенияк беспроводной сети.
Альтернатива - wifi-radar и wpa_gui (оба есть под Mandriva 2008 в rpm пакетах)


Помощниками еще могут быть:
ndiswapper -v
iwlist
iwconfig

lsmod ----просмотреть список установленых модулей
modprobe -l ----список доступных модулей ядра
ndiswapper -e net5523 -- убрать модуль с ndiswapper
modprobe -r ndiswapper --- удалить модуль из памяти
и следующие полезные ссылки:
http://wifikiev.com/?q=node/45
http://lafox.net/support/index.php?showtopic=14512
http://madwifi.org/
http://lafox.net/support/lofiversion/index.php/t17210.html
http://www.linuxquestions.org/questions/linux-hardware-18/step-by-step-instruction-to-install-linksys-wpc11-ver.4-wireless-card-284525/
http://lafox.net/support/index.php?showtopic=13253
http://www.builderau.com.au/program/linux/soa/Configure-wireless-support-in-Mandriva-Linux-with-ndiswrapper/0,339028299,339283105,00.htm
http://linuxfornewbies.org/forum/index.php/topic,3.0.html