حل تحذير MaxMindDB في سجلات الأخطاء

بيئة الخادم: VPS، تم نشر Discourse عبر Docker في 1Panel

هذا الحل ينطبق على الحالات التي لا يتم فيها تعيين معرف MaxMind ومفتاحه في ملف app.yml، ويتم بدلاً من ذلك تحميل ملفات GeoLite2-City.mmdb و GeoLite2-ASN.mmdb تلقائياً بشكل دوري من نسخة GitHub.

يمكنه حل تحذيرات MaxMindDB التاليتين اللذين يظهران في سجل الأخطاء:

MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-City.mmdb) could not be found: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-City.mmdb

MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-ASN.mmdb) could not be found: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-ASN.mmdb

الإجراءات:

1. إنشاء مجلد maxmind على المضيف (Host) وضبط الصلاحيات:

mkdir -p /opt/1panel/apps/discourse/shared/standalone/maxmind && chmod 755 /opt/1panel/apps/discourse/shared/standalone/maxmind && chown 1000:1000 /opt/1panel/apps/discourse/shared/standalone/maxmind

2. إعداد ربط ملفات GeoLite2-City.mmdb و GeoLite2-ASN.mmdb مع المضيف:

قم بتحرير ملف app.yml وأضف التالي:

  - volume:
      host: /opt/1panel/apps/discourse/shared/standalone/maxmind/GeoLite2-City.mmdb
      guest: /var/www/discourse/vendor/data/GeoLite2-City.mmdb
  - volume:
      host: /opt/1panel/apps/discourse/shared/standalone/maxmind/GeoLite2-ASN.mmdb
      guest: /var/www/discourse/vendor/data/GeoLite2-ASN.mmdb

3. إعداد مهمة مجدولة عبر 1Panel لتحميل وتحديث ملفات الخرائط GeoLite2-City.mmdb و GeoLite2-ASN.mmdb من GitHub أسبوعياً:

نص سكريبت المهمة المجدولة هو كالتالي:

cd /opt/1panel/apps/discourse/shared/standalone/maxmind && rm -f GeoLite2-City.mmdb GeoLite2-ASN.mmdb && wget -O GeoLite2-City.mmdb https://github.com/P3TERX/GeoLite.mmdb/raw/download/GeoLite2-City.mmdb && wget -O GeoLite2-ASN.mmdb https://github.com/P3TERX/GeoLite.mmdb/raw/download/GeoLite2-ASN.mmdb && chmod 644 GeoLite2-City.mmdb GeoLite2-ASN.mmdb && chown 1000:1000 GeoLite2-City.mmdb GeoLite2-ASN.mmdb