Как создать веб-страницы в моем домашнем каталоге и сделать так, чтобы веб-сервер обслуживал их в моем веб-браузере?

9

Я недавно установил веб-браузер Apache в моем Debian Squeeze (используя команду taskselи выбрав [ ] Web server). Теперь я запускаю его через, sudo /etc/init.d/apache2 startа затем захожу в браузер и набираю, http://localhostи появляется страница « Это работает! », Указывающее, что я успешно установил и запустил веб-сервер.

Теперь я знаю, что HTML-файл для страницы « Это работает! » Находится внутри, /var/wwwи меня убеждают, что если я создаю новые страницы, мне нужно вставить их в этот каталог. Создать страницы было бы легко, но при этом мне нужно вводить sudoкоманду каждый раз, когда я создаю / редактирую файл в /var/wwwкаталоге.

Я хотел бы знать, как я могу создать каталог в моем HOME, например, ~/html/test/index.htmlи отображается ли эта страница при вводе адреса http://localhost/html/testв адрес моего браузера?

Эрик
источник

Ответы:

6

Как сказал Ульрих, вы можете сделать это, включив userdirмодуль.

В Debian это можно сделать с помощью a2enmodутилиты, которая включает или отключает модули Apache. См man a2enmod.

В этом случае вам просто нужно запустить

sudo a2enmod userdir

и затем перезапустите сервер Apache, чтобы изменения вступили в силу. Обратите внимание, что модуль userdir находится в базовом Apache, поэтому вам не нужно устанавливать ничего лишнего. Для справки, конфигурация userdir находится в /etc/apache2/mods-available/userdir.conf.

Все a2enmod, что здесь делается, - это создание символической ссылки из /etc/apache2/mods-enabledкаталога на файлы /etc/apache2/mods-available/{userdir.conf/userdir.load}. Вы также можете сделать это вручную. Т.е.

faheem@orwell:/etc/apache2/mods-enabled$ ls -la userdir.*
lrwxrwxrwx 1 root root 30 Feb  6 03:11 userdir.conf -> ../mods-available/userdir.conf
lrwxrwxrwx 1 root root 30 Feb  6 03:11 userdir.load -> ../mods-available/userdir.load

Затем поместите любой веб-материал, который вы хотите сделать доступным ~/public_html, и тогда он должен быть доступным http://servername/~username.

Фахим Митха
источник
1
Хотя ответ Ульриха почти такой же, как этот, я отметил это как ответ, потому что он более подробный.
Эрик
6

Вы, вероятно, ищете mod_userdir : «Этот модуль позволяет обращаться к пользовательским каталогам с использованием синтаксиса http://example.com/~user/ ».

Не бойтесь возиться с конфигурацией, просто сделайте резервные копии файлов конфигурации и убедитесь, что ваш брандмауэр блокирует ваш Apache для внешнего мира.

Ульрих Шварц
источник
1
Спасибо @Ulrich Schwarz, я думаю, это то, что мне нужно. Итак, как мне это настроить? Я еще не очень знаком с Apache (только установил его сейчас) и не знаю, как поступить с вашим предложением.
Эрик
2

Лично я использовал символические ссылки , в зависимости от проекта, чтобы ссылка была внутри /var/www/или /var/wwwсама была ссылкой на одну из папок в моем домашнем каталоге (например:) ~/projects/www. Таким образом я могу избавиться от символа "~". Иногда это также полезно для меня, когда я хочу показать что-то другому зрителю (через что-то вроде:) http://253.153.87.231/page.html, и кто-то не очень знаком с клавиатурой, поэтому он просто не может найти символ «~» на клавиатуре (- вроде как искать ключ с надписью "любой") .

Фахим и Ульрих, вероятно, в любом случае уже дадут вам лучший и наиболее рекомендуемый ответ (по крайней мере, когда речь идет о безопасности).

Janar
источник
Это то, что я хочу сделать, это работает хорошо? Можете ли вы дать синтаксис для создания этих ссылок?
Менаше
0

Теперь вы можете сделать это, изменив веб-корень, но вы действительно не хотите, и вот почему:

Если злоумышленник обнаружит уязвимость в Apache или в вашем коде, он сможет получить доступ к веб-корню. Где все твои вещи ...

Корень сети, как правило, защищен, с элементами управления, чтобы остановить взломщиков. Ваш дом, возможно, не так хорошо защищен.

Рори Олсоп
источник