Назад | Перейти на главную страницу

apache2 UserDir Запретить всем, кроме меня

Я установил Debain 6 VPS для веб-разработки / персонального хостинга PHP и у меня есть быстрый вопрос:

Я хочу разместить производственный код в: /var/www/site.com, а код разработки - в / home / username / public_html / site

Я установил userdir.conf (думаю, по умолчанию):

<IfModule mod_userdir.c>
    UserDir public_html
    UserDir disabled root

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

Я могу получить доступ к обеим кодовым базам через: www.site.com и www.site.com/~username/site соответственно.

Мой вопрос: как лучше всего ограничить www.site.com/~username/site (мой проект в стадии разработки) внешним миром? (.htaccess, настройка виртуального хоста, другое)

Если вы подключаетесь к VPS с фиксированного IP-адреса, измените Allow from all к Allow from IP.AD.RE.SS быстро и легко. Если вы этого не сделаете, вы можете настроить базовая аутентификация используя файл .htaccess. Поставить что-то вроде

AuthType Basic
AuthName Private
Authuserfile /path/to/.htpasswd
Require valid-user

В файле public_html / .htaccess.

Инициализировать файл .htpasswd

htpasswd -c /path/to/.htpasswd Purplefish32
New password: mypassword
Re-type new password: mypassword
Adding password for user Purplefish32

Затем убедитесь, что ваша основная конфигурация apache имеет подходящий allowoverride директива например AllowOverride AuthConfig. Если потребуется, перезапустите apache, и теперь вас попросят ввести пароль для доступа к содержимому ваших файлов разработки.