Почему Apache перестал работать после добавления двух сайтов?

Я хотел и Redmine, и Mercurial на localhost / redmine и localhost / mercurial.

Redmine - это приложение RoR, которое работает на модуле mod_passenger, а Mercurial запускается на скрипте CGI. Я должен иметь возможность использовать оба на одном сервере, верно?

У меня Redmine работает нормально. Тогда я следовал за шагами для Mercurial. Затем я включил этот сайт.

И еще сайт работает. Я сделал эти два сайта и перезапустил Apache, но оба домена теперь дают мне 404.


Конфигурация сайта для redmine взята с http://www.redmine.org/projects/redmine/wiki/HowToInstallRedmineOnUbuntuServer

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www
    ServerName myservername

    RewriteEngine on
    RewriteRule   ^/$  /redmine  [R]

    <Directory /var/www/redmine>
            RailsBaseURI /redmine
            PassengerResolveSymlinksInDocumentRoot on
    </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

Конфигурация сайта для Mercurial взята с http://www.isnull.com.ar/2010/03/how-to-install-mercurial-on-debian-or.html

<VirtualHost *:80>
Servername mercurial.server
DocumentRoot /var/www/mercurial/http
ScriptAlias /cgi-bin/ /var/www/mercurial/cgi-bin/
ScriptAliasMatch ^/hg(.*) /var/www/mercurial/cgi-bin//hgwebdir.cgi$1

<Directory /var/www/mercurial/cgi-bin>
AllowOverride None
Options +ExecCGI -Includes
Order allow,deny
Allow from all
</Directory>

<Directory /var/www/mercurial/http>
Options FollowSymLinks
AllowOverride AuthConfig
DirectoryIndex /hg
Order allow,deny
Allow from all
</Directory>


ErrorLog /var/log/apache2/error_mercurial.log
CustomLog /var/log/apache2/access_mercurial.log combined

</VirtualHost>

1 ответ

Отличный вопрос, проблема в том, что у вас разные имена серверов на каждом из ваших сайтов. Apache будет искать это в строке URL, поэтому для ртути вам придется перейти на

http://mercurial.server/....

И для Redmine вы должны пойти в

http://myservername/...

Поскольку вы хотите, чтобы они оба жили под одним и тем же именем хоста, вам, вероятно, просто нужен один тег VirtualHost, чтобы определить DocumentRoot и желаемое имя сервера, а затем псевдонимы и тому подобное, которые вы хотите использовать под этим хостом. Это все будет проще, если он будет работать как одна конфигурация сайта.

Другие вопросы по тегам