Как я могу сделать общедоступную папку HTML в Ubuntu? - PullRequest
25 голосов
/ 09 февраля 2009

Простой вопрос, но по какой-то причине я не смог найти точный ответ в Google:

У меня установлена ​​свежая версия Ubuntu на Slicehost, и я хотел бы сделать публичный каталог в моей домашней директории для простого сайта, содержащего кучу статических HTML-файлов. Как мне это сделать? Это просто вопрос ввода mkdir public_html и установки разрешений, или есть более чистый способ? (Я помню, в прошлом у меня были проблемы, когда каждый раз, когда я копировал файл в каталог public_html, мне приходилось вручную устанавливать его разрешения, что было довольно неприятно.)

Ответы [ 3 ]

33 голосов
/ 09 февраля 2009

Если вы уже установили apache, выполните следующие действия:

sudo a2enmod userdir
sudo service apache2 reload

Первая команда включает мод apd userdir, который делает именно то, что вы хотите. Вторая перезагружает конфигурации Apache, чтобы начать использовать новую конфигурацию.

Для установки apache2:

sudo apt-get install apache2

Конечно, вам также необходимо убедиться, что права доступа к вашей папке public_html позволяют пользователю www-данных видеть там файлы - 755 обычно работает хорошо. Для этого:

mkdir ~/public_html
chmod -R 755 ~/public_html

Это будет рекурсивно (-R) проходить через ваш public_html и устанавливать права доступа на 755 (владелец rwx, и группа, и другие r-x, r-x).

10 голосов
/ 09 февраля 2009

Другие ответы находятся на правильном пути с 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.

2 голосов
/ 09 февраля 2009

Вам необходимо использовать mod_userdir для Apache, в противном случае вам нужно установить символические ссылки с /var/www/ или где-либо еще.

Ваша проблема с разрешениями связана с тем, что у Apache нет прав на чтение ваших файлов. Вам необходимо разрешить доступ на чтение к www-data (или к тому, что пользователь использует; для конкретного дистрибутива).

...