Как создать общедоступную папку HTML в Ubuntu?
Простой вопрос, но по какой-то причине я не смог найти точный ответ на Google:
У меня есть новая установка Ubuntu на Slicehost и вы хотите сделать общедоступный каталог в моем домашнем каталоге для простого веб-сайта, содержащего кучу статических HTML файлов. Как мне это сделать? Это только вопрос ввода mkdir public_html
и установки разрешений, или есть более чистый способ? (Я помню, в прошлом у меня были проблемы, когда каждый раз, когда я копировал файл в свой каталог public_html, мне пришлось бы вручную устанавливать его разрешения, что было довольно неприятно.)
Ответы
Ответ 1
Предполагая, что вы уже установили apache, выполните следующие действия:
sudo a2enmod userdir
sudo service apache2 reload
Первая команда включает в себя userdir apache mod, который делает именно то, что вы хотите. Вторая перезагружает конфигурации apache, чтобы начать использовать новую конфигурацию.
Чтобы установить apache2:
sudo apt-get install apache2
Конечно, вам также необходимо убедиться, что разрешения в вашей папке public_html позволяют пользователю www-data видеть файлы там - 755 обычно работает хорошо. Для этого:
mkdir ~/public_html
chmod -R 755 ~/public_html
Это будет рекурсивно (-R) проходить через ваш public_html и устанавливать разрешения для 755 (владелец rwx и обе группы и другие r-x, r-x).
Ответ 2
Другие ответы находятся на правильном пути с mod_userdir
, но при использовании этого сайта ваш базовый URL-адрес http://www.yourdomain.com/~username/
- например, файл /home/username/public_html/index.html
будет доступен как http://www.yourdomain.com/~username/index.html
. Если вы хотите, чтобы ваши файлы были доступны в корне домена, например http://www.yourdomain.com/index.html
, тогда вам нужно будет поместить директиву
DocumentRoot /home/username/public_html
в конфигурационном файле Apache.
Кстати, этот вопрос больше подходит для форумов Slicehost.
Ответ 3
Вам нужно использовать mod_userdir для Apache, иначе вам нужно установить символические ссылки из /var/www/
или где угодно.
Ваша проблема с разрешениями связана с тем, что у Apache нет доступа для чтения к вашим файлам. Вы должны разрешить доступ для чтения к www-data
(или независимо от того, что пользователь задает, зависит от дистрибутива).