Я пытаюсь записать приблизительно 5 веб-сайтам все на одном сервере Apache, который является всем на одном IP-адресе.
Например:
Однако, если я создаю ссылку на сайт 2 просто использования, например./index.php, Вы ожидали бы, что это посмотрит в/var/www/site2/index.php..., но это на самом деле решает к/var/www/index.php.
Имеет ли так или иначе установку Apache, чтобы знать, что отдельные папки сайта должны вести себя и решить к отдельным папкам?
Это - мой доступный сайтам файл в данный момент. Довольно установка по умолчанию я верю:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
Любая справка ценилась бы.
Слова благодарности любезно.
Andrew Barlow
Вам нужна директива ServerName внутри
. Он сообщит серверу, какой виртуальный хост в настоящее время используется в зависимости от запроса браузера (если ваш клиент обращается к http://site1.example.com или http://site2.example.com , они будут подключаться к одному и тому же IP-адресу, следовательно, к серверу, но запрос содержит исходный URL-адрес запроса).
Вам нужно будет продублировать блок
, чтобы иметь по одному блоку для каждого размещенного сайта. Каждый блок будет отличаться в основном своим ServerName и DocumentRoot.
Вы можете использовать "apache2ctl -S", чтобы увидеть, как apache понимает настройки вашего виртуального хоста.
Вы можете использовать один файл с таким содержанием:
<VirtualHost *:80>
ServerName site1.myserver.com
DocumentRoot /var/www/site1
...
</VirtualHost>
<VirtualHost *:80>
ServerName site2.myserver.com
DocumentRoot /var/www/site2
...
</VirtualHost>
<VirtualHost *:80>
ServerName site3.myserver.com
DocumentRoot /var/www/site3
...
</VirtualHost>
<VirtualHost *:80>
ServerName site4.myserver.com
DocumentRoot /var/www/site4
...
</VirtualHost>
<VirtualHost *:80>
ServerName site5.myserver.com
DocumentRoot /var/www/site5
...
</VirtualHost>
Конечно, можно быть уверенным, что DNS для всех этих имен заканчивается на свой IP. Это не обязательно должны быть поддомены, если они находятся на IP-адресе вашего сервера и у вас есть соответствующее имя сервера. Если вам нужны дополнительные имена для одного сайта, вы можете добавить их с помощью "ServerAlias secondname.myserver.com thirdname.myserver.com" под ServerName