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

Доступ к файлу только с именем хоста или IP - без домена?

Редактировать: Я думаю, что отчасти проблема в том, что мне нужно было использовать порт 8080, но я все еще получаю сообщение «Невозможно подключиться». Что мне нужно настроить в / etc, чтобы сделать это доступным?

-

Кажется вероятным, что это очевидный вопрос, но у меня проблемы с поиском какой-либо полезной информации. Обычно при доступе к файлам в определенном каталоге на сервере я могу создать виртуальный хост, назначить домен, расположение корневого каталога и т. Д., Однако я в ситуации, когда у меня есть место на сервере и мне нужно получить доступ к файлам только с имя хоста. Это возможно?

Например, предположим, что имя хоста - 123hostname.com, а файл, к которому я хочу получить доступ, находится в /home/sub-directory/filename.php. Как мне добраться до него через браузер?

Я пробовал:
http://123hostname.com/home/sub-directory/filename.php

... и некоторые другие варианты этой темы (которые я не могу опубликовать, потому что новые пользователи могут использовать только одну ссылку в сообщениях). Но в целом застрял. Любая помощь - даже если это просто сообщить мне, что это невозможно без дополнительной настройки - была бы замечательной. Спасибо!

Предоставление доступа для чтения к каждому файлу в системе через http (по крайней мере, к файлам, которые может читать пользователь Apache) обычно не считается идеальным. Однако, если вы действительно хотите, это можно сделать.

На ваш вопрос есть два потенциально полезных ответа. Первый - настроить VirtualHost по умолчанию (или вообще не настраивать VirtualHost). Второй - использовать mod_userdir.

Если на веб-сервере существуют записи VirtualHost, которые привязаны к первичному IP-адресу веб-сервера (или, по крайней мере, к IP-адресу, к которому разрешается имя хоста сервера), то по умолчанию будет использоваться первая указанная запись VirtualHost. Его содержимое будет отображаться при доступе к Apache либо по IP-адресу, либо по имени хоста, которое разрешается в IP и не имеет другой подходящей записи.

Если нет необходимости в записях VirtualHost на основном IP-адресе, Apache будет обслуживать контент из каталога, назначенного директиве DocumentRoot.

Если вы хотите обслуживать контент из нескольких разных учетных записей пользователей без настройки каких-либо VirtualHosts или псевдонимов, вы, вероятно, захотите использовать mod_userdir. Документация Apache дает лучшее описание mod_userdir, чем я предлагаю.

http://httpd.apache.org/docs/1.3/mod/mod_userdir.html

Обычно веб-серверы настроены так, чтобы разрешать доступ только к пользовательским файлам в определенном каталоге, обычно это каталог public_html. Формат URL-адреса будет http://example.com/~user/dir/file.html который будет переведен на /home/user/public_html/dir/file.html

Это сделано из соображений безопасности. Представьте, что если бы кто-нибудь мог получить доступ к вашему каталогу .ssh_keys из Интернета, любой мог бы взломать эту учетную запись.

По этой причине у вас нет возможности напрямую делать то, что вы хотите.

С другой стороны, нет ничего плохого в доступе к серверу по имени хоста. Виртуальный хост - это просто другое имя того же сервера, который обычно обслуживает другой контент. С виртуальным хостом вы ничего не можете сделать, чего нельзя сделать и с правильным именем хоста.