ryg

Права доступа к Вашим файлам на сайтах и настройка виртуального хостинга

Права доступа к сайтам под управлением OS X.

Пользовательский уровень

Чтобы дать право для записи файлов из web интерфейса. Например для папки ~/Sites/testsite

sudo chmod -R a+w ~/Sites/testsite

Но в этом случае Вы открываете доступ всем пользователям к данной папке и ее дереву. Можно открыть доступ только для пользователей apache:

sudo chown -R _www ~/Sites/testsite

Системный уровень

Если Вы решили, что Ваши сайты будут размещаться не на уровне пользователя, а в корневом каталоге  документов apache, то команда открытия доступа для пользователя apache будет следующая:

sudo chown -R _www /Library/WebServer/Documents/testsite

Существует еще один способ обеспечить доступ из web интерфейса, не меняя прав доступа к файлам. Для этого необходимо изменить основного пользователя apache. К наму можно прибегнуть, если Вы единственный пользователь web сервера. Для этого можно изменить в файле httpd.conf основного пользователя данного сервера.

Сначала в терминале уточните точное написание своего имени командой:

$id

uid=501(Admin) gid=20(staff) groups=20(staff),.......

Получив ответ со своим именем и группой откройте файл 

sudo nano  /etc/apache2/httpd.conf

Наидите в нем записи 

User _www
Group _www

Поставьте перед ними символ комментария '#' и добавьте свое имя и групп в этом же формате.

После этих действий перезапустите apache.

sudo apachectl restart

Настройка виртуального хостинга.

После настройки apache и MySQL можно настроить и виртуальный хостинг на своем компьютере. Данная настройка позволит Вам обращаться минуя указание адреса сайта в виде localhost/~Username. Данная настройка достаточно простая и не займет много времени. 

sudo nano /etc/apache2/httpd.conf

Сначала необходимо удалить комментарии в файле httpd.conf со следующих строк:

Include /private/etc/apache2/extra/httpd-vhosts.conf

и

LoadModule vhost_alias_module libexec/apache2/mod_vhost_alias.so

После этого внести информацию о Ваших сайтах в файл httpd-vhosts.conf

sudo nano /etc/apache2/extra/httpd-vhosts.conf

В данном файле есть пример описания сайта:

<VirtualHost *:80>

    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "/usr/docs/dummy-host.example.com"
    ServerName dummy-host.example.com
    ServerAlias www.dummy-host.example.com
    ErrorLog "/private/var/log/apache2/dummy-host.example.com-error_log"
    CustomLog "/private/var/log/apache2/dummy-host.example.com-access_log" common
</VirtualHost>

На его основании создаете свою запись (пусть будет bash.local)

<VirtualHost *:80>

    ServerName bash.local
    ServerAlias www.bash.local
    DocumentRoot "/Users/USERNAME/Sites/bash"
    ErrorLog "/private/var/log/apache2/bash-error_log"
    CustomLog "/private/var/log/apache2/bash.com-access_log" common
    ServerAdmin web@mail.ru
</VirtualHost>

В данный блок входят имена сайта, место расположения его на диске (~/Username/bash), файл протоколирования ошибок, файл логов и почта админа сайта.

Сохраните файл httpd-vhosts.

Изменение файла hosts

sudo nano /etc/hosts

Добавьте строку с указанием ip сервера и именем сайта. В данном случае bash.local, адрес локального web сервера по умолчанию 127.0.0.1

127.0.0.1 bash.local www.bash.local

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

sudo apachectl restart 

Проверьте работоспособность, обратившись по имени сайта в браузере. Если не работает, то попробуйте указать протокол перед именем сайта (http://) и проверить системные файлы apachе ошибки:

sudo apachectl -t

При включении виртуального хостинга у Вас отключается доступ к http://localhost. Для того, чтобы его включить необходимо описать его как виртульный сервер. Открываем файл  httpd-vhosts снова:

sudo nano /etc/apache2/extra/httpd-vhosts.conf

Добавляем следующие строки:

<VirtualHost *:80>
ServerName localhost
DocumentRoot /Library/WebServer/Documents/
</VirtualHost>

Сохраняем и перезапускаем apache

sudo apachectl restart 

Tags: