Pull to refresh

Собственный MobileMe Сервер

Reading time6 min
Views691
image

Плохо что у Apple платный аккаунт на MobileMe, а иогда нужно хранить данные в сети для пользования ими из любой точки. Но если нет денег или нет кредитной карточки, которой можно оплатить аккаунт, то это не помеха если поставить…замечательную програму dotMac, которая позволит Вам совершать в:
10.5 “Leopard”
  • .Mac prefpane
  • iSync
  • iDisk
  • iDisk sync
  • Backup

10.4 “Tiger”
  • .Mac prefpane
  • iSync support
  • iDisk
  • iDisk sync
  • Backup

Но для этого нужно будет хорошо потрудится

1. Скачиваем dotmac


svn checkout dotmac.googlecode.com/svn/trunk ~/dotmac

2. Настраиваем Apache


И так создаем сервер на своей машине, для этого в Leopard всё есть (но Apache не правильно работает). Сначало сделаем backup изменяемых файлов Apache:
sudo cp /usr/libexec/apache2/mod_dav.so /usr/libexec/apache2/mod_dav.so.default
sudo cp /usr/libexec/apache2/mod_dav_fs.so /usr/libexec/apache2/mod_dav_fs.so.default


теперь качаем и разархивируем Apache в Home директорию:
cd ~
curl -O archive.apache.org/dist/httpd/httpd-2.2.6.tar.gz
gnutar -xzf httpd-2.2.6.tar.gz


Теперь пропишем патч для квоты dotmac, что бы он включил поддержку iDisk квоты
cd ~/httpd-2.2.6
patch -p1 < ~/dotmac/Patches/Apache/quota.patch.txt
patch -p1 < ~/dotmac/Patches/Apache/ampquotefix.patch


Далее сконфигурируем и установим пропатченные модули (с помощью CFLAGS устанавливаем поддержку всех платформ)
./configure CFLAGS='-arch x86_64 -arch i386 -arch ppc -arch ppc64' --enable-modules=most --enable-mods-shared=all
make


меняем оригинальные модули на патченные
sudo cp ./modules/dav/main/.libs/mod_dav.so /usr/libexec/apache2/mod_dav.so
sudo cp ./modules/dav/fs/.libs/mod_dav_fs.so /usr/libexec/apache2/mod_dav_fs.so


3. Настраиваем Perl


Тут ничего качать не надо, всё есть, так что будем настраивать.
Его вызываем следующим образом:
sudo su
cpan


он спросит, хотите ли настроить вручную, пишите no, все будет сделано автоматически
теперь строка ввода поменялась на cpan> значит можно устанавливать модули
install HTTPD::UserAdmin
install MD5
install XML::DOMcpan


на последней команде спросит, ставить ли в очередь зависимости, ответе yes.
Продолжаем
install HTTP::DAV

если Вы используете G4 или i386 процессор то добавте
install XML::LibXML
q


если у Вас G5 или Xeon процессор сделать следующие действия:
get XML::LibXML
look XML::LibXML
# perl Makefile.PL
# nano Makefile


нас перекинет обратно в баш, где нужно будет отредактировать /var/root/.cpan/build/XML-LibXML-1.66/Makefile.PL, в нем меняем -arch i386 -arch ppc на -arch ppc64 -arch x86_64 ( в 3 местах)
# make install
# exit
q
# exit


где # это команды Bash

4. Устанавливаем dotmac tree и Perl модули


копируем dotmac в нужный каталог
sudo cp -r ~/dotmac/server/var/www/dotmac /Library/WebServer/dotmac
sudo mkdir /Library/WebServer/dotmac/userxml/testuser


Теперь выставляем права на папки dotmac:
sudo chown -R www:www /Library/WebServer/dotmac
sudo chmod -R 755 /Library/WebServer/dotmac
sudo chown -R root:wheel /Library/WebServer/dotmac/private
sudo chown www:www /Library/WebServer/dotmac/private/iDiskUsers


5. Пароль Админа


Стандартный пароль администратора нужно заменить на что-нибудь защищенное и при этом легко запоминаемым для Вас
sudo htdigest /Library/WebServer/dotmac/private/iDiskAdmins idisk.mac.com admin

После чего система попросит ввести пароль и подтвердить его

6. Копируем измененные конфигурационные файлы


копируем файлы конфигурации dotMac и меняем права, что бы они грузились вместе с Apache
sudo cp ~/dotmac/extras/platform_specific/Leopard/dotmac.conf /etc/apache2/other/dotmac.conf
sudo chown www:www /etc/apache2/other/dotmac.conf
sudo cp ~/dotmac/extras/platform_specific/Leopard/httpd-ssl.conf /etc/apache2/other/httpd-ssl.conf
sudo chown www:www /etc/apache2/other/httpd-ssl.conf

теперь находим my $dotMacIPAddress = '###.###.###.###';

и меняем ###.###.###.### на свой IP

7. Проверяем Apache server


Для полной уверености перезагрузите компьютер. Проверяем Apache на правильность настройки через apachectl. Вы не должны увидеть ошибок! Если все же появились, то перейдите в Leopard Installation Guide #Troubleshooting|troubleshooting для поиска метода устранения их.

sudo apachectl configtest

Запускаем /Applications/Utilities/Console.app и проверяем LOG FILES > /var/log > apache2 для просмотра выполнения сервера Apache. Запустите сервер Apache используя System Preferences > Sharing включаем Web Sharing. У Вас не должно быть никаких ошибок и предупреждений в Console.app.Если все же появились, то перейдите в Leopard Installation Guide #Troubleshooting|troubleshooting для поиска метода устранения.

8. Настраиваем hosts на клиентской машине


Сейчас будем обманывать .mac, что бы он не лез на Apple's .mac сервер. (Помните что у сервера должен быть статический IP адрес). На каждой клиентской машине, необходимо отредактировать hosts файл, что бы он не лез на DNS сервер для настоящего адреса сервера .mac. Открываем /etc/hosts файл используя nano или любой другой текстовый редактор.

sudo nano /etc/hosts

Переходим в конец файла и вписываем (меняя ###.###.###.### на свой IP):

###.###.###.### www.mac.com syncmgmt.mac.com idisk.mac.com configuration.apple.com lcs.mac.com certinfo.mac.com delta.mac.com notify.mac.com publish.mac.com homepage.mac.com
###.###.###.### www.mac.com. syncmgmt.mac.com. idisk.mac.com. configuration.apple.com. lcs.mac.com. certinfo.mac.com. delta.mac.com. notify.mac.com. publish.mac.com. homepage.mac.com.


Сохраняем (ctrl-o) и выходим (ctrl-x). Вам не нужно перегружаться для входа в силу этих изменений, но нужно очистить DNS кэш системы, следующей командой:
Mac OS X 10.5 Leopard:
sudo dscacheutil -flushcache

Mac OS X 10.4 Tiger:
lookupd -flushcache

9. Создание аккаунта


Для каждого пользователей прийдется создавать аккаунт вручную через iDiskAdmin веб-форму, для установки пароля и квоты.

Скопируйте образец папки iDisk в USERNAME iDisk папку:

sudo cp -r /Library/WebServer/dotmac/skel /Library/WebServer/dotmac/idisk/USERNAME
sudo chown -R www:www /Library/WebServer/dotmac/idisk/USERNAME


Используя Safari, зайдите на configuration.apple.com/idiskAdmin под админом и создайте новый пользовательский аккаунт USERNAME и установите квоту.

Перезапустите сервер:

sudo apachectl graceful

10. Настройка клиентского сертификата


dotMac сервер предоставит сертификат, который клиент должен подтвердить и установить перед подключением к .mac. Этот сертификат необходимо, вручную, добовить в список доверительных сертификатов для каждого клиента.

Используя Finder, подсоеденитесь (cmd-k) к idisk.mac.com/USERNAME

Вам предложат подтвердить сертификатe. Выберите Show Certificate и перетащите иконку сертификата на Рабочий стол для создания dot.mac.com.cer файла.

Откройте /Applications/Utilities/Keychain Access.app а выберите login keychain (если это необходимо, щелкните на кнопке Показать Keychains внизу слева). Перетащите сертификат с Рабочего Стола на Keychain Access и выберите Always Trust when prompted.

11. Настройка клиента .mac


Открываем System Preferences > .mac и вбиваем имя и пароль.

иногда может понадобиться перезапустить dotMac сервер

12. Готово!


Теперь у Вас полноценный .mac аккаунт с поддержкой iDisk и iSync

Теперь можно удалить исходники Apache и dotMac

rm -r ~/httpd-2.2.6
sudo rm -r ~/dotmac


Возможные проблемы


Если у вас возникли проблемы, попробуйте запустить Sudo apachectl configtest и просмотреть в Console.app лог ошибок и найти способы решения проблем с вашей конфигурацией Apache и модулями. Много проблем рассмотрено на сайте dotMac.

Симптом: Ошибка старта/теста сервера Apache из-за DAVSATMaxAreaSize.

org.apache.httpd90519 $parms->add_config() has failed: Invalid command 'DAVSATMaxAreaSize', perhaps misspelled or defined by a module not included in the server configuration at /System/Library/Perl/Extras/5.8.8/darwin-thread-multi-2level/Apache2/PerlSections.pm line 203.\n

Проблема: Установленный Apache DAV модуль(и) (mod_dav.so and/or mod_dav_fs.so) не пропатчены, что бы поддерживать DAVSATMaxAreaSize. У Вас установлен не корректный Apple update для сервера Apache.

Решение: заново пропатчите, создайте и установите модули mod_dav.so и mod_dav_fs.so для Apache.

Симптом: Ошибка старта/теста сервера Apache из-за отсутствия картинок.

Can't load '/Library/Perl/5.8.8/darwin-thread-multi-2level/auto/XML/LibXML/LibXML.bundle' for module XML::LibXML: dlopen(/Library/Perl/5.8.8/dacd rwin-thread-multi-2level/auto/XML/LibXML/LibXML.bundle, 1): no suitable image found. Did find:\n\t/Library/Perl/5.8.8/darwin-thread-multi-2level/auto/XML/LibXML/LibXML.bundle: no matching architecture in universal wrapper at /System/Library/Perl/5.8.8/darwin-thread-multi-2level/DynaLoader.pm line 230"

Проблема: Модуль(и) которые Вы скомпилировали (mod_dav.so, mod_dav_fs.so or XML::LibXML) собраны не под Вашу архитектуру. Вы можете проверить это, используя следующую команду (замените соответствующие пути и имени файла).

file /usr/libexec/apache2/mod_dav.so

Решение: Вы должны быть уверены, что соответствующие флаги компилятора установлены верно. По умолчанию включены только i386 и ppc7400 (G4).

Готово!
Tags:
Hubs:
Total votes 12: ↑10 and ↓2+8
Comments6

Articles