Author Topic: GeoIP - плагин "Не инициализирован"  (Read 7965 times)

0 Members and 1 Guest are viewing this topic.

postgres

  • Full Member
  • ***
  • Posts: 7
GeoIP - плагин "Не инициализирован"
« on: March 27, 2015, 03:52:45 PM »
Mibew 2.0.0-beta.3

apache24 + php 5.5 FPM/FastCGI +  PDO/1.0.4dev pdo_mysql/1.0.2 gd

Не могу активировать GeoIP
Плагин лежит в нужном месте, базу городов скачал эту
http://geolite.maxmind.com/download/geoip/database/GeoLite2-City.mmdb.gz
переимновал, оставил в каталоге по умолчанию

при включении плагина в логах:
84.52.*.137 - - [27/Mar/2015:19:32:57 +0300] "GET /mibew/operator/plugin/Mibew:GeoIp/enable?csrf_token=0cf3443f40de294a41ff70994c2dd162a1b2ebb4 HTTP/1.1" 302 332
84.52.*.137 - - [27/Mar/2015:19:32:57 +0300] "GET /mibew/operator/plugin HTTP/1.1" 200 7025
84.52.*.137 - - [27/Mar/2015:19:32:57 +0300] "GET /mibew/locales/ru/translation.js HTTP/1.1" 200 134187

Состояние плагина -  "Не инициализирован"
В конфиге:
===================
plugins:
    "Mibew:GeoIp":
        #database_path: "/usr/local/www/apache24/data/mysite/mibew/plugins/Mibew/Mibew/Plugin/GeoIp/db/GeoIP.mmdb"
    "Mibew:GoogleMaps": # Plugin's configurations are described below
        api_key: "AIzaSyA9BlkwvDTIJ1jybPy1xuplZZPAhXyucwQ"

маску на databasepath поставил уже в самом конце, до это пробовал путь от корня сервера, путь от корня сайта, относительный путь в виде "GeoIp/db/GeoIP.mmdb"
но ничего не помогает, что то еще не так не могу понять что.
chmod -R www:www /mibew/plugins/*   - делал.

Может база все же не та?

postgres

  • Full Member
  • ***
  • Posts: 7
Re: GeoIP - плагин "Не инициализирован"
« Reply #1 on: March 29, 2015, 11:06:01 AM »
База та, просто это первый плагин, который ставлю и кое что сделал не так.

Для нормальной работы конфигуратора плагинов после добавления конфигов установленных  плагинов из файлов README  первый раз следует удалить или закомментировать строку
plugins: []  в configs/config.yml
==============================

# Plugins
#plugins: []

## Exapmle of plugins configuration
plugins:
    "Mibew:GeoIp":
#        database_path: "GeoIp/db/GeoIP.mmdb"
    "Mibew:GoogleMaps":
        api_key: "AIzaSyA9BlkwvDTIJ1jybPy1xuplZZPAhXyucwQ"
==============================

Это может показаться как очевидным так и нет. Я например предполагал что эта строка нужна, так как она сначала инициализирует пустой массив плагинов и идет вызов конструкторов менеджера плагинов какого-то, а потом  массив заполняется плагинами  инициализируя и конструируя уже только их. Но во время трассировки увидел, что конструкторы плагинов просто не вызываются при наличии plugins: []. Вызываются только статические методы плагинов: getVersion() и getDependencies() ... это офтоп, возвращаюсь к теме.
database_path имеет значение по умолчанию согласно readme поэтому я просто закомментировал этот путь. Но для разных приложений конечно правильнее вытащить его в некий общий зашаренный каталог.

« Last Edit: March 29, 2015, 11:13:18 AM by postgres »

Dmitriy Simushev

  • Moderator
  • Native
  • *****
  • Posts: 345
Re: GeoIP - плагин "Не инициализирован"
« Reply #2 on: March 31, 2015, 10:20:05 AM »
Хорошо, когда проблемы решаются сами собой  :D

Quote
Для нормальной работы конфигуратора плагинов после добавления конфигов установленных  плагинов из файлов README  первый раз следует удалить или закомментировать строку
plugins: []  в configs/config.yml
Quote
Это может показаться как очевидным так и нет. Я например предполагал что эта строка нужна, так как она сначала инициализирует пустой массив плагинов и идет вызов конструкторов менеджера плагинов какого-то, а потом  массив заполняется плагинами  инициализируя и конструируя уже только их.

Для конфигурационного файла Mibew использует формат YAML. В случае каких-то неочевидностей имеет смысл посмотреть на описание формата. А вообще, если Вы предположите лучшие, более понятные, формулировки для README файла плагина -- мы с радостью их рассмотрим.

Quote
database_path имеет значение по умолчанию согласно readme поэтому я просто закомментировал этот путь. Но для разных приложений конечно правильнее вытащить его в некий общий зашаренный каталог.
Именно для этого и был введен конфигурационный параметр database_path.