404 Not Found Запрошенный URL / xxxxx не был найден на этом сервере - PullRequest
0 голосов
/ 23 мая 2018

Пожалуйста, мне нужна помощь, я прошел через несколько похожих проблем и как они были решены, и мне кажется, что это такая боль, что она просто не работает.

Я использовал устройство под ключ Linux [OrangeHRM]и я хочу использовать его сервер Apache для размещения другого сайта / программного обеспечения [Sentrifugo], и это так сложно, каждый раз, когда я размещаю его, появляется только сайт по умолчанию.

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

Искренняя благодарность в ожидании


Ниже вывод grep "<VirtualHost" /etc/apache2/sites-enabled/*

/etc/apache2/sites-enabled/adminer.conf:<VirtualHost *:12322>
/etc/apache2/sites-enabled/orangehrm.conf:<VirtualHost *:80>
/etc/apache2/sites-enabled/orangehrm.conf:<VirtualHost *:443>
/etc/apache2/sites-enabled/sentrifugo2.conf:<VirtualHost *>

1 Ответ

0 голосов
/ 23 мая 2018

Доброе утро, основываясь на том, что мы обсуждали:

  • у вас есть 4 VH (VirtualHost): *: 12322, *: 443, *: 80, *
  • *:12322 не является портом по умолчанию, его нужно было бы указать явно (http://SOMETHING:12322/...)
  • *: 443: порт SSL по умолчанию (https://SOMETHING/...)
  • *: 80: порт http по умолчанию (http://SOMETHING/...)
  • *: соответствует всем портам

Теперь вы используете http://IP/sentrifugo2/...

  • Используя IP-адрес, Apache проверит VH в порядке и используетпервый, который соответствует.
  • Если вы запрашиваете http://IP/...,, поскольку это порт 80 (по умолчанию для http), Apache будет соответствовать третьему VH (*: 80).
  • Ноздесь вам нужен четвертый, с *

Решения:

  1. Работает, но не самый лучший : определите свой 4-й VirtualHost с помощьюпорт. <VirtualHost *:80>. Затем измените порядок появления вашего VH в Apache и поместите VH sentrifugo перед номером orangehrm.conf. Но это может создать новую проблему, где orangehrm.conf не являетсяusablи больше ... Продолжайте читать ...
  2. Best : используйте имя виртуального хостинга:

    <VirtualHost *:80>
        ServerName orangehrm.conf
        ...OTHER CONFIGURATION DIRECTIVES...
    </VirtualHost>
    <VirtualHost *:80>
        ServerName sentrifugo
        ...OTHER CONFIGURATION DIRECTIVES...
    </VirtualHost>
    

Итак, вы видитеТаким образом, Apache может дифференцироваться между двумя *: 80, используя запрошенный домен (или имя).В вашей клиентской системе в / etc / hosts задайте два имени:

10.0.0.18     orangehrm.conf
10.0.0.18     snetrifugo

Поэтому, когда вы набираете http://orangehrm.conf или http://sentrifugo Apache будетзнаю, какой вы хотите.

Примечание : на Apache 2.4 это не проблема.В Apache 2.2 вам нужно указать директиву NameVirtualHost (см. Документацию Apache по этому вопросу).

Снова работает, но не в лучшем случае : может быть невозможно для вас.Вы можете разделить VH, используя другой IP-адрес.Ex.10.0.0.18 это orangehrm.conf и используется <VirtualHost 10.0.0.18:80>.Затем 10.0.0.19 отправляется, поэтому используется <VirtualHost 10.0.0.19:80> (с прослушиванием 10.0.0.19:80).Но вам нужно разрешить настраивать дополнительные IP-адреса на вашем хосте для этого ...

еще одна возможность : разделить на порт.<VirtualHost *:80> для orangehrm.com, <VirtualHost *:81> для sentrifugo.Для этого вам нужно указать http://10.0.0.18:81/sentrifugo.Это также требует Listen *:80 и Listen *:81.

В заключение Apache нужен способ узнать, какой из них вы хотите.Это может решить с: IP, порт, имя.Имя является наиболее гибким.

ИМХО, используя IP-адрес, не самый лучший способ.Он работает в простых настройках, но быстро ограничивает вас.Используйте доменные имена.Здесь я показал вам, как это сделать в локальном файле хоста. «Лучший-лучший» способ - настроить их в DNS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...