Проблемы с разрешениями на смонтированном томе с Apache

Итак, у меня есть сервер Mac Snow Leopard (сервер A), и я использую для него собственный Apache, но в последнее время он работает плохо, и я хочу использовать встроенный. Но поскольку это производственный сервер, Я хочу сначала протестировать это, установив соответствующие каталоги на моем втором сервере (Сервер B) и протестировав его.

Итак, я монтирую каталог «/ Atlas» (всю мою CMS) сервера A на сервере B с помощью этой команды:

mount_hfs afp://username:password@server_a/Atlas /Atlas

После создания каталога / Atlas вручную.

Теперь при указании виртуального хоста иметь DOCUMENT_ROOT в "/ Atlas / Sites / sandman /" (это правильный путь для этого сайта на сервере A) и переходе на сайт Apache сообщает об ошибке 403 (доступ запрещен) и говорит, что это не может прочитать файл («У вас нет разрешения на доступ к запрошенному объекту. Он либо защищен от чтения, либо не доступен для чтения сервером.»)

Теперь файлы принадлежат пользователю «sandman» на обеих машинах, а Apache на сервере A запускается пользователем «sandman», но на встроенном Apache на сервере B он принадлежит пользователю «_www» с UID 70. файлы доступны для чтения "миром", поэтому пользователь _www ДОЛЖЕН иметь возможность читать их нормально.

Кто-нибудь знает, в чем может быть проблема? Я надеялся, что, возможно, смогу хранить файлы CMS на сервере C (то есть на третьем сервере) и монтировать их на обоих серверах, а затем балансировать нагрузку между ними.

Любые идеи? Спасибо!


person Sandman    schedule 05.01.2011    source источник


Ответы (2)


Убедитесь, что вы действительно можете читать файлы как пользователь _www и можете ли вы их перечислить.

Может быть, вам не хватает каталога прямо для пользователя _www. Это право выполнения в каталогах для систем * Nix.

person regilero    schedule 06.01.2011

От имени какого пользователя вы запускали команду монтирования? (примечание: я предполагаю, что это действительно mount_afp, а не mount_hfs.) Этот пользователь в конечном итоге станет «владельцем» соединения с сервером и будет единственным, кто получит аутентифицированный доступ к файлам сервера; другие пользователи клиентского компьютера AFP получат эквивалент гостевого доступа к файлам сервера. Вы можете просмотреть принадлежность соединения с помощью команды mount:

$ mount
/dev/disk0s2 on / (hfs, local, journaled)
devfs on /dev (devfs, local, nobrowse)
map -hosts on /net (autofs, nosuid, automounted, nobrowse)
map auto_home on /home (autofs, automounted, nobrowse)
afp_0TQ55t0XgDP800dNMO0Pyetl-1.2d00000a on /Volumes/Public (afpfs, nodev, nosuid, mounted by gordon)

Из вашего описания похоже, что он должен работать, несмотря на это (поскольку файлы доступны для чтения всем на сервере B) ... но все же, возможно, стоит выполнить монтирование под _www идентификатором пользователя.

person Gordon Davisson    schedule 06.01.2011
comment
Идентификатор пользователя _www не может войти в выполнение команд оболочки, поэтому я не могу на самом деле смонтировать его как этот пользователь, и мне понадобится некоторая форма ov crontab mainetence, чтобы монтирование исчезло по какой-либо причине ... - person Sandman; 12.01.2011
comment
_www не может войти в систему, но вы все равно можете выполнить монтирование как _www с sudo -u _www mount_afp ... - person Gordon Davisson; 12.01.2011
comment
Хммм, хорошо, я разберусь с этим. - person Sandman; 21.01.2011