بيئة الخادم: 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
