В продолжение предыдущего поста.
Старый комп мой совсем ссутулился. Загружается через раз, наиболее стабильно работает в положении лежа на боку со снятой крышкой. На «мамке» 2002 года рождения повздувались конденсаторы, встроенная в неё видюха глючит (другой нету – на халяву не дают, покупать не вижу смысла). Эта машина была рабочей лошадкой в течение семи лет. Её моральных качеств мне вполне хватало, потому как ничего особо требовательного к ресурсам я не держу. Но вот физические кондиции, увы, уже не те.
Поэтому в доме завелся ноут. С предустановленной Windows Vista Home Basic. А что делать – ноут не свой, дали погонять на время. Свои взаимоотношения с этим чудом от Microsoft я уже начал описывать. Пришла пора переносить веб-наработки со старого компа на ноут. В разное время использовал разные веб-серверы и разные языки для скриптов. По этому поводу на старом компе было два веб-сервера: IIS (в составе WinXP, для asp) и Apache (в составе Denwer, для php).
Как выяснилось, некоторые товарищи не совсем представляют себе, что такое Denwer, поэтому пару слов об этом пакете. Включает он веб-сервер Apache, интерпретаторы языков php и perl, СУБД mySQL. Конечно, все эти вещи можно установить и по отдельности, а потом попытаться подружить друг с другом. Но пакетом удобнее: один инсталлятор, запускается все с полпинка. По крайней мере так было в WinXP.
Каждый из имевшихся в винде двух веб-серверов я включал/отключал по мере надобности, и никогда не возникало необходимости в их одновременном функционировании. Поэтому и висели они на одном порту, на 80-м, по умолчанию.
Теперь о переезде на свисту. Скачал новый дистрибутив Denwer’а, запустил установку, вроде что-то распаковалось и установилось. Запускаю Denwer, лезу на http://localhost и читаю там сообщение от Internet Information Services 7.0: «Ошибка HTTP 404.4 - Not Found. Ресурсу, который вы ищете, не сопоставлен обработчик». Да ну и хрен с ним, нам IIS не нужен, мы его сейчас отключим и будем с Apache’ем работать. Идем в управление моим компом, открываем Службы и приложения, где тут у нас Internet Information Services? Нету. Ну начинааается, куда же вы его перенесли, любители новых интерфейсов? Лопатим Панель управления – нет настроек веб-сервера. Возвращаемся на страницу с 404-й ошибкой – вдруг там чего дельного посоветуют. Предлагают почитать дополнительные сведения по этой теме на сайте мелкософта. Открываем страницу, на чистом английском языке написано, что открываемому файлу не соответствует никакой обработчик. Мне в данной ситуации все это нахрен не нужно, но вдруг дальше скажут, как настройки IIS открыть, а там дальше я уж сам как-нибудь.
Ага, вот оно: «click Start, click Run, type inetmgr.exe». Все понятно, но за державу обидно: винда лицензионная и русифицированная, а справка на аглицком. Ну это так, мимоходом подумалось. Сам уже запустил командную строку. Кстати, следуя инструкциям из справки запустить её не получится, ибо нет в меню свисты Пуск(Start) пункта Выполнить(Run). Во всяком случае в моей Home Basic я его не видел и поэтому давно уже сделал себе соответствующий ярлык.
Пишем в командной строке inetmgr и видим, прямо скажем, обескураживающий результат «inetmgr не является внутренней или внешней командой, исполняем или пакетным файлом». Пробую написать то же самое вместе с расширением – результат не меняется. Запускаю поиск файла по имени – нет такого файла на компе. Опять смотрю в страницу со справкой, тыкаю по какой-то ссылке, выясняю, что IIS-7 не входит в состав свисты версии Home Basic. Вот ведь резиновотехнические изделия! Веб-сервер мы вам не дадим, но порт на всякий случай займем. Написал им в отзыв об этой странице несколько нецензурных английских слов.
Хотя, может быть, зря я так. Может быть нужный мне порт чем-то другим занят? Почитал форумы, нашел совет использовать для этого команду «netstat -abn». Выполняем её, читаем идиотский текст «Запрошенная операция требует повышения». Интуитивно понятно, что для выполнения команды не хватило прав. Но неужели нельзя было прям так и написать? Кроме того, я считал себя единственным юзером в этой винде, какого еще администратора надо? Опять гуглим в яндексе. Находим ответ и на этот вопрос: в некоторых случаях нужно в контекстном меню файла выбирать «запуск от имени администратора». Ну что ж, исполним этот каприз мелкософтовцев. Запускаю командную строку от «савсэм администратора, э». Выполняю команду. Результатов слишком много, чтобы в них что-то понять. Вроде бы для адреса 127.0.0.1 порт 80 не занят. Для адреса 0.0.0.0 на 80-м порту что-то есть, но «не удается получить сведения о владельце». Среди разработчиков свисты определенно есть спаратанцы и евреи. Надо было им в отзыве еще и по-русски добавить.
Судя по всему, придется менять порт, на котором висит Apache. Я этого никогда не делал, поэтому опять лезу на форумы. Там такие элементарные вещи не обсуждаются. Но удается выяснить, что настройки апача находятся в файле \usr\local\apache\conf\httpd.conf. Открываю файл, офигеваю от количества строк. Потом соображаю, что большая часть текста – это комментарии (начинается с #). Листаю потихоньку вниз, нашел строку, которая вполне может мне помочь «#Listen 8080», снимаю комментарий (удаляю #).
Перезапускаю Denwer, лезу на http://localhost:8080 – не пашет. Черт, не повезло. Что же там еще можно поменять? В дебрях коллективного разума нахожу ссылку на каталог, где ведется лог ошибок апача \usr\local\apache\logs. Лезу туда – пусто, файла нет. Закрадывается подозрение, что элементарно не хватает прав для создания файла. Стопаю Denwer, запускаю от имени «настоящего мужчины», проверяю локалхост:8080 – работает!!!
В самую пору написать «Всем пиздец – Web работает», как это сделал один знакомый в похожей ситуации.
В результате потратил больше часа времени на непонятную возню, которую в итоге можно заменить двумя действиями:
- В файле \usr\local\apache\conf\httpd.conf убрать комментарий со строки «#Listen 8080»
- Запустить Denwer «от имени администратора»
Причем вещи примитивные, но вот как-то не быстро допер до них, а изложение в доступном виде не нашел.
Опыт – это штука, которая тяжело достается и дорого ценится, да. |