Доступ к сайтам apache2, расположенным в / var / www/xxxxx и / var / www/html/yyyyy - PullRequest
0 голосов
/ 09 января 2020

У меня есть сервер (ubuntu 18.04), работающий за маршрутизатором, который я использую для тестирования различных веб-приложений (snipe-it, phpipam и libre speedtest). Не имея ресурсов для отдельных машин для их запуска и не желая углубляться в виртуальные машины, я подумал, что смогу запустить их на одном и том же экземпляре apache и получить к ним доступ, изменив конфигурации виртуальных хостов.

Когда я запускаю отдельные виртуальные хосты, каждый сайт работает нормально. когда я пытаюсь запустить более одного сайта (a2ensite xxx и a2ensite yyy), появляется сайт с более низким алфавитным именем (в данном случае xxx).

Я не знаю, является ли Alias ​​или Rewrite подходящим способом до go. Я не могу по-настоящему изменить то, как разработчики решили писать приложения и где они хотят разместить свои программы. Я могу понять, почему (я думаю) они положили их туда. Я просто хочу иметь доступ ко всем сайтам / страницам / приложениям ...

/ etc / apache2 / sites-available / snipeit.conf

<VirtualHost *:80>
    ServerName snipeit
    DocumentRoot /var/www/snipe-it/public
    Alias "/" "/var/www/snipe-it/public"
    <Directory /var/www/snipe-it/public>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>
</VirtualHost>

/ etc / apache2 / sites-available / phpipam.conf

<VirtualHost *:80>
    ServerName phpipam
    DocumentRoot /var/www/phpipam
    <Directory /var/www/phpipam>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>
</VirtualHost>

/ etc / apache2 / sites-available / speedtest.conf

<VirtualHost *:80>
    ServerName speedtest
    DocumentRoot /var/www/html
    <Directory /var/www/html/speedtest>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>
</VirtualHost>

Ответы [ 2 ]

0 голосов
/ 13 января 2020

Чтобы достичь того, что вы хотите, вам может потребоваться сделать следующее:
Переместить оба каталога в / var / www/html. и удалить для них все виртуальные хосты , за исключением одного для / var / www/html это 000-default.conf. Это будет сложно, если вы сохраните их в разных каталогах вместо этого простого трюка.

Редактировать:

У пользователя были приложения, зависящие от этих путей. Поэтому лучший способ сделать это - использовать псевдонимы в Apache. Убедитесь, что mod_alias загружен в Apache. Добавьте это в конец httpd.conf.

Alias "/snipeit" "/var/www/snipe-it/public"
Alias "/phpipam" "/var/www/phpiam"
#And, speedtest is already inside the folder.

Вы можете получить доступ к таким сайтам, как: http://localhost/snipeit, http://localhost/phpiam, http://localhost/speedtest. Или вы можете использовать IP-адрес для доступа к нему.

0 голосов
/ 09 января 2020

Вы можете выполнить следующие действия, чтобы проверить, в чем проблема.

1) Проверьте, есть ли в вашем файле / etc / hosts правильные записи DNS для ServerNAMe

snipeit.x localhost
phpipam.x localhost
speedtest.x localhost

2) Убедитесь, что директива ServerName соответствует хосту. Имя_сервера должно совпадать с именем DNS, которое вы используете для доступа к нему.

3) Проверьте Apache Конфигурации VirtualHost

apache2ctl -S

3) Запустите Apache в режиме отладки. и проверьте, как apache анализирует ваш запрос.

apache2ctl -t -c /path/to/apache.conf
...