В принципе, я могу получить доступ ко всему просто отлично, используя 127.0.0.1, но если я использую свой внешний IP (123.123.123.123), я получаю страницу не найдена.

Мой маршрутизатор перенаправляет порт HTTP 80 на порт 8080 на внутреннем IP-адресе моих серверов. Другими словами: (Приложение: HTTP | Начало: 80 | Конец: 8080 | Протокол: Оба | IP-адрес 192.168.0.101 | Включить [ДА]) Я знаю, что это переадресация правильно, потому что, когда я прекращаю переадресацию портов, я могу получить доступ к своему маршрутизатору страница с использованием моего внешнего IP.

Мой файл виртуальных хостов:

NameVirtualHost *:80
    <VirtualHost *:80>
    DocumentRoot /opt/lampstack-5.3.16-0/apps/wordpress
    ServerName example.com
    ServerAlias www.example.com
</VirtualHost>

и мой файл httpd.conf:

Listen 80
Servername localhost:80
DocumentRoot "/opt/lampstack-5.3.16-0/apache2/htdocs
<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny, allow
    deny from all
</Directory>
<Directory "/opt/lampstack-5.3.16-0/apache2/htdocs">
    Options FollowSymLinks
    AllowOverride None
    Order allow, deny
    allow from all
</Directory>

3 ответа3

1

Вы используете виртуальный хостинг на основе имени. Если вы попытаетесь получить доступ к своему веб-сайту под другим именем, вы получите сайт по умолчанию.

NameVirtualHost *:80

Servername localhost:80
1

Я думаю, что проблема заключается в указании DocumentRoot, который имеет запрещающие разрешения для него - но вы должны получить 403 Запрещенные ошибки, а не 404 Не найдено (по крайней мере, я делаю, когда пытаюсь имитировать вашу конфигурацию).

DocumentRoot /opt/lampstack-5.3.16-0/apps/wordpress

поскольку в этом каталоге нет записи <Directory > он наследует разрешения по умолчанию

<Directory />
  Options FollowSymLinks
  AllowOverride None
  Order deny, allow
  deny from all
</Directory>

попробуйте закомментировать отрицательные строки

  #Order deny, allow
  #deny from all

или создание новой записи, чтобы проверить эту проблему

<Directory "/opt/lampstack-5.3.16-0/apps/wordpress">
  Options FollowSymLinks
  AllowOverride None
  Order allow, deny
  allow from all
</Directory>

Примечание: сейчас вы должны пытаться получить доступ к серверу с IP-адресом, www.example.com никуда вас не приведет, потому что для него нет записи DNS (или, если она есть, она не указывает на ваш сервер)).

1

Похоже, это была проблема с маршрутизатором. Даже при том, что я попытался перезапустить мой маршрутизатор, даже при том, что я попробовал все с включенным и отключенным перенаправлением nat. Я просто садился, и мой маршрутизатор перезагружался сам. Мне пришлось ввести пароль по умолчанию, чтобы попасть на страницу администрирования маршрутизатора (вместо пароля, который я установил). После этого все работало нормально.

Также попробуйте не иметь ничего в вашем файле vhosts, это также может работать

Мораль истории: попробуйте другой маршрутизатор на всякий случай.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .