Manual:Wiki family/tr

Aşağıda, MediaWiki'yi birden fazla viki barındıracak şekilde nasıl kuracağınıza ilişkin talimatlar bulunmaktadır. Aynı sunucuda bulunan birden çok wiki, viki-aile veya viki çiftliği olarak adlandırılır. Bilinen viki çiftliklerinin listesi sayfasında mevcuttur.

Temel ilkeler
Bir viki ailesinin en yaygın yapılandırması, MediaWiki'nin tek bir sürümünü çalıştırır. Bu senaryoda aşağıdaki genel adımlar gereklidir:
 * 1) Normal bir MediaWiki sitesi kurun ve ondan bir veritabanı şablonu oluşturun. Bu ya tamamen boş olabilir (yani herhangi bir tabloda satır yok) ya da ailenin herhangi bir yeni üyesinde istediğiniz başlangıç ​​sayfaları, kullanıcılar, vikiarası bağlantıları vb. olabilir.
 * 2) Web sunucunuzu, trafiği birden çok yerden tek bir MediaWiki kurulumuna yönlendirecek şekilde ayarlayın. Bu, birden çok etki alanı, alt etki alanı veya alt dizin için olabilir ve sembolik bağlantılar, takma adlar, URL yeniden yazma veya diğer mekanizmalarla yapılabilir.
 * 3) Aileyi LocalSettings.php dosyasında dört geniş bölümde yapılandırın:
 * 4) İlk olarak, farklı vikileri (örneğin,   adlı bir değişken olarak) tanımlamak için  veya  (veya benzeri) ve   sabitini (ve ortam değişkenini) kullanın. İlki web istekleri içindir, ikincisi bakım betikleri içindir (ki bunu   parametresini ileteceksiniz). Viki tanımlanamıyorsa, bu noktada iyi bir şekilde başarısız olmayı unutmayın.
 * 5) Ardından, viki kimliğine dayanan yapılandırma değişkenlerini ayarlayın. Bunlar şunları içerir:
 * 6) Ardından, her viki için farklı olan yapılandırma değişkenlerini ayarlayın. Bunlar şunları içerir: Bunlar ayrıca ayrı bir dosyadan da dahil edilebilir, örn..
 * 7) Son olarak, LocalSettings.php dosyasının geri kalanı, uzantılar, görünümler vb. gibi tüm ortak yönleri yapılandırır.
 * 8) Kullanıcılar, oturumlar, medya (yani yüklemeler), vikiarası bağlantıları vb. gibi paylaşılan kaynaklar yapılandırılabilir.
 * 9) Aileye yeni bir viki yüklemek, veritabanı oluşturma ve veritabanı şablonunu içe aktarma ve ardından   çalıştırma meselesidir. Yükseltmeler ve diğer bakım görevleri benzerdir.

Bu sayfanın geri kalanı, yukarıdakilerin çeşitli kısımlarını ayrıntılı olarak açıklamaktadır (veya [güncelleme gerekli] yapacaktır). Ayrıca paylaşılan bir veritabanını yapılandırmak da isteyebilirsiniz.

Dev anahtar ifadesi
Bu, aynı kaynak kodunu kullanarak tek bir sunucuya birden fazla viki kurmanıza izin verecektir.


 * 1) MediaWiki dosyalarını web sunucusundaki web klasörüne yükleyin.
 * 2) İlk vikiyi her zamanki gibi ayarlayın. Ayrıntılar için  sayfasına bakın.
 * 3) Başarılı kurulumdan sonra,  dosyasını vikinizin kök dizinine taşıyın ve izlemeyi kolaylaştıracak şekilde yeniden adlandırın (örn. LocalSettings_myFirstWiki.php)
 * 4) Oluşturmak istediğiniz her viki için yukarıdaki iki ve üç adımlarını tekrarlayın, her viki için yeni bir LocalSettings.php dosyası oluşturun (örneğin, LocalSettings_anotherWiki.php, vb.)
 * 5) İki veya daha fazla ayrı olarak kurulmuş viki, ana viki dosyalarının dışında çalışacak şekilde birleştirilecekse, LocalSettings.php dosyalarınızın her birini yeniden adlandırıp ana viki klasörüne taşıdıktan sonra, LocalSettings.php dosyaları ana vikinin klasörüne işaret edecek her birinde  değişkenini değiştirin.
 * 6) Genel ayarlarınız için bir LocalSettings.php dosyası oluşturun, ardından aşağıdaki iki olasılıktan birini seçin:


 * Sunucunuzdaki bir dizine bağlanan farklı (alt) alan adınız varsa, şunu kullanın:


 * Vikileriniz aynı etki alanında ancak farklı yollardaysa (ör.,   vb.), şöyle bir şey kullanabilirsiniz:

Her viki için farklı bir DB kullanılması önerilir (Her viki için farklı bir ayarlayarak). Ancak tek bir veritabanıyla sınırlıysanız, farklı kurulumları ayırmak için farklı bir önek kullanabilirsiniz.

Ayrıca, tanınmayan herhangi bir viki URL'sini "Bu viki mevcut değil. Yapılandırmayı kontrol edin" yerine "ana" URL'ye yönlendirmek de yararlı olabilir.

EXPORT kullanma
Bu yöntem, maintenance/update.php dizisine çalıştırmak için mevcut olmasını gerektirir, ki bu elbette değildir, komut satırından. Bunun üstesinden bir ortam değişkeni ayarlanarak gelinebilir:

Alt dizin yöntemini kullanıyorsanız, şunları kullanabilirsiniz:

conf parametresini kullanma
Dev anahtar ifadesinde önerildiği gibi, ailedeki her viki için ayrı bir  dosyası kullanıyorsanız, hangi ayar dosyasının kullanılacağını   ile söylemek için   parametresini kullanabilirsiniz. Örneğin:

Drupal-stil siteleri
Yukarıdaki gibi, bu kurulum, aynı kaynak kodunu kullanarak tek bir sunucuda farklı veritabanları kullanarak birden fazla viki kurmanıza izin verir. Bu kurulum, kullanıcılara tamamen şeffaf olma ve images dizini açısından makul ölçüde güvenli olma avantajına sahiptir.

 ServerAdmin me@myserver.com DocumentRoot /home/web/wiki.mysite.com ServerName wiki.mysite.com CustomLog /var/log/apache2/wiki.mysite.log common # Alias for the site to be accessible Alias /mediawiki/code /home/web/mediawiki/code # Alias for Wiki so images work Alias /images /home/web/mediawiki/sites/wiki.mysite.com/images # If you want to password protect your site #  #   AuthType Basic #   AuthName "My protected Wiki" #   AuthUserFile /etc/apache2/htpasswd/users-mywiki #  require valid-user #  
 * 1) Tüm MediaWiki dosyalarınızı ör.   içerecek şekilde bir temel dizin oluşturun.
 * 2) MediaWiki'yi ve ek araçları her zamanki gibi sürüm bildiren bir alt dizine yükleyin (örn.,  ).
 * 3) Sürüm bildiren dizini bir kod dizinine bağlayın. örn.,
 * 4) Resimlerimizi ve ayarlarımızı içerecek bir sites dizini oluşturun:
 * 5) Vikiyi /code dizininden normal şekilde kurun.
 * 6) Başarılı kurulumdan sonra, LocalSettings.php dosyasını site kontrol edildiğinde eşleşecek bir siteler dizinine taşıyın. Örneğin, http://mysite.com/mywiki sitesini yakalamak için mysite.com.mywiki dizini oluşturulur. örn.,  . Bununla ilgili daha fazla bilgi için Drupal'ın settings.php dosyasına bakın.
 * 7) Medya dosyalarını kullanmayı düşünüyorsanız, site dizininizde bir resim dizini oluşturun. örn.,  .  Gerektiğinde yazılabilir hâle getirin.
 * 8) Drupal-stil LocalSettings.php dosyasını ana dizininize yerleştirin:
 * 9) Doğru yerleri işaret etmek için her alt sitenin LocalSettings.php dosyasını değiştirin:
 * 10) İlk önce   ile ilgili kodu yorumlayın, (1.15.3'te 16-20 satırlar) çünkü bu,   tarafından code dizinine ayarlanmıştır.
 * 11) Ardından, resim dosyalarının erişilebilir olduğundan emin olmak için şu iki satırı ekleyin, örn.:  ve . Değişkenler aksi takdirde sıfırlanacağından, bunların   (1.15.3'te satır 25) çağrısından sonra bir yere konulması gerekir.
 * 12) Gerektiğinde daha fazla değişiklik yapın.
 * 13) Apache 2 kurulumunuzu hazırlayın. Örnek site: wiki.mysite.com
 * 14) Gerekirse code dizinine bir bağlantı oluşturun, örn.
 * 15) Uygun bir VHost yapılandırması oluşturun:
 * 11. Siteleri yerel olarak kuruyorsanız,  dosyanızı site adlarıyla güncelleyin. Site şimdi çalışmalıdır.

Benim durumumda, LocalSettings.php ve veritabanlarımı yüklemek ve güncellemek için kodun başka bir kopyasını çıkardım. Yardımcı Drupal kodundaki ögesinin, komut satırından bakım betikleri çalıştırırken tanımsız olduğunu unutmayın, bu nedenle bu çözüm, bazı değişiklikler yapılmadan bakım betiklerinin kullanılmasına izin vermez.

Ubuntu için değiştirilmiş Drupal-stil yöntemi
Ubuntu/Kubuntu'da birden çok viki ve birden çok (veya iç içe geçmiş) alt viki için yukarıdaki yöntemi temel alan basitleştirilmiş bir yöntem şu adreste bulunabilir:
 * Ubuntuguide.org MediaWiki ipuçları

Ortak kaynakları paylaşan birden fazla viki
Farklı dillerde bazı vikilere sahip olmak, aynı medya dosyalarını başka bir tek vikide paylaşmak istiyorsunuz.

Örneğin:


 * en.yourwiki.org -
 * fr.yourwiki.org -
 * de.yourwiki.org -
 * pool.yourwiki.org - tüm bu vikiler için medya dosyaları (Commons gibi).
 * Wikimedia Commons için  adında bir vikiarası bağlantı olduğu için, medya dosya vikimizi "pool" olarak adlandırıyoruz.
 * Yaratıcı olmadan önce düşünün; medya dosya vikinizi "media" (örn. media.example.com) gibi bir şey olarak adlandırırsanız, dahili ad alanları ve gömülü medya dosyaları için adlandırma ile çakışabilir ( [[media:file.ext]] ).

Dosya sisteminizde her viki için bir klasör oluşturun. Her viki için kurulum betiğini çalıştırın.

Bu çözüm kaynak kodunu çoğaltır. Bu çoğaltmayı azaltmak ve önbellek performansını iyileştirmek için depo dışı kurulumlar için  (≤ MW 1.20.x), ,  ,  ,  ,  ,   (≤ MW 1.17.x),  ,  ,  ,   ve   (≥ MW 1.22.x ) dizinlerini deponun dizinlerine sembolik bağlantılarla değiştirmek isteyebilirsiniz:

THIS WILL NOT WORK. Örneğin,  girin ve ardından   girin

Aynısını Windows'ta yapmak için  kullanın

Vikiarası
Şimdi MySQL Veritabanlarını düzenleyerek tüm vikiler arasında vikiarası bağlantıları ayarlamanız gerekir (tercih ederseniz, kurun ve kullanın)
 * Vikiarası tablosu
 *  iw_prefix - vikilerin dil kodunu girin, Almanca için "de", İngilizce için "en", Fransızca için "fr" ve mediapoolwiki için "pool"
 * iw_url - burası vikilerin tam URL'sinin yeridir, ör. Almanca viki için " http://de.yourwiki.org/index.php/$1 " ("$1" değeri unutmayın!).

Vikiarası tablosuna, farklı vikiye sahip olduğunuzdan daha fazla kayıt girin (örneğin, Almanca için bir kayıt, İngilizce için bir, medya için bir kayıt).

Artık bir maddeye diğer dillere bağlayabilirsiniz. İngilizce Main_Page sayfanıza Hauptseite eklemek, Almanca vikinin (Hauptseite) Main_Page sayfasına yönlendiren "Deutsch" bağlantısını (Gezinme çubuğunun altında) oluşturacaktır. Daha fazla bilgi için sayfasına ziyaret edin

Special:Interwiki sayfaya not: (uzun bir tablo göreceksiniz) Almanca vikiye 'en' ön ekini ve http://en.yourwiki.org/index.php/$1 URL'sini ekleyin ve 'Als lokales Wiki definiert' onay kutusunu ayarlayın. Bunu İngilizce vikide 'Forward' onay kutusuyla yapın. Ve her iki vikide de ikinci bir 'pool' öneki ve http://pool.yourwiki.org/index.php/$1 girin ve 'Forward' onay kutusunu işaretleyin.

Yükleme
Pool-viki'nin "images" klasörünün yazılabilir olduğundan emin olun.

Dil vikilerinin "Dosya yükle" bağlantısını, poolwiki'nin yükleme sitesine işaret edecek şekilde değiştirmek yararlıdır. Her dil vikisinin "LocalSettings.php" dosyasını açın ve şunu ekleyin:

1.17'de ayrıca $wgUploadMissingFileUrl ögesini kırmızı bağlantılarda pool-viki'ye yönlendirilecek şekilde ayarlamanız gerekir.

Paylaşılan dosyaları kullanın
Poolwiki'nin dosyalarını dil wikilerinde kullanmak için, her dil viki için "LocalSettings.php" dosyasını açın ve şunu ekleyin:

Artık deponuzun dosyalarını (örneğin, ) ile dil vikilerinde entegre edebilirsiniz.

Resim açıklaması
Her dil vikisinde (hizmetli olarak) MediaWiki:Sharedupload-desc-here mesajını açın.

Metni şöyle bir şeyle değiştirin:

Bu dosya veri depomuzda saklanır. Bilgi ve açıklama için lütfen

oradaki açıklamayı ziyaret edin.

(Ve satırın başındaki ':' işaretine dikkat edin, bu 'pool' sitesinin sayfanın solundaki vikiarası listesine eklenmesini engeller.)

PoolWiki'de de saklanan medya açıklamasının çıkışını almak istiyorsanız, dil vikilerinin "LocalSettings.php" dosyasına ekleyin:

Paylaşılan ayarlar
Birden fazla vikiniz varsa, muhtemelen hepsinde benzer ayarları paylaşmak isteyeceksiniz. İşte bunu nasıl yapacağınız. Uzantı ayarlarınızı aşağıda ayrıntılı olarak açıklandığı gibi diğer ayarlarınızdan farklı bir dosyaya ayırmanızı öneririz. Hepsi büyük bir dosyaya konabilir, ancak özel ihtiyaçlarınıza bağlı olarak esnek değildir.

Aşağıdakilerin tümünü yaparsanız, örnek bir dizin yapısı aşağıda verilmiştir:

en/ es/ pl/ ja/ pool/ ExtensionSettings.php WikiFamilySettings.php SharedMediaSettings.php

Uzantı Ayarları

 * Step 1
 * Create a file called ExtensionSettings.php with the following contents, and place it in a location similar to the example above.


 * Step 2
 * Edit the LocalSettings.php file of each wiki that you want to use the shared settings, and add the following.
 * Step 3
 * Now just add all the references to your various extensions

Wiki Family Settings
These are settings that you want to apply to the entire wiki family. For example, maybe you want to be able to easily put all the wikis into read-only mode at the same time. You can also store the username/password for the database(s), if they are all the same. Additionally, you could control user permissions across your entire wiki from this one file.

Shared database tables
See Manual:Shared database for instructions on setting up shared database tables.

Symlink method
The symlinks method was formerly a method that eliminated the need to have redundant copies of MediaWiki on your filesystem while providing flexibility and customization for each wiki. WARNING: As of recent MediaWiki versions, this doesn't work anymore. If you try this, your MediaWiki will break. Instead, it's highly recommended to follow its spiritual successor, the method used by the Wikimedia Foundation (and the method that's used to power Wikipedia, this wiki, and many more!).

$ ls -og lrwxrwxrwx 1 16 2008-11-03 06:29 aaa.example.org -> mediawiki lrwxrwxrwx 1 16 2008-11-03 06:29 bbb.example.org -> mediawiki lrwxrwxrwx 1 16 2008-11-03 06:29 ccc.example.org -> mediawiki

Let's see a real example of. In real life we must deal with the slight differences in the names and databases of the sites we manage.

Note we still individually do database related tasks, e.g.,  (The above code should detect which wiki's update.php you are referring to.) Upgrading is simple if you download from Git. (Hopefully there is no more code that assumes there is only one wiki on the disk...)

Images
Unless you do not allow uploads or allow them only for your pool wiki, you will need to create separate image directories and alias them in your vhost configuration: , and in aaa.example.org's vhost: . Same for bbb and ccc.

However you may instead just prefer, where *.example.org/images/ just point to the same single directory. Or one could use e.g., *.example.org/$wgDBname/images/.

Adding new wikis
To add a wiki to a production
 * 1) add its configuration to your web server
 * 1) temporarily comment out the  check of config/index.php and then run it
 * 1) merge the config/LocalSettings.php produced into LocalSettings.php
 * 1) add some pages

Removing old wikis
To remove a wiki from a production


 * 1) remove its configuration from
 * 1) web server
 * 1) LocalSettings.php
 * 1) DROP DATABASE

Wikimedia Method
Another option is using the method that the Wikimedia Foundation uses. This uses only one single MediaWiki directory to provide the backbone for all sites, with the specific wiki being served dynamically determined at page load depending on the value of being sent from the webserver (in WMF's case, Apache) to PHP. The rough steps are listed below. This method isn't for the faint of heart, but it has fairly good results, as can be seen by the success the Wikimedia Foundation has had by using this :-)   Configure a template copy of MediaWiki through the online configuration wizard, or use the install.php maintenance script. Edit the Main Page if you want a default main page for every wiki you create on your farm.   After that, export your database with mysqldump, phpMyAdmin, etc. This database export can also be structure-only (e.g. ), in which case you'll have to create the first user with . Save this on your server in the maintenance/ directory as something like  .   Now, write up a few quick scripts to create a new wiki. In summary, you'll need to duplicate the database for a list of wikis (the list can be flat-file based or MySQL/SQLite based). First export the template wiki, then import the template database dump back into the database under the name of each new wiki. Use a standard suffix after the new database name (i.e. if the wiki is cat.example-farm.org, then you might choose catwiki as the database name).   In your configuration file, add something like this, fixing the database prefix and your domain as necessary:   Configure your DNS with a wildcard A record, and apache with a server alias (like ) and you should be in business.  

The script maintenance/update.php, as well as every other maintenace script, takes a  parameter that is exported as   constant. Your LocalSettings.php file needs to set it as the correct $wgDBname. (This is because on the command-line, there is no HTTP request, and therefore "SERVER_NAME" isn't set.) For instance:

Your unique LocalSettings.php (which usually consists in a few lines including a CommonSettings.php not directly accessible from the server) uses the $wgDBname variable to initialise the wiki-specific settings. See for how.

You'll also need to fix the upload directories unless you want every wiki to use the same files. If you require the upload directories to be different, consider a more sophisticated setup by modifying $wgLocalFileRepo and/or $wgForeignFileRepos. You may also want to consider a remote server solution. The Wikimedia Foundation uses OpenStack Swift. Furthermore, extensions exist to enable your wiki to use AWS S3 and Azure Storage for remote file storage as well. As said above, this is probably one of the hardest methods to do, and it requires more technical experience, but it can give really good, clean results. For more details on how the Wikimedia Foundation configures their wikis, visit the Wikitech wiki's explanation of the Wikimedia Foundation's MediaWiki architecture.

Wiki Farm Extensions
There are several MediaWiki extensions that attempt to simplify hosting of several wikis by using just one code base, however only one is currently noteworthy:


 * - beta