У меня есть сервер Apache, который я пытаюсь настроить, да, я использую новейшую версию. Я хочу, чтобы основной домен был веб-сайтом, а затем я хочу создать дополнительный домен в качестве форума для участников. У меня есть настройка поддомена, и у меня также есть настройка файла conf
внутри каталога apache и т. Д. Я не знаю, что я делаю неправильно, он просто перенаправляет меня на главную страницу моего сайта вместо того, чтобы перейти на страницу .html
, которую я настроил для тестирования.
Вот код моего .conf
файла:
<VirtualHost *:443>
# ServerName forum.example.com
ServerAdmin root@example.com
ServerName forum.example.com
ServerAlias forum.example.com
DocumentRoot /var/www/forum.example.com
<Directory /var/www/forum.example.com>
Options -Indexes +FollowSymLinks +MultiViews
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
<VirtualHost *:80>
# ServerName forum.example.com
ServerAdmin root@example.com
ServerName forum.example.com
ServerAlias forum.example.com
DocumentRoot /var/www/forum.example.com
<Directory /var/www/forum.example.com>
Options -Indexes +FollowSymLinks +MultiViews
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
У меня нет файла .htaccess
AFAIK
Хорошо ... наконец-то разобрались с проблемами ... заставили его работать
прежде всего на вашем хосте dns ... вам нужно добавить запись для вашего имени сервера Я использую namecheap.com .. Я добавил A + Dynamic DNS Record
с хостом john и моим IP-адресом ... так же, как моя запись A для www ... Я предполагаю, что это просто стандарт A Record
где-нибудь еще
, как только это было там. ... может пройти некоторое время, прежде чем вы действительно сможете пропинговать его, как только сможете ... вам будет хорошо, если все остальные настройки были правильными
Хорошо, теперь для файлов конфигурации, которые я использовал ... Я создал два в sites-available
..
Первый из них был назван 001-john.conf
. Я обнаружил, что важно иметь конец файла в .conf
, иначе вы не сможете использовать команду, которая, казалось, решит проблему.
В этой конфигурации я добавил следующее:
<VirtualHost *:80>
ServerAdmin webmaster@mysite.com (of course you would use your domain name instead of mysite.com)
ServerName john.mysite.com
ServerAlias john.mysite.com
DocumentRoot /web/john (of course you would make the root the path to the folder where the files are stored)
<Directory />
Options FollowSymLinks ExecCGI
AllowOverride ALL
</Directory>
<Directory /web/john/>
Options ExecCGI FollowSymLinks Includes Indexes (or whatever directives you want)
AllowOverride ALL
order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /web/plus/cgi-bin/ (if you wanted to create a cgi bin use your correct path for this)
<Directory "/web/plus/cgi-bin">
AllowOverride ALL
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/errorjohn.log
CustomLog /var/log/apache2/accessjohn.log combined
</VirtualHost>
второй файл конфигурации был для ssl, и я назвал его 001-john-ssl.conf
Он выглядел так:
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin webmaster@mysite.com
ServerName john.mysite.com
ServerAlias john.mysite.com
DocumentRoot /web/john
<Directory />
Options FollowSymLinks
AllowOverride ALL
</Directory>
<Directory /web/john/>
Options Indexes FollowSymLinks Includes MultiViews ExecCGI
AllowOverride ALL
Require all granted
</Directory>
ScriptAlias /cgi-bin/ /web/plus/cgi-bin/
<Directory "/web/plus/cgi-bin">
AllowOverride ALL
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
LogLevel warn
ErrorLog /var/log/apache2/errorjohn.log
CustomLog /var/log/apache2/accessjohn.log combined
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM
SSLCertificateFile /etc/apache2/ssl/your.crt file
SSLCertificateKeyFile /etc/apache2/ssl/your.key file
SSLCACertificateFile /etc/apache2/ssl/your.ca-bundle
SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
</VirtualHost>
</IfModule>
Как только все это было сохранено, я запустил
sudo a2ensite 001-john.conf
и
sudo a2ensite 001-john-ssl.conf
Затем я запустил
sudo service apache2 reload
Затем, чтобы проверить, есть ли у них оба .. который до этого не делал раньше ... Я просто создал ссылки с сайта, доступного на сайт с поддержкой ... это, похоже, не работает для меня, но после запуска a2ensite с файлами, помеченными расширением .conf .. Я запустил apachectl -t -D DUMP_VHOSTS
и имел этот результат:
VirtualHost configuration:
*:443 is a NameVirtualHost
default server mysite.com (/etc/apache2/sites-enabled/000-default-ssl.conf:2)
port 443 namevhost mysite.com (/etc/apache2/sites-enabled/000-default-ssl.conf:2)
port 443 namevhost john.mysite.com (/etc/apache2/sites-enabled/001-john-ssl.conf:2)
alias john.mysite.com
*:80 is a NameVirtualHost
default server mysite.com (/etc/apache2/sites-enabled/000-default.conf:1)
port 80 namevhost mysite.com (/etc/apache2/sites-enabled/000-default.conf:1)
port 80 namevhost john.mysite.com (/etc/apache2/sites-enabled/001-john.conf:1)
alias john.mysite.com
** как примечание .. мой исходный сайт находится в каталоге /web/public
, а сайт поддоменов расположен в /web/john
... так как ваш был расположен в /var/www/html
Я бы, вероятно, использовал что-то вроде /var/www/forum
для вашей папки поддоменов для хранения файлов вашего форума, и я бы использовал forum.yoursite.com
в качестве ServerName
и ServerAlias
, но, надеюсь, на примере вы увидите формат и настройку всего .
Как только записи DNS были обновлены из namecheap. Я смог получить доступ к john.mysite.com, и там отобразился бы простой файл «в стадии разработки», и если бы я просто зашел на www.mysite.com, он бы дал мне моя обычная страница, которая была настроена некоторое время назад
, так что теперь она работает с поддоменом
Надеюсь, это поможет вам разобраться и настроить все правильно ... скорее всего, потому что файлы конфигурации, вероятно, у вас не было расширений .conf
, и вы не использовали a2ensite
для их включения ... это было проблемой, с которой я столкнулся