2010-11-03 2 views
2

Как я пытался настроить свой виртуальный хост в apache. Я положил что-то вроде этого,Apache: Конфигурация виртуального хоста

NameVirtualHost *:80 

<VirtualHost *:80> 
    DocumentRoot /xampp/htdocs/gift 
    ServerName gift.loc 
</VirtualHost> 

И в моих хозяев файл я положил что-то вроде этого,

127.0.0.1  localhost 
127.0.0.1  gift.loc 

И я запустить его в браузере,

http://gift.loc - is fine 

Но когда я попытался используя это,

http://localhost/othersite - can't found 

Do i mis sed somehting для настройки? Любые идеи ...

Спасибо заранее,

+0

Спасибо за предложения, я нашел решение. Я поместил некоторый каталог по умолчанию над блоком определения виртуального хоста: DocumentRoot/xampp/htdocs будет отображать весь запрос, который не соответствует определенному виртуальному хосту. – Trez

ответ

0

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

Далее в том же документе, Если вы добавляете виртуальные хосты на существующий веб-сервер, вы также должны создать блок для существующего хоста.

+0

Было бы хорошо знать, но я хочу, чтобы gift.loc обслуживался виртуальным хостом, а «othersite» запускался через синтаксис «localhost/othersite». – Trez

3

Вам нужна запись VirtualHost для каждого хоста, с которым вы хотите обработать apache. Первый в конфигурационном файле будет использоваться по умолчанию, если никакие другие VirtualHosts не соответствуют запросу.

Например, если мы имеем:

<VirtualHost *:80> 
    DocumentRoot /xampp/htdocs/gift 
    ServerName gift.loc 
</VirtualHost> 

<VirtualHost *:80> 
    DocumentRoot /example/htdocs/gift 
    ServerName example.com 
</VirtualHost> 

Запроса на foobar.org получит обрабатываются виртуальным хостом gift.loc.

2

вам нужно поставить Localhost в vhosts.conf

NameVirtualHost *:80 

    <VirtualHost *:80> 
     DocumentRoot /xampp/htdocs/ 
     ServerName localhost 
    </VirtualHost> 

    <VirtualHost *:80> 
     DocumentRoot /xampp/htdocs/gift 
     ServerName gift.loc 
    </VirtualHost> 

Это работает отлично (Убедитесь, что вы перезапустите Apache). Если вам нужно проверить свою конфигурацию, вы можете (по крайней мере, по Linux) запустить httpd -S.

0

Есть несколько шагов, которые необходимо выполнить для настройки виртуального хоста на убунту: Пусть говорят, что ваше имя папки проекта MyProject

Шаг 1: Поместите папку внутри/вар/WWW/HTML

sudo mv ~/myProject /var/www/html/ 

Шаг 2: Дайте право собственности на папку проекта на WWW-данных

sudo chown -R www-data:www-data /var/www/html/myProject 

Шаг 3: C reate новый сайт внутри сайтов, доступных:

cd /etc/apache2/sites-available/ 
ls 

Здесь вы увидите существующие 000-default.conf и по умолчанию-ssl.conf .Copy содержание обоих файлов в один файл и заменить имя папки или копию этого один в новый файл с именем myProject.конф

<VirtualHost *:80> 
    # The ServerName directive sets the request scheme, hostname and port that 
    # the server uses to identify itself. This is used when creating 
    # redirection URLs. In the context of virtual hosts, the ServerName 
    # specifies what hostname must appear in the request's Host: header to 
    # match this virtual host. For the default virtual host (this file) this 
    # value is not decisive as it is used as a last resort host regardless. 
    # However, you must set it for any further virtual host explicitly. 
    #ServerName www.example.com 

    ServerAdmin [email protected] 
    DocumentRoot /var/www/html/myProject/ 
     ServerName project.com 
     ServerAlias www.project.com 

    ErrorLog ${APACHE_LOG_DIR}/error.log 
    CustomLog ${APACHE_LOG_DIR}/access.log combined 

</VirtualHost> 

<VirtualHost *:443> 
     ServerAdmin [email protected] 

     DocumentRoot /var/www/html/myProject/ 
     ServerName project.com 
     ServerAlias www.project.com   

     ErrorLog ${APACHE_LOG_DIR}/error.log 
     CustomLog ${APACHE_LOG_DIR}/access.log combined 
     SSLEngine on 

     SSLCertificateFile /etc/ssl/certs/mobidev_cert.pem 
     SSLCertificateKeyFile /etc/ssl/certs/mobidev_key.pem 


     <FilesMatch "\.(cgi|shtml|phtml|php)$"> 
       SSLOptions +StdEnvVars 
     </FilesMatch> 
     <Directory /usr/lib/cgi-bin> 
       SSLOptions +StdEnvVars 
     </Directory> 

</VirtualHost> 

Включить путь сертификатом, также в этом, как показано Ssl ключ и сертификат SSL, который можно скачать легко.

Шаг 4: Добавьте проект в конфигурационный файл apache.

sudo vi /etc/apache2/apache2.conf 

положить эти строки в файле:

DocumentRoot "/var/www/html/myProject" 
<Directory /var/www/html/myProject/> 
    Options Indexes FollowSymLinks 
    AllowOverride All 
    Require all granted 
</Directory> 

Шаг 5: Добавьте свое имя виртуального сервера (указанный в myProject.conf) в хост file.add этой линии:

sudo gedit /etc/hosts 
127.0.1.1 project.com 

Шаг 6: Теперь все установлено, разрешить сайт, перезапустить apache

sudo a2ensite /etc/apache2/sites-availabl/myProject.conf 
sudo systemctl reload apache2 
sudo update-rc.d apache2 defaults 
sudo update-rc.d mysql defaults 
sudo a2enmod ssl 
sudo a2ensite default-ssl 

Просто нажмите project.com в своем браузере.

Смежные вопросы