Как настроить виртуальные хосты, чтобы указать на два разных каталога

У меня есть один домен и поддомен, которые должны указывать на две разные папки, я пробовал эту помощь, но у меня все еще есть проблемы. ( https://www.digitalocean.com/community/tutorials/how-to-set-up-apache-virtual-hosts-on-ubuntu-16-04 )

www.wasamar.com.ng | wasamar.com.ng -> / var / www / html / wasamar / public

это файл виртуального хоста (/etc/apache2/sites-available/wasamar.com.ng.conf)

ServerName wasamar.com.ng ServerAlias www.wasamar.com.ng ServerAdmin info@wasamar.com.ng DocumentRoot /var/www/html/wasamar/public # Available loglevels: trace8, ..., trace1, debug, info, notice, warn, # error, crit, alert, emerg. # It is also possible to configure the loglevel for particular # modules, eg #LogLevel info ssl:warn ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined # For most configuration files from conf-available/, which are # enabled or disabled at a global level, it is possible to # include a line for only one particular virtual host. For example the # following line enables the CGI configuration for this host only # after it has been globally disabled with "a2disconf". #Include conf-available/serve-cgi-bin.conf 

www.ts.wasamar.com.ng | ts.wasamar.com.ng -> / var / www / html / wasamar_ts / public

это файл виртуального хоста (/etc/apache2/sites-available/ts.wasamar.com.ng.conf)

 ServerName ts.wasamar.com.ng ServerAlias www.ts.wasamar.com.ng ServerAdmin info@wasamar.com.ng DocumentRoot /var/www/html/wasamar_ts/public/ # Available loglevels: trace8, ..., trace1, debug, info, notice, warn, # error, crit, alert, emerg. # It is also possible to configure the loglevel for particular # modules, eg #LogLevel info ssl:warn ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined # For most configuration files from conf-available/, which are # enabled or disabled at a global level, it is possible to # include a line for only one particular virtual host. For example the # following line enables the CGI configuration for this host only # after it has been globally disabled with "a2disconf". #Include conf-available/serve-cgi-bin.conf 

Пастебин файла apache.conf http://pastebin.com/dnDfB21y

Как мне это достичь?

Из того, что я вижу, есть несколько проблем, и может быть больше. Для новичков, в то время как вы сказали Apache, где найти корень для каждого сервера, вы не предоставили Apache разрешение на «подачу» файлов из этих каталогов. Вы также не сказали Apache, что это виртуальные хосты. Есть и другие вещи, которые вам нужно делать с файлами conf для виртуального хоста, но, как минимум, вам нужно предоставить Apache разрешение на сервер файлов в каталоге, и вам нужно сообщить Apache, что это определение виртуального хоста. Измененный только для этого минимума, два файла выглядят следующим образом:

Это новый файл виртуального хоста (/etc/apache2/sites-available/wasamar.com.ng.conf):

 <VirtualHost *:80> ServerName wasamar.com.ng ServerAlias www.wasamar.com.ng ServerAdmin info@wasamar.com.ng DocumentRoot /var/www/html/wasamar/public # Available loglevels: trace8, ..., trace1, debug, info, notice, warn, # error, crit, alert, emerg. # It is also possible to configure the loglevel for particular # modules, eg #LogLevel info ssl:warn ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined # For most configuration files from conf-available/, which are # enabled or disabled at a global level, it is possible to # include a line for only one particular virtual host. For example the # following line enables the CGI configuration for this host only # after it has been globally disabled with "a2disconf". #Include conf-available/serve-cgi-bin.conf # At least you need to make the folder accessable for serving by the server. # Versions of Apache, and modules installed can make a difference in what's inside # the Directory directive. But as an example: <Directory "/var/www/html/wasamar_ts/public"> <IfModule mod_authz_core.c> Require all granted </IfModule> <IfModule !mod_authz_core.c> Order allow,deny Allow from all </IfModule> </Directory> </VirtualHost> 

Это новый файл виртуального хоста (/etc/apache2/sites-available/ts.wasamar.com.ng.conf):

 <VirtualHost *:80> ServerName ts.wasamar.com.ng ServerAlias www.ts.wasamar.com.ng ServerAdmin info@wasamar.com.ng DocumentRoot /var/www/html/wasamar_ts/public/ # Available loglevels: trace8, ..., trace1, debug, info, notice, warn, # error, crit, alert, emerg. # It is also possible to configure the loglevel for particular # modules, eg #LogLevel info ssl:warn ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined # For most configuration files from conf-available/, which are # enabled or disabled at a global level, it is possible to # include a line for only one particular virtual host. For example the # following line enables the CGI configuration for this host only # after it has been globally disabled with "a2disconf". #Include conf-available/serve-cgi-bin.conf # At least you need to make the folder accessable for serving by the server. # Versions of Apache, and modules installed can make a difference in what's inside # the Directory directive. But as an example: <Directory "/var/www/html/wasamar_ts/public"> <IfModule mod_authz_core.c> Require all granted </IfModule> <IfModule !mod_authz_core.c> Order allow,deny Allow from all </IfModule> </Directory> </VirtualHost> 

В обоих случаях изменение добавляет первую строку и последние десять строк. Внутри директивы вам, вероятно, понадобятся другие вещи, например, « Options и « AllowOverride .

Чтобы все это работало, вам также нужно что-то еще в вашем основном файле conf, возможно, httpd.conf в какой-то директории, вероятно /etc/apache2/ . Необходима инструкция по включению этих новых файлов в конфигурацию. на его простейшем, основанном на указанных путях, это будет выглядеть так:

 Include sites-available/wasamar.com.ng.conf Include sites-available/ts.wasamar.com.ng.conf 

Если вы включаете только виртуальные хосты в каталог, доступный для сайтов, то вы можете использовать

 Include sites-available/*.conf 

Это будет включать в себя любой файл .conf, поэтому вы можете создавать дополнительные хосты по мере необходимости и не добавлять строку в httpd.conf каждый раз, когда вы это делаете.

Вы можете многому научиться, проводить чтение и перечитывание дней, документацию Apache в Интернете или, возможно, включить в вашу локальную установку Apache. Это может показаться много, но это время хорошо проведено.