Centos7 Apache с включенным пассажиром - виртуальный хостинг не работает для всех конфигураций

Может быть, старая тема, но я как бы застрял с реальной простой конфигурацией виртуального хоста. Может я просто что-то упускаю...

Я хотел бы настроить виртуальную машину с некоторыми программными продуктами. Что я уже сделал: - Jenkins bitnami stack: отлично работает на dev.company.com:8080/jenkins

Установка httpd через yum. Настройте мой репозиторий SVN через WebDAV: отлично работает и на порту 80 на dev.company.com/repo.

Файл конфигурации в /etc/httpd/conf.d

<Location /repo>
        DAV svn
        SVNParentPath /srv/svn/repositories/
        SVNListParentPath on
        #<LimitExcept>
        # GET PROPFIND OPTIONS REPORT>
                AuthType Basic
                AuthName "SVN Authorization Realm"
                AuthUserFile /etc/svn-auth-conf
                Require valid-user
        #</LimitExcept>
</Location>
  • Установка и настройка Redmine с помощью WebRicks. Проверено на локальном хосте: 3000: работает нормально
  • Запуск Redmine с Phusion Passenger через HTTPD: отлично работает на dev.company.com как root документа

Файл конфигурации в /etc/httpd/conf.d

<VirtualHost *:80>
  DocumentRoot /home/redmine/redmine/public
  ServerName dev.company.com
  ServerAlias www.dev.company.com
  DirectoryIndex index.html index.php
  Alias /redmine /home/redmine/redmine/public
  PassengerLogLevel 3
  RailsEnv production
  PassengerDefaultUser apache
  <Location /redmine>
    PassengerBaseURI /redmine
    PassengerAppRoot /home/redmine/redmine/public
  </Location>

  <Directory /home/redmine/redmine/public>
    Order allow,deny
    Allow from all
    AllowOverride All
    Require all granted
    Options -MultiViews
    RailsBaseURI /redmine
    PassengerResolveSymlinksInDocumentRoot on
  </Directory>
 </VirtualHost>

 PassengerPreStart http://dev.company.com

теперь я хотел бы настроить другой файл конфигурации vhost в /opt/project и /var/www/project

Мои файлы конфигурации Vhost выглядят так:

<VirtualHost *:80>
DocumentRoot /var/www/html
ServerName dev.company.com/test
DirectoryIndex index.html index.php
Alias /test /var/www/html
<Directory /var/www/html>
    Options all
    Order allow,deny
    Allow from all
    AllowOverride All
    Require all granted
    PassengerEnabled off
</Directory>

<VirtualHost *:80>
DocumentRoot /opt/test
ServerName dev.company.com/test2
DirectoryIndex index.html index.php
Alias /test /opt/test
<Directory /opt/test>
    Options all
    Order allow,deny
    Allow from all
    AllowOverride All
    Require all granted
    PassengerEnabled off
</Directory>

Всегда первый файл конфигурации читается и работает на dev.company.com:80. Все следующие файлы конфигурации vhost игнорируются.

Файл httpd.conf по умолчанию с настройкой каталога по умолчанию и только что добавленным NameVirtualHost *:80 (по умолчанию прослушивание 80). Я также включил 127.0.0.1 dev.company.com/test... в файл /etc/hosts и несколько раз перезапустил службу httpd (а также всю виртуальную машину).

Может быть, это просто вещь, но я понятия не имею. Есть ли у кого-нибудь идеи? Я был бы очень признателен за это!


person Audrey Delany    schedule 20.08.2015    source источник
comment
Да, я забыл - также невозможно настроить redmine.company.com через файл vhost и /etc/hosts.   -  person Audrey Delany    schedule 20.08.2015


Ответы (1)


Насколько я знаю, вы не можете указать два разных DocRoots для одного и того же VH. Вам, вероятно, потребуется использовать псевдоним, как показано ниже.

<VirtualHost *:80>
  DocumentRoot /home/redmine/redmine/public
  ServerName dev.company.com
  ServerAlias www.dev.company.com
  DirectoryIndex index.html index.php
  Alias /redmine /home/redmine/redmine/public

  Alias /test /var/www/html

  Alias /test2 /opt/test

  PassengerLogLevel 3
  RailsEnv production
  PassengerDefaultUser apache
  <Location /redmine>
    PassengerBaseURI /redmine
    PassengerAppRoot /home/redmine/redmine/public
  </Location>

  <Directory /home/redmine/redmine/public>
    Order allow,deny
    Allow from all
    AllowOverride All
    Require all granted
    Options -MultiViews
    RailsBaseURI /redmine
    PassengerResolveSymlinksInDocumentRoot on
  </Directory>

  <Directory /var/www/html>
    Options all
    Order allow,deny
    Allow from all
    AllowOverride All
    Require all granted
    PassengerEnabled off
  </Directory>

  <Directory /opt/test>
    Options all
    Order allow,deny
    Allow from all
    AllowOverride All
    Require all granted
    PassengerEnabled off
   </Directory>


 </VirtualHost>
person Nick Brown    schedule 20.08.2015
comment
о боже... я просто люблю тебя :D Не думал, что это НАСТОЛЬКО просто, что я пропустил. Большое спасибо! Просто не удалось заставить redmine работать как company.com/redmine из-за отсутствия соответствующего DirectoryIndex.. но я думаю, что это не так сложно ;) - person Audrey Delany; 21.08.2015