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

Настройка индивидуально доступного public_html для каждого пользователя Linux-машины

У меня есть выделенный сервер, на котором у меня есть сайт http://www.example.com

Мне нужно создать пользователя и:


  1. Как мне предоставить ему ftp-доступ?
  2. Как мне настроить public_html и все необходимые данные, чтобы он мог получить доступ к html-файлу из Интернета? Я хочу, чтобы он также мог выполнять скрипты php (что, я не думаю, должно быть проблемой, поскольку веб-сайт на этом сайте уже может это делать).

У меня нет cPanel. Я использую RHEL5 / CentOS


Edit1

В httpd.conf я добавил это:

NameVirtualHost *:80

<VirtualHost *:80>
  ServerName www.example.com
  DocumentRoot /var/www/html/
</VirtualHost>

<VirtualHost *:80>
  ServerName david.example.com
  DocumentRoot /home/david/public_html
</VirtualHost>

<VirtualHost *:80>
  ServerName matthew.example.com
  DocumentRoot /home/matthew/public_html
</VirtualHost>

И убедился, что соответствующие папки существуют с 755 разрешениями.

Сейчас у меня есть доступ к основному сайту, но не к subdomain.example.com.

Ты используешь mod_userdir для настройки public_html и каталогов, которые позволяют пользователям иметь веб-сайты на вашем компьютере.

Если вам это нужно только для одного пользователя, вы также можете настроить простой виртуальный хост для этого каталога. НАПРИМЕР:

Listen 80
NameVirtualHost *

<VirtualHost *>
  ServerName www.yourdomain.com
  DocumentRoot /var/www/html/
</VirtualHost>

<VirtualHost *>
  ServerName subdomain.yourdomain.com
  DocumentRoot /home/username/public_html/
</VirtualHost>

Если у вас есть несколько имен пользователей, для которых вы хотите создать VirtualHosts, у вас есть несколько вариантов. Первый - явно записать их в httpd.conf. Во-вторых, использовать mod_rewrite для поиска неизвестных имен хостов и перевода их в каталог пользователя по умолчанию. http://yourhostname.com/~username/.

Это позаботится о веб-аспекте. Для аспекта FTP такой демон, как ProFTPd DefaultRoot заботится о доступе к каталогу пользователя по FTP. Для DNS вы можете создать подстановочный знак A, чтобы указать * .yourdomain.com на IP-адрес вашего сервера.

В качестве примечания: отредактируйте этот вопрос, указав информацию, которую вы предоставили по вашему вопросу в StackOverflow (и в конечном итоге была перенесена на ServerFault), чтобы у нас не возникало повторяющихся вопросов. Спасибо!