Wikibase/Süit
Bu sayfa eski. |
Giriş
Bir Wikibase kurulumu genellikle aşağıdaki unsurlardan oluşur:
- Bir RDBMS (MariaDB/MySQL veya SQLite) [gerekli]
- MediaWiki [gerekli]
- Wikibase uzantısı [gerekli]
- Diğer ilgili uzantılar [isteğe bağlı]
- Vikiveri sorgulama hizmeti (WDQS) [isteğe bağlı]
- WDQS proxy'si
- WDQS ön ucu
- QuickStatements [isteğe bağlı]
- Elasticsearch [isteğe bağlı]
Docker kurulumu tüm bu bileşenleri içerir ve tek bir docker-compose
komutuyla başlatılabilir.
Bu kurulum, birçok Wikibase kullanıcısının, özellikle de yeni başlayanların ihtiyaçlarını karşılar.
Ancak, Docker'ı çalıştırmak istemeyenler için (ilave yönetim yükü, üretimdeki ölçekleme sorunları veya bileşenleri daha iyi anlama arzusu nedeniyle), her bir bileşeni elle nasıl kuracağınız aşağıda açıklanmıştır.
Ağ yapılandırması
Ağ açıklamasına ve şemasına bakın: https://www.mediawiki.org/wiki/Wikibase/Maintaining#Architecture_overview
Dalmadan önce
Wikibase teknik belge sitesinde okunacak ve yararlanılacak çok sayıda teknik belge var.
Bu süreçte başarılı bir şekilde gezinmek için muhtemelen şunlara sahip olmalısınız:
- Linux ve web sunucusu yazılımlarına aşinalık
- Yazılım yükleme izniniz olan bir veya daha fazla sunucu
Wikibase paketini yükleme
MariaDB
Notlar
- MediaWiki, bu belgede özetlenen bir veritabanı yapısı oluşturur: MediaWiki veritabanı düzeni
- Wikibase'in veritabanı şeması burada açıklanmıştır: Wikibase veritabanı şeması
Talimatlar
Bir sonraki adımda bağlanan MediaWiki kurulumu, hâlihazırda oluşturulmuş bir veritabanı ve kullanıcı ile çalışan bir RDBMS'ye dayanır.
MariaDB'yi kullanmanızı öneririz ve tam bir kurulum kılavuzu bu belgenin kapsamı dışında olsa da, bu mükemmel belge koleksiyonu ve bu eğitimi ile başlayın.
MediaWiki
Notlar
- MediaWiki'nin vanilya kurulumu (doğru şekilde) PostgreSQL'i bir çalışma seçeneği olarak belirtirken, Wikibase'in PostgreSQL ile çalışmadığını unutmayın.
- MediaWiki'nin bu kurulumu için php-fpm ile nginx kullanmanızı öneririz.
- Bu yapılandırma, aynı ana bilgisayar üzerinde çalışan php-fpm'niz olduğunu varsayar; bir ağ bağlantı noktası kullanmak için
fastcgi_pass HOST:9000
kullanın. - Aşağıdaki PHP uzantılarına ihtiyacınız olacak (belgeyi yükle):
calendar ctype dom fileinfo iconv intl json mysql mbstring xml
Talimatlar
Çalışan MediaWiki nginx yapılandırması
Wikibase uzantısı
Notlar
Composer'ın düzgün çalışması için zip
ve unzip
yükleyin.
Wikibase veri modeli şu belgelerde açıklanmıştır:
Talimatlar
İsteğe bağlı kenar çubuğu
Ana sayfa kenar çubuğunuza Wikibase ile ilgili bazı bağlantılar eklemek isterseniz, LocalSettings.php dosyanızı bu yapılandırma stanzalarını ekleyebilirsiniz.
Uzantılar
There are many extensions often used with Wikibase. Only some require special install instructions for a Wikibase context; the list below includes information about all extensions included in our Docker images.
OAuth
Aşağıda göreceğiniz gibi, Wikibase'in Vikiveri sorgulama hizmeti için OAuth uzantısına ihtiyacı var.
Kurulum
OAuth yükleme talimatları kapsamlıdır. Bu yüklemeyi tamamlamak için Kullanıcı hakları çalışması anlayışından yararlanacağınızı unutmayın.
Diğer uzantılar
These extensions can be installed simply using their own installation instructions.
- Extension:ConfirmEdit
- Extension:Nuke
- Extension:EntitySchema
- Extension:UniversalLanguageSelector
- Extension:CLDR
- Extension:VisualEditor
- Extension:Scribunto
- Extension:Babel
- Extension:Wikibase EDTF
- Extension:Wikibase Local Media
- Extension:WikibaseManifest
Native and non-native data types
Extending Wikibase's functionality beyond its native data types may require the installation of additional extensions.
Native data types
- commonsMedia = "string"
- entity-schema = "string"
- external-id = "string"
- geo-shape = "string"
- globe-coordinate = "globecoordinate"
- monolingualtext = "monolingualtext"
- quantity = "quantity"
- string = "string"
- tabular-data = "string"
- time = "time"
- url = "string"
- wikibase-item = "wikibase-entityid"
- wikibase-property = "wikibase-entityid"
Non-native data types
Many other data types exist and are implemented in some instances of Wikibase, such as Wikidata. Because these other instances are frequently highly customized, below is a list of officially supported data types and the extensions they require:
- mathematical expression ("string") -- requires Extension:Math
- musical notation ("string") -- requires Extension:Score
- lexeme ("wikibase-entityid") -- requires Extension:WikibaseLexeme
- local media ("string") -- requires Extension:Wikibase Local Media
Wikidata Sorgu Servisi
Blazegraph SPARQL sorgu arka ucundan ve güncelleyicisinden oluşan Wikidata Sorgu Hizmeti (WDQS), Wikibase ile birlikte kullanılabilir ve sıklıkla kullanılır.
Talimatlar
Cesur kullanıcılar kendi WDQS örneklerini derlemek isteyebilir iken, önceden derlenmiş sürümü kullanmanızı öneririz.
- Archiva'dan istediğiniz sürümü indirin.
- 0.3.42 is the recommended version as of September 2020. Ancak, bu bilgilerin yaklaşan MediaWiki sürümü ile güncellenmesini bekleyin.
- Her sürümdeki değişiklikleri WDQS kod deposu tarayıcısında görebilirsiniz.
- Sorgu hizmetini yapılandırmak için hem Wikitech WDQS kılavuzuna hem de WDQS kullanım kılavuzuna bakın.
- Özellikle RWstore.properties ile burada belirtildiği gibi yapılandırın: Vikiveri Sorgulama Hizmeti/Kullanıcı Kılavuzu .
Elasticsearch
Genel bakış
Elasticsearch, Lucene tabanlı bir arama motorudur. MediaWiki/Wikibase ile çalışmasını sağlamak için aşağıdaki yazılıma ihtiyacınız olacak:
- Üç MediaWiki uzantısı:
- İki Elasticsearch eklentisi:
Talimatlar
- Elasticsearch 6.5.4'ü kurun (kurulum talimatlarına bakın).
- ES'nin yükleme işlemi sizden OpenJDK yüklemenizi isteyecektir.
- Yukarıda belirtilen uzantıları MediaWiki örneğinize yükleyin:
LocalSettings.php
ile aşağıdaki satırları ekleyin:
wfLoadExtension( 'Elastica' );
wfLoadExtension( 'CirrusSearch' );
wfLoadExtension( 'WikibaseCirrusSearch' );
$wgCirrusSearchServers = [ '<name/IP of host running ElasticSearch>' ];
$wgSearchType = 'CirrusSearch';
$wgCirrusSearchExtraIndexSettings['index.mapping.total_fields.limit'] = 5000;
$wgWBCSUseCirrus = true;
- Bu komutları kullanarak yukarıda belirtilen Elasticsearch eklentilerini yükleyin:
> $PATH_TO_ELASTICSEARCH/bin/elasticsearch-plugin install org.wikimedia.search:extra:6.5.4
> $PATH_TO_ELASTICSEARCH/bin/elasticsearch-plugin install org.wikimedia.search.highlighter:experimental-highlighter-elasticsearch-plugin:6.5.4
elasticsearch.yml
ile gerektiği gibi değiştirin:cluster.name
yönergesiyle kümenizi adlandırın.- Tek düğümlü bir küme oluşturun:
discovery.zen.minimum_master_nodes: 1
network.host
ile gerektiği gibi ayarlayın
jvm.options
ile gerektiği gibi değiştirin (her şeyden önce, ana makinenizin kullanabileceği bellek miktarına göre-Xms
ve-Xmx
ayarlayın)- Disk boyutunuz için "baskın aşaması" ayarlarını not edin.
- Diskin en az %5'inin her zaman kullanılabilir olmasını sağlayabilir veya
cluster.routing.allocation.disk.watermark.flood_stage
ayarını değiştirebilirsiniz. Daha fazla bilgi için bu StackOverflow maddesine bakın.
- Diskin en az %5'inin her zaman kullanılabilir olmasını sağlayabilir veya
- CirrusSearch için
UpdateSearchIndexConfig
çalıştırın:
php extensions/CirrusSearch/maintenance/UpdateSearchIndexConfig.php --startOver
- Arka planda çalışan işleri başlatın:
php /var/www/html/maintenance/runJobs.php --wiki my_wiki --wait &
ForceSearchIndex
çalıştırın:
php extensions/CirrusSearch/maintenance/ForceSearchIndex.php --queue --maxJobs 10000 --pauseForJobs 1000 --skipLinks --indexOnSkip
QuickStatements
Talimatlar
- Git'i kullanarak iki depoyu web kökünüze kopyalayın (bundan böyle
www_root
olarak anılacaktır):- QuickStatements.
- MagnusTools.
(cd MagnusTools; git checkout e71b214d56d6f68a097871a510ba39ffc6fc96ee)
www_root/quickstatements
içinde,composer install
çalıştırın.- Takip eden dosyalar için aşağıdaki ortam değişkenleri için kurulumunuzda uygun değerleri belirleyin ve ayarlayın. Ayrıca envsubst kullanılarak yerinde kolayca değiştirilebilirler.
MW_SITE_NAME="site name"
WB_PUBLIC_SCHEME_HOST_AND_PORT=<public ip>
WIKIBASE_SCHEME_AND_HOST=<localhost>
WB_PROPERTY_NAMESPACE=122
WB_ITEM_NAMESPACE=120
WB_PROPERTY_PREFIX="Property:"
WB_ITEM_PREFIX="Item:"
- Belirtilen içeriklerle aşağıdaki dosyaları oluşturun.
/www_root/quickstatements/public_html/config.json
:
{
"site" : "${MW_SITE_NAME}" ,
"bot_config_file" : "/var/www/html/bot.ini" ,
"logfile" : "/var/log/quickstatements/tool.log" ,
"sites" : {
"${MW_SITE_NAME}" : {
"oauth" : {
"language":"${MW_SITE_LANG}" ,
"project":"${MW_SITE_NAME}" ,
"ini_file":"/quickstatements/data/oauth.ini" ,
"publicMwOAuthUrl":"${WB_PUBLIC_SCHEME_HOST_AND_PORT}/w/index.php?title=Special:OAuth" ,
"mwOAuthUrl":"${WB_PUBLIC_SCHEME_HOST_AND_PORT}/w/index.php?title=Special:OAuth" ,
"mwOAuthIW":"mw"
} ,
"server" : "${WB_PUBLIC_HOST_AND_PORT}" ,
"api" : "${WIKIBASE_SCHEME_AND_HOST}/w/api.php" ,
"pageBase" : "${WB_PUBLIC_SCHEME_HOST_AND_PORT}/wiki/" ,
"toolBase" : "${QS_PUBLIC_SCHEME_HOST_AND_PORT}/" ,
"types" : {
"P" : { "type":"property" , "ns":"${WB_PROPERTY_NAMESPACE}" , "ns_prefix":"${WB_PROPERTY_PREFIX}" } ,
"Q" : { "type":"item" , "ns":"${WB_ITEM_NAMESPACE}" , "ns_prefix":"${WB_ITEM_PREFIX}" }
}
}
}
}
/quickstatements/data/oauth.ini
:
; HTTP User-Agent header
agent = 'Wikibase QuickStatements'
; assigned by Special:OAuthConsumerRegistration (request modelled after https://www.wikidata.org/wiki/Special:OAuthListConsumers/view/77b4ae5506dd7dbb0bb07f80e3ae3ca9)
consumerKey = '<OAUTH_CONSUMER_KEY>'
consumerSecret = '<OAUTH_CONSUMER_SECRET>'
- Bu ortam değişkenlerini kurulumunuza göre ayarlayın:
MW_ADMIN_NAME
: Hizmetli haklarına sahip MediaWiki kullanıcı adıQS_PUBLIC_SCHEME_HOST_AND_PORT
: Sorgu hizmeti anınızın harici IP'si
- Değişkenler ayarlandığında, OAuth'un kurulu olduğu MediaWiki kurulumunuzda aşağıdaki php betiğini çalıştırarak bir OAuth tüketicisi oluşturun:
php /var/www/html/extensions/OAuth/maintenance/createOAuthConsumer.php \
--approve \
--callbackUrl $QS_PUBLIC_SCHEME_HOST_AND_PORT/api.php \
--callbackIsPrefix true \
--user $MW_ADMIN_NAME \
--name QuickStatements \
--description QuickStatements \
--version 1.0.1 \
--grants createeditmovepage \
--grants editpage \
--grants highvolume \
--jsonOnSuccess
- Başarılı bir yanıt, bu örnekte olduğu gibi "oluşturulmuş" işareti "true" olarak ayarlayacaktır:
{"created":true,"id":1,"name":"QuickStatements","key":"30e532f04e1bdf63ac281fcbc819170c","secret":"f60f31ad4196af40bb0598e1d4d3435a3515604e","approved":1}
Daha fazla bilgi için Docker resim README dosyasına bakın.