Apache перенаправляет на несуществующий виртуальный хост - PullRequest
1 голос
/ 13 марта 2012

Ранее сегодня я попытался установить программное обеспечение платы изображений MyImouto на свой сервер Apache. У меня уже есть полный движок MediaWiki, установленный на порт 80 (localhost/wiki/), и плата MyImouto, установленная на виртуальном хосте на порт 3000, который работает полностью отдельно от основного веб-сервера.

Немного покопавшись, я допустил ошибку, загрузив php на главный сервер, и мне пришлось переустановить apache и php, что я и сделал, и обновить до последних версий (Apache 2.2.22 и PHP 5.4 +0,0). Мне удалось успешно настроить и запустить установку, как с виртуальным хостом порта 3000, так и без него. И MediaWiki работает нормально, за исключением одной вещи.

СЕЙЧАС, когда я набираю http://localhost/wiki/index.php, как всегда делал в прошлом, что-то перенаправляет его на http://localhost:3000/wiki/index.php/Main_Page и переносит его на другой виртуальный хост, где вообще нет вики. Однако http://localhost/wiki/index.php/Main_Page работает отлично.

В localhost:3000 есть файл .htaccess, который я переименовал во что-то другое, но, похоже, это не сработало. Я также попытался очистить кеш браузера и запустить session_destroy через php. Это не исправило это.

Я даже отключил второй виртуальный хост в httpd.conf Apache, но он все еще перенаправляет меня, что говорит мне, что это что-то в основном веб-сервере. Я не касался конфигурации или кода MediaWiki все это время.

Я также попытался получить доступ к http://localhost/phpMyAdmin, и ТО перенаправил меня на http://localhost:3000/phpMyAdmin/, а также на http://localhost/AdminTools, что делает то же самое. Httpd.conf теперь больше не имеет ссылок на виртуальный хост *:3000.

Однако мой основной индекс (http://localhost/index.php) имеет следующее перенаправление заголовка, которое успешно позволяет ему работать, даже если в адресную строку введен http://localhost.

header("Location: index.php?content=main");

Я попытался отключить expires_module и headers_module в Apache, думая, что может быть какая-то странная проблема с кэшированием из-за этого теперь переименованного файла .htaccess. Это тоже не помогло. Кроме того, я проверил свой файл hosts и в нем нет ничего странного, и я не прокси через что-либо (в конце концов это -is- localhost).

Буду признателен за помощь в выяснении причины и способах ее устранения.


  • Windows XP SP3

  • Включенные модули в Apache:

    действия, псевдоним, asis, auth_basic, authn_default, authn_file, authz_default, authz_groupfile, authz_host, authz_user, cgi, dir, env, expires, заголовки, включают в себя, isapi, журнал, mime, согласование, переписать, 10ifp, seten *

  • Включенные расширения в PHP:

    curl, fileinfo, gd2, mbstring, exif, mysql, mysqli, openssl, pdo_mysql, сокеты

1 Ответ

1 голос
/ 13 марта 2012

Мне удалось понять это.Немного поигравшись с .htaccess и Rewrite Rules (ни одно из которых ничего не сделало), я снова заглянул в свой файл httpd.conf и обнаружил, что я опечатал свой виртуальный хост port-80:

<VirtualHost *:80>
  ServerAdmin -myemail-@gmail.com
  ServerName -blahblah-.no-ip.org:3000
  DocumentRoot "C:/wwwroot/tfg"
  <Directory "C:/wwwroot/tfg">
    OptionsIndexes FollowSymLinks
    AllowOverride All
    Allow from all
    Deny from 186
    Deny from 187
  </Directory>
</VirtualHost>

Когда на самом деле это должно было быть ServerName -blahblah-.no-ip.org:80.

Простые опечатки: всегда те, которые проскальзывают быстрее всего.

...