دليل:SQLite

This page is a translated version of the page Manual:SQLite and the translation is 100% complete.
شعار SQLite
شعار SQLite

الغرض من هذه الصفحة هو جمع المعلومات والخبرات حول تشغيل MediaWiki على SQLite.

يدعم MediaWiki SQLite منذ الإصدار 1.17، لكن يرجى ملاحظة أن هذا دعم من الدرجة الثانية، ومن المحتمل أن تواجه بعض الأخطاء. قاعدة البيانات الأكثر استخداما مع مديا ويكي هو MySQL . راجع Phabricator للحصول على قائمة بالمشكلات. يتطلب MediaWiki إصدار SQLite $ أو إصدارًا أحدث. يتنوع دعم SQLite من خلال الامتدادات التي تُجري تغييرات في قاعدة البيانات.

هل يعد SQLite خيارًا جيدًا لـ MediaWiki؟

هناك تحذيران مهمان لاستخدام SQLite لـ MediaWiki. أولاً، على الرغم من أن العديد من الإضافات تدعم SQLite، إلا أن هناك بعض الإضافات الشائعة التي لا تزال لا تدعمها حتى يومنا هذا. ثانيًا، لا يتجاوز SQLite خادمًا واحدًا. في حالة نمو موقع الويكي الخاص بك ليحتوي على العديد من المستخدمين المتزامنين وكمية كبيرة من المحتوى، سيكون من الأفضل استخدام نظام قاعدة بيانات يدعم نموذج النسخة المتماثلة الأساسية مثل MySQL. ونتيجة لذلك، إذا كان موقع الويكي الخاص بك قد يعتمد على استخدام هذه الامتدادات، أو قد يحتاج إلى استخدام نظام قاعدة بيانات نسخة متماثلة أساسية، فمن الأفضل استخدام قاعدة بيانات MySQL لموقع الويكي الخاص بك. من الأفضل اتخاذ قرار استخدام SQLite أو MySQL أو أي نظام قاعدة بيانات آخر قبل إنشاء الويكي الخاص بك، حيث أنه من الصعب التحويل من قاعدة بيانات SQLite إلى قاعدة بيانات MySQL بمجرد بدء استخدام الويكي الخاص بك.

حول SQLite

SQLite هي مكتبة قاعدة بيانات مفتوحة المصدر تم طرحها في المجال العام. على عكس أنظمة إدارة قواعد البيانات client-server، فإن SQLite library هو PHP وبالتالي يصبح جزءًا لا يتجزأ منه. من عملية الخادم. يستخدم MediaWiki وظائف SQLite من خلال استدعاءات دوال بسيطة، مما يقلل زمن الاستجابة في الوصول إلى قاعدة البيانات لأن استدعاءات الدوال أكثر كفاءة من inter-process communication.

استخدام SQLite كواجهة خلفية لقاعدة بيانات MediaWiki له إيجابياته وسلبياته:

الايجابيات
  • لا يتعين عليك تثبيت خادم قاعدة بيانات مستقل مثل MySQL وصيانته؛ وهذا يقلل بشكل كبير من الجهود المبذولة في الإدارة ويزيل بعض نقاط الفشل.
  • الأول يعني أيضًا أن SQLite أكثر ملاءمة لعمليات تثبيت MediaWiki المحمولة التي يتم تشغيلها من وحدة تخزين USB.
  • أنت غير مقيد بقيود قاعدة البيانات المصطنعة على المضيفين المشتركين.
  • يتم تخزين قاعدة البيانات بأكملها كملف واحد مشترك بين الأنظمة الأساسية، مما يسهل عمليات النسخ الاحتياطي والترحيل.
السلبيات
  • SQLite ليس قابلاً للتطوير، لذا إذا كان لديك موقع ويكي كبير وشائع، فيجب عليك استخدام MySQL.
  • على الرغم من أن SQLite لديه محرك بحث خاص به، إلا أنه غير مدعوم بحلول أكثر تقدمًا مثل Lucene.
  • من المعروف أن العديد من الملحقات تواجه مشكلات في تحديث قاعدة البيانات أو تثبيتها مع SQLite: AbuseFilter، Echo، Flow، و LiquidThreads.

تثبيت SQLite

مطلوب إصدار SQLite 3.8.0+ على الأقل. أيضًا، من أجل استخدام البحث عن النص الكامل، يجب تجميع SQLite مع تمكين وحدة FTS3 (معظم الإصدارات تحتوي على هذه الميزة خارج الصندوق هذه الأيام). يعمل SQLite3 عبر وظائف PHP PDO jobs.

  • لتثبيت SQLite3 على نظام يعتمد على Debian أو Ubuntu، استخدم apt install php-sqlite3.
  • ثنائيات Windows من php.net لا بأس بها.
  • يجب تحميل وحدة PHP PDO SQLite. يجب عليك إلغاء التعليق على السطر التالي في php.ini الخاص بك
    • extension=pdo_sqlite
  • أين يجب أن تضع قاعدة بيانات SQLite نفسها؟ يبدو أن المسار الافتراضي هو $IP/../data/$dbname.sqlite. أي شيء خارج webroot يجب أن يكون آمنًا؛ من الجيد الاحتفاظ بها في مكان قريب. أو، إذا كنت ترغب في ذلك، يمكنك وضعه في جذر الويب في مكان ما والتأكد من استخدام تكوين خادم الويب لرفض الوصول إليه.

تثبيت MediaWiki على واجهة SQLite الخلفية

  • إذا تم تثبيت وحدة SQLite الخاصة بـ PHP بشكل صحيح، فمن المفترض أن يقدم لك برنامج تثبيت MediaWiki (1 دولار) خيارًا لاستخدام SQLite.
  • إذا لم تقم بإدخال أي شيء في حقل "دليل بيانات SQLite"، فسيتم ترك $wgSQLiteDataDir الخاص بك فارغًا، والذي يتوافق مع دليل data في أصل جذر المستند، ومع ذلك قد يكون هذا الدليل مختلفًا بالنسبة لنصوص الويب والبرامج النصية للصيانة يتم تشغيله من سطر الأوامر، لذا يوصى بتحديده بشكل صريح.

محرك البحث

إصدار ميدياويكي:
1.16

تم تقديم إمكانات البحث لواجهة SQLite الخلفية في MediaWiki 1.16. إنها تتطلب SQLite مع وحدة FTS3 المجمعة، والتي عادة ما تكون موجودة في معظم البنيات الحديثة. إذا قمت مؤخرًا بتحديث دعم SQLite الخاص بك إلى إصدار يتضمن FTS3، قم بتشغيل المحدث كما لو كنت تقوم بترقية MediaWiki. بعد أن أنشأ البرنامج النصي للمُحدِّث جدول فهرس البحث، قم بتعبئته بـ rebuildtextindex.php . وينطبق الشيء نفسه على التبديل مرة أخرى إلى البيئات التي لا تحتوي على FTS3: ستؤدي إعادة تشغيل المحدث إلى خفض مستوى الجدول لتجنب أخطاء SQL.

النسخ الاحتياطي

If your wiki is currently offline, its database can be backed up by simply copying the database file. Otherwise, you should use a maintenance script: php maintenance/SqliteMaintenance.php --backup-to <backup file name>, which will make sure that operation is atomic and there are no inconsistencies. If your database is not really huge and server is not under heavy load, users editing the wiki will notice nothing but a short lag. Users who are just reading will not notice anything in any case.

استكشاف الأخطاء وإصلاحها

غير قادر على الوصول إلى قاعدة البيانات على الجهاز

للوصول إلى قاعدة البيانات عبر سطر الأوامر، اكتب في الوحدة الطرفية:

sqlite3 /var/data/database_name.sqlite

استبدال /var/data بالدليل الذي تم تعيينه كـ "دليل بيانات SQLite" أثناء عملية التثبيت. وبدلاً من ذلك، ابحث عن $wgSQLiteDataDir داخل LocalSettings.php .

قد يكون هذا أمرًا صعبًا إذا لم تكن لديك خبرة في SQLite وقمت بتشغيل sqlite3data_name - لأن هذا سيفتح قاعدة بيانات مختلفة تمامًا (إنشاؤها إذا لم تكن موجودة) نظرًا لأن SQLite يفسر الوسيطة وليس كنظام -اسم قاعدة البيانات على نطاق واسع، ولكن بدلاً من ذلك كاسم الملف الذي يحتوي على قاعدة البيانات.

مشاكل

يجب الإبلاغ عن الأخطاء إلى متعقب الأخطاء في ويكيميديا. تحقق أولاً مما إذا كانت مشكلتك قد تم الإبلاغ عنها بالفعل - تحقق من تبعيات العلامة #sqlite واستخدم البحث. إذا لم تتمكن من العثور على مشكلتك، قم بإنشاء مشكلة جديدة. على أية حال، يرجى اتخاذ بعض الخطوات لتسهيل العثور على الخلل وتتبعه: اذكر SQLite في حقل الملخص الخاص به واجعله يحتوي على علامة المشروع SQLite.

نصائح الأداء

  • إذا أمكن، تأكد من تثبيت ملحق APCu php وتعيين $wgMainCacheType على CACHE_ACCEL. في حالة عدم وجود ذاكرة تخزين مؤقت، سيستخدم MediaWiki قاعدة البيانات كواجهة خلفية لذاكرة التخزين المؤقت، مما قد يؤدي إلى التنافس على الكتابة. في Sqlite، يمكن أن يؤدي هذا إلى إبطاء الويكي الخاص بك بشكل كبير.
  • تأكد من أن قاعدة بيانات SQLite الخاصة بك في وضع WAL (2$). يمكن أن يكون لهذا تأثير كبير على الأداء عندما يقوم الأشخاص بمشاهدة موقعك وتحريره في نفس الوقت. يمكنك القيام بذلك عن طريق استخدام أداة سطر أوامر sqlite لفتح قاعدة البيانات وتشغيل الأمر PRAGMA journal_mode=wal;.

أنظر أيضاً

روابط خارجية