Устранение ошибки в ICQ 6.5 build 1042
Намедни установил ICQ 6.5. Скачал build 102, после запуска она автоматически обновилась до версии 2024. Разумеется, сразу же скачал и антибаннер для этой версии с 4ru.info.
Вот отсюда: http://4ru.info/soft/ICQ.652024.AdRem.zip
Установил. Баннеры исчезли. Но появился жуткий глюк – периодически вылетает окошко “На этой странице произошла ошибка сценария”. Это происходит при клике 2 раза на нике в списке и открывании окна сообщений. Да и в окне сообщений всё время с завидной стабильностью это окно появляется. Первым делом полез в инет, искать решение проблемы. Да, кое у кого тоже такая проблема встречалась, но решения были мягко говоря не айс: “снеси аську, поставь квип” или “ставь 5.1, она стабильнее”. Пришлось грызть гранит самому.
Итак, что я выяснил. Антибаннер прописал в файл hosts следующие строки:
127.0.0.1 im.adtech.de
127.0.0.1 adserver.adtech.de
127.0.0.1 adtech.de
127.0.0.1 ar.atwola.com
127.0.0.1 atwola.com
127.0.0.1 adserver.71i.de
127.0.0.1 adicqserver.71i.de
127.0.0.1 71i.de
Вполне логично. Аська пытается качать баннеры с этих адресов и прописыванием этих строк в hosts, антибаннерка просто заставляет ICQ брать баннеры с localhost. И всё отлично, если по адресу localhost ничего нет. Но у меня, как у веб-программиста, на локалхосте висит апач ! Так вот в чём проблема.
ICQ 6.5 долбится в мой апач, пытаясь скачать с него баннеры, если посмотреть логи апача, можно выяснить – какие именно баннеры она пытается там найти, но в итоге находит только страницу Html по умолчанию или какой-нибудь из виртуальных хостов (как и получилось в моём случае). Далее она пытается достать из скачанного баннер, но естественно, не может. Поэтому и пишет ошибку.
Решением проблемы в моём случае стало добавление виртуального хоста 127.0.0.1:80 в конфиг апача:
ServerName localhost
DocumentRoot "/www/localhost/"
ServerAdmin admin@admin121212.ru
ErrorLog "logs/localhost"
CustomLog logs/localhost common
и создания корневой папки этого виртуального хоста /www/localhost с расположенными внутри двумя файлами .htaccess и index.php.
Зачем ещё эти два файла, спросите Вы. А всё очень просто. Нужно заставить этот виртуальный хост на ЛЮБОЙ запрос выдавать пустую страницу.
Поэтому файлы приняли соответствующий вид:
.htaccess:
DirectoryIndex /index.php
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ index.php [QSA,L]
index.php:
// Нет кода тут
Вот и всё. После перезапуска апача всё стало на свои места - аська больше не выдаёт сообщений об ошибке в скриптах. Ура!
Небольшое дополнение.
Если у Вас не стоит и никогда не был установлен Apache или другой веб-сервер, вероятно, какая-то из установленных программ выполняет функцию "неправильного поставщика баннеров". Определить это поможет простой способ. Откройте окно Панель управления / Администрирование / Службы и начните останавливать по-очереди все службы, которые можно выключить (слева есть ссылка "Остановить"). Останавливаете службу - проверьте, не перестала ли вылетать ошибка. Если нет - включайте службу назад и переходите к следующей. Так Вы определите - какая служба "мешается". Далее будет ясно что делать с ней - либо оставить её выключенной, либо как-то настроить, чтобы она не мешала работать ICQ.