Перевод статьи написанной Ремко Брессерсом (Remco Bressers) о том, как быстро и безболезненно создать свой сервер для синхронизации через расширение Wave для Firefox3 на основе WebDAV сервера. Оригинал статьи всегда можно найти в блоге Ремко.
Mozilla Weave это отличное и очень нужное расширение для отличного и очень нужного Firefox 3 браузера. Это расширение может синхронизировать ваши закладки, cookie, сохраненные пароли, историю и данные форм с удаленным WebDAV сервером от Mozilla.
Так как Weave только на версии 0.2.2 (на момент написания) и проект в стадии разработки, то WebDAV сервер очень медленный и вообще умирает час от часу. Самое приятное в бесплатных сервисах от Mozilla это то, что все возможно, даже сделать свой собственный WebDAV сервер.
Я хочу не только WebDAV сервер, а точно такой же сервер как использует Weave, включая аутентификацию пользователей и защищенный канал. Единственное, что меня беспокоит, так это отсутствие хорошей реализации квоты для WebDAV, кроме использования пропатченного mod_dav и Apache. Как базовая система, будет использоватся CentOS 5.2
Apache
Для начала, установим Apache, и сконфигурируем его
# yum install httpd
# vi /etc/httpd/conf/httpd.conf
Удостоверьтесь, что mod_dav и mod_dav_fs модули загружаются в конфигурационном фале
LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so
<IfModule mod_dav_fs.c>
DAVLockDB /var/lib/dav/lockdb
</IfModule>
Последняя секция здесь по умолчанию потому, что я описываю только то, что действительно нужно для реализации. Теперь, мы создадим VirtualHost
<VirtualHost *:80>
ServerName weave.yourdomain.com
DocumentRoot /home/www/weave.yourdomain.com/www
ErrorLog /var/log/httpd/weave_yourdomain_com-error.log
CustomLog /var/log/httpd/weave_yourdomain_com-access.log combined
<Directory «/home/www/weave.yourdomain.com/www»>
Options Indexes FollowSymLinks
AllowOverride AuthConfig Limit
Order allow,deny
Allow from all
AuthType Basic
AuthName «WebDAV Restricted»
AuthUserFile /home/www/weave.yourdomain.com/passwords
require valid-user
</Directory>
<Location />
DAV On
</Location>
</VirtualHost>
Как вы видите, используем директорию /home/www/weave.yourdomain.com/www как DocumentRoot. Зарегистрированные пользователи из /home/www/weave.yourdomain.com/passwords могут просматривать DocumentRoot. Запретим посторонним просматривать этот каталог с помощью .htaccess. Объявление в секции <Location /> включит DAV для DocumentRoot.
Теперь, все это проделаем:
cd /home/www
mkdir -p weave.yourdomain.com/www/user/homolibere
chown -R apache:apache weave.yourdomain.com
Для каждого пользователя, мы создадим свой .htaccess в их собственных директориях:
cd /home/www/weave.yourdomain.com/www/user/homolibere
vi .htaccess
require user homolibere
chown apache:apache .htaccess
Наканец-то, создадим файл с паролями:
htpasswd -c /home/www/weave.yourdomain.com/passwords remco
New password:
Re-type new password:
Вот и вся установка сервера. Следующий шаг: Weave!
Weave
Я использую Weave 0.2.2, скачанный с <http://people.mozilla.com/~cbeard/weave/dist/>
Если вы никогда не использовали Weave ранее, то необходимо создать профиль на Mozilla. После того, как Weave будет настроен и произведет синхронизацию с сервером Mozilla, можно менять настройки расширения. Если вы сконфигурировали Weave, нажмите на Weave логотип в нижнем правом углу и выберите ‘Preferences’. После этого, выйдете из текущей учетной записи Weave. Нажмите на закладку Advanced и измените сервер на ваш. Логинимся заново, но уже на ваш сервер.
Вот и все! Вы подключены к вашему собственному Weave WebDAV серверу.
Если у вас появились какие-то проблемы, всегда можно глянуть в лог активности. Если у вас ВСЕ ЕЩЕ остались какие-то проблемы, попробуйте обнулить серверные параметры.
Weave через HTTPS / SSL
Если надо защищенное соединение, то понадобится SSL для этого. Установка закончилась когда поставили Apache на CentOS 5. Если есть сомнения, проверь установлены ли mod_ssl и openssl с помощью Yum или того, что привычнее использовать.
Для использования SSL, надо создать еще один VirtualHost рядом с VirtualHost, который создали на порт 80. Конечно, вы можете полностью отключить VirtualHost на порте 80, если действительно не нужно не защищенное соединение.
Добавить в новый VirtualHost надо приблизительно такой конфиг:
<VirtualHost *:443>
ServerName weave.yourcomain.com
DocumentRoot /home/www/weave.yourdomain.com/www
ErrorLog /var/log/httpd/weave_yourdomain_com-error.log
CustomLog /var/log/httpd/weave_yourdomain_com-access.log combined
<Directory «/home/www/weave.yourdomain.com/www»>
SSLRequireSSL
Options Indexes FollowSymLinks
AllowOverride AuthConfig Limit
Order allow,deny
Allow from all
AuthType Basic
AuthName «WebDAV Restricted»
AuthUserFile /home/www/weave.yourdomain.com/passwords
require valid-user
</Directory>
<Location />
DAV On
</Location>
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
SSLCertificateFile /etc/pki/tls/certs/localhost.crt
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
<Files ~ «\.(cgi|shtml|phtml|php3?)$»>
SSLOptions +StdEnvVars
</Files>
<Directory «/var/www/cgi-bin»>
SSLOptions +StdEnvVars
</Directory>
SetEnvIf User-Agent «.*MSIE.*» \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
</VirtualHost>
Примечание
Заметьте, что если использовать «самоподписанный» сертификат (проще всего), надо перейти https://weave.yourdomain.com/ и принять его, перед тем как начнете работать с Weave. Если этого не сделать, Weave выдаст ошибку “Username / password incorrect”.
Примечание #2
Если вы используете Weave 0.2.5 и заметили высокое использование памяти и CPU, отключите синхронизацию вкладок. Это известный баг версии 0.2.5 который потребляет вашу память и CPU.
Скачать Weave можно по ссылке: http://people.mozilla.com/~cbeard/weave/dist/latest-weave.xpi
Перевод (с) Homolibere












Submitting Comment, Give me a second...