GeoIP

InstantCMS 2.X

Словил предупреждение

#1 8 ноября 2022 в 13:38

Ребята, при просмотре профиля пользователя словил такой варнинг:

Warning: geoip_record_by_name(): Required database not available at /usr/share/GeoIP/GeoIPCity.dat. in/......./svaul.ru/system/libs/strings.helper.phpon line1029

Версия php 7.4.3 (native) 

Переключаю версию php на 8.1.3 (alt) — предупреждение пропадает. Но в этой версии не могу оставить сайт, неправильно работает один компонент...

Кто-нибудь может помочь решить проблему? Посмотрел у меня в этой папке лежат только GeoIP.dat и GeoIPv6.dat… Этого GeoIPCity.dat  отсутствует. Но почему на php 8.1.3 ничего не сыпет предупреждение?

Ребята, помогите пожалуйста кто разбирается.   

Добавлено спустя 12 часов

Не знаю правильно ли я сделал… Тупо скачал файл отсюда mailfud.org/geoip-legacy/GeoIPCity.dat.gz распаковал, залил в /usr/share/GeoIP  и ошибка исчезла.

#2 8 ноября 2022 в 13:42

Не знаю правильно ли я сделал

Юран

Правильно. И если рядом с ip адресом в профиле появилась локация страна — город, то еще и работает правильно.

#3 8 ноября 2022 в 14:20

Изображение

Отлично работает!

#4 10 мая 2023 в 16:16

Сделал как описали выше, не получилось, что делаю не так? вот этот путь /usr/share/GeoIP это в корне сайта или какой то определенной папке?

#5 8 мая 2024 в 20:25

Приветствую! Такая же проблема, подскажите пожалуйста как исправить… на хостинге нет доступа к папке /usr/share/GeoIP, что бы закачать файлы GeoIPCity.dat.

#6 8 мая 2024 в 23:54

Путь /usr/share/ — это путь в файловой системе LInux (архитектурно-независимые общие данные.) Это доступно только для пользователей хостинга в виде VPS. На обычном хостинге доступа пользователю к такой директории нет. Но я думаю возможно поддержка хостинга сможет решить вопрос.

#7 11 мая 2024 в 10:59

Поддержка ответила что возможно только для владельцев VPS итп. Есть еще какие то варианты решения данной ошибки?

#8 27 сентября 2024 в 00:58

Перешел на новый VPS на том же самом хостинге… Также скачал и закинул файл GeoIPCity.dat в ту же папку /usr/share/GeoIP/

Однако сейчас не показывает города рядом с IP… Есть предположения почему перестало работать?

#9 13 октября 2024 в 22:58

Ребята, у всех работает? Кто нибудь проверял что сейчас с этим GeoIP? У меня почему то перестало работать:(

#10 30 октября 2024 в 23:38

Здравствуйте. На предыдущем VPS у меня на сайте svaul.ru работала функция определения города по IP адресу.
После переноса сайта на ваш новый VPS это перестало работать. Файл GeoIPCity.dat я аналогично закинул в папку /usr/share/GeoIP но безупешно… не работает.
Раньше был как на прикреленом к обращению файле. Сейчас тот же пользователь по ссылке svaul.ru/users/4
Только последний IP и все, города нет. Может нужно как то Nginx настроить чтобы это работало?
Помогите пожалуйста решить проблему.

Изображение

Здравствуйте,
При обращении к странице сайта в логах сервера показывается ошибка в коде:
2024/10/30 18:19:00 [error] 849359#849359: *62250 FastCGI sent in stderr: «PHP message: PHP Notice: Undefined index: country in /var/www/admin/data/www/svaul.ru/system/controllers/stat/hooks/engine_start.php on line 39PHP message: PHP Notice: Undefined index: region in /var/www/admin/data/www/svaul.ru/system/controllers/stat/hooks/engine_start.php on line 40PHP message: PHP Notice: Undefined index: city in /var/www/admin/data/www/svaul.ru/system/controllers/stat/hooks/engine_start.php on line 41PHP message: PHP Notice: Undefined variable: utm in /var/www/admin/data/www/svaul.ru/system/controllers/stat/hooks/engine_start.php on line 44» while reading response header from upstream, client: 172.16.5.100, server: svaul.ru, request: «POST /smartwall/AtWho_data HTTP/1.1», upstream: «fastcgi://unix:/var/www/php-fpm/5.sock:», host: «svaul.ru», referrer: «svaul.ru/users/4»

Т.е. сервер не может определить несколько переменных
country
region
city
utm

Поэтому вопросу лучше всего обратиться к разработчикам, поскольку им должно быть известно откуда эти переменные должны быть. Нам это, увы, не известно.

Подскажите, пожалуйста, вы установили для данный файлов в каталоге /usr/share/GeoIP точно такие же права как и были на приёмнике?
~# ls -la /usr/share/GeoIP/Geo*
-rw-r--r-- 1 root root 23090788 сен 27 00:41 /usr/share/GeoIP/GeoIPCity.dat
-rw-r--r-- 1 root root 2099217 ноя 19 2020 /usr/share/GeoIP/GeoIP.dat
-rw-r--r-- 1 root root 8138841 ноя 19 2020 /usr/share/GeoIP/GeoIPv6.dat
-rw-r--r-- 1 root root 8644795 сен 13 22:52 /usr/share/GeoIP/GeoLite2-ASN.mmdb

С уважением,
Дмитрий Казанков,
Консультант службы технической поддержки ISPserver.RU

От: Гуляев Юрий Тимофеевич — 2024-10-30 23:33:37
> Подскажите, пожалуйста, вы установили для данный файлов в каталоге /usr/share/GeoIP точно такие же права как и были на приёмнике?
Не понял вопроса… на каком приемнике? Если можно сформулируйте пожалуйста вопрос в понятной форме. Я не понимаю о каком приемнике идет речь.
Задам вопрос на форуме CMS. Меня смущает то, что на предыдущем VPS на вашем же хостинге все работало. Сайт с базой данных был перенесен на новый VPS и полностью работает.

Уважаемые форумчане — помогите пожалуйста решить проблему. Есть какие то мысли насчет этого GeoIP?

#11 31 октября 2024 в 00:26

system/controllers/stat/hooks/

Yuran

В InstantCMS нет такого компонента. Нотисы от стороннего компонента.

Если при смене хостинга сменилась и версия PHP, то функции geoip_record_by_name там нет. Полагаю, версия php стала выше 7.4. Пакет php-geoip больше не выпускается.

Техподдержка хостинга должна это знать.

#12 31 октября 2024 в 01:08

Блин… у меня установлен вот этот компонент instantcms.ru/addons/stat.html

Может он как то мешает определению города системой instantcms. Версию php не менял, как была 7.4 так и оставил.

Сейчас попробую отключить этот компонент. Хотя он внешне вроде нормально работает и даже определяет что то...

Изображение

Изображение

Добавлено спустя 10 минут

Отключил компонент. Очистил все кеши, зарегистрировался тестовым юзером — не определяется город:(

#13 31 октября 2024 в 01:38

Может он как то мешает определению города системой instantcms.

Yuran

Компонент, вернее его нотисы, никак не влияют на вашу проблему, к чему вы скрины скинули то.

Я же написал вам куда копать. Установите пакет php-geoip и настройте базы, раз php7.4 у вас. ТП хостинга должна уметь это делать. CMS просто пользуется функцией PHP, ни больше и не меньше.

#14 31 октября 2024 в 13:24

Установите пакет php-geoip и настройте базы, раз php7.4 у вас.

Fuze

Пакет php-geoip установили. Подскажите пожалуйста как настроить базы… что где прописать? На предыдущем VPS я ничего не настраивал, только поместил файл  GeoIPCity.dat в папку /usr/share/GeoIP/   и все работало....

Добавлено спустя 7 минут

О — Заработало! Fuze — огромное человеческое спасибо 🤝

#15 1 ноября 2024 в 15:29

Если при смене хостинга сменилась и версия PHP, то функции geoip_record_by_name там нет. Полагаю, версия php стала выше 7.4.

Fuze

У меня на другом сайте на instantcms версия php 8.1.29 — получается даже если для этой версии php установить php-geoip, то работать все равно не будет?

Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.