Проблема с разрешениями при синхронизации с каталогом сайтов

Есть ли способ символически связать каталог с помощью ln в мой каталог ~/Sites/ в OS X, чтобы разрешения были правильными, чтобы его можно было просматривать в веб-браузере, когда я занимаюсь веб-разработкой на локальном компьютере?

Это то что я сделал ln -s ~/code/web/yolkportfolio ~/Sites/yolkportfolio После, я chmod 755 в каталоге, но он все еще не читается.

Любая помощь будет принята с благодарностью.

2 ответа

Решение

Проблема была с моим конфигом apache. Вот что позволило ему работать, только FollowSymLinks править.

<Directory "/Users/Joe/Sites/">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

У вас есть несколько вариантов:

1. Если вы работаете apache с другим пользователем (не вашим), и определенно хотите DocumentRoot чтобы указать на какой-либо каталог внутри вашего дома, вы должны изменить права доступа к вашему домашнему каталогу (по умолчанию 750 или же 700) чтобы 755

Я бы порекомендовал это, только если это ваш ноутбук или ваш персональный компьютер, и никто другой не имеет к нему доступа.

2. Первый вариант не подходит, но вы все еще хотите DocumentRoot внутри вашего дома, то вы можете изменить пользователя, который работает apache, Отредактируйте его файл конфигурации и ищите директивы User а также Group,

3. Второй вариант все еще не вариант, и все же... вы хотите вещи в вашем доме. Используйте apache mod_userdir. Со следующей конфигурацией:

<IfModule mod_userdir.c>
        UserDir public_html
        UserDir disabled root

        <Directory /home/*/public_html>
                AllowOverride FileInfo AuthConfig Limit Indexes
                Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
                <Limit GET POST OPTIONS>
                        Order allow,deny
                        Allow from all
                </Limit>
                <LimitExcept GET POST OPTIONS>
                        Order deny,allow
                        Deny from all
                </LimitExcept>
        </Directory>
</IfModule>

Это конфигурация по умолчанию для Apache mod_userdir в Debian. Вы сможете получить доступ к:

/home/your-username/public_html/*

в вашем браузере по следующему адресу:

http://somewhere/your-username/*

4. Наконец, вы можете разместить DocumentRoot где-нибудь еще (/srv/www, /opt/www или что угодно) и настройте права доступа по мере необходимости.

Другие вопросы по тегам