Редактировать: Я думаю, что отчасти проблема в том, что мне нужно было использовать порт 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, чем я предлагаю.
Обычно веб-серверы настроены так, чтобы разрешать доступ только к пользовательским файлам в определенном каталоге, обычно это каталог public_html. Формат URL-адреса будет http://example.com/~user/dir/file.html который будет переведен на /home/user/public_html/dir/file.html
Это сделано из соображений безопасности. Представьте, что если бы кто-нибудь мог получить доступ к вашему каталогу .ssh_keys из Интернета, любой мог бы взломать эту учетную запись.
По этой причине у вас нет возможности напрямую делать то, что вы хотите.
С другой стороны, нет ничего плохого в доступе к серверу по имени хоста. Виртуальный хост - это просто другое имя того же сервера, который обычно обслуживает другой контент. С виртуальным хостом вы ничего не можете сделать, чего нельзя сделать и с правильным именем хоста.