MediaWiki-Vagrant

This page is a translated version of the page MediaWiki-Vagrant and the translation is 52% complete.
Outdated translations are marked like this.

MediaWiki-Vagrant taşınabilir bir MediaWiki geliştirme ortamıdır. MediaWiki çalıştıran bir sanal makinenin oluşturulmasını otomatikleştiren Vagrant ve VirtualBox için bir dizi yapılandırma betiğini oluşur. Yapılandırma güvenlikten ziyade kolay gelişime yönelik olduğundan, MediaWiki-Vagrant herkese açık vikiler için önerilmez.

Vagrant'ın görsel özeti
Vagrant'ın görsel özeti
MediaWiki Vagrant simgesi
MediaWiki Vagrant simgesi
Bryan Davis, Wikimania'daki bir röportajda MediaWiki Vagrant'ın ne olduğunu açıklıyor
Medyada TechTalkWiki-Vagrant Bryan Davis ve Dan Duvall
Bryan Davis ve Dan Duvall tarafından TechTalk'ta MediaWiki-Vagrant slaytları

MediaWiki-Vagrant'ın oluşturduğu sanal makine, MediaWiki'nin kodunu öğrenmeyi, değiştirmeyi ve geliştirmeyi kolaylaştırır: varsayılan olarak kullanışlı hata ayıklama bilgileri görüntülenir ve güçlü bir hata ayıklayıcı da dahil olmak üzere MediaWiki kodunu incelemek ve etkileşime girmek için özel olarak çeşitli geliştirici araçları ayarlanır. En iyisi, yapılandırma otomatik olduğu ve sanal bir ortamda bulunduğu için hataların geri alınması kolaydır.

Sistem gereksinimleri

CPU
64 bit x86 işlemci
OS
Linux, macOS veya Windows
Hafıza
Hem ana bilgisayar işletim sistemini hem de VM'yi çalıştırmak için sisteminizde toplam en az 4 GiB RAM, tercihen 8 GiB veya daha fazla. Yapma yalnızca 2 GiB RAM'e sahip bir sistemi çalıştırmayı denemeyin, sonuçta başarısız olur.
Disk
Karmaşık kurulumlar için, birincil sürücüde 10-12 GB boş alana sahip olmanız gerekir (Linux için 1 ABD doları tutarında bölüm, Windows için 2 ABD doları sürücü). Özellikle VM disk görüntülerinin varsayılan olarak ana dizininizin altında saklanacağını unutmayın.
Debian Linux güncellemelerini ve MediaWiki kaynak kodunu indirmek için yeterli bant genişliğine sahip aktif ağ bağlantısı.
Kurulum zamanı
Koşullara ve herhangi bir sorun yaşamanıza bağlı olarak 20 dakika ila 2 saat

Hızlı başlangıç

(MediaWiki-Vagrant'ı USB dağıtımından yüklüyorsanız, ilk beş adım yerine README'deki adımları izleyin.)

  1. Git alın
  2. (Yalnızca Linux) Yüklü değilse NFS yazılımını yükleyin.
    • Ubuntu'da sudo apt-get install nfs-kernel-server kullanın.
    • Fedora genellikle NFS kurulu olarak gelir; değilse sudo dnf install nfs-utils çalıştırın.
  3. VirtualBox alın[1]
  4. En son Vagrant'i alın. Note that Vagrant v2.3.7 is the last version licensed under a free license.[2]
  5. Clone code into your current directory (don't clone into a folder in WSL)[3]
    $ git clone --recursive https://gerrit.wikimedia.org/r/mediawiki/vagrant
    
  6. Enter vagrant directory to run vagrant commands in:
    $ cd vagrant
    
  7. Run setup script to setup vagrant before starting the machine:
    Linux/macOS:
    $ ./setup.sh
    
    Windows:
    $ .\setup.bat
    
    İstendiğinde, Gerrit kullanıcı adınızı girin (önerilir) veya yalnızca ↵ Enter tuşuna basın.
    En son sürüm yerine bir sürüm dalı kullanmak istiyorsanız, şimdi vagrant hiera mediawiki::branch REL1_27 ile belirtebilirsiniz.
  8. Start the virtual machine:
    $ vagrant up
    
    Doing this for the first time might ask for your password as setting up directory sharing via NFS requires sysadmin rights. You can avoid that by setting the appropriate sudo permissions, as described here.
    Pay attention to the console output to make sure that there are no errors. If you bump into errors, the #Troubleshooting startup section may be helpful.
  9. Vagrant makinenizi yapılandırmayı tamamladığında, vagrant open komutunu verin veya MediaWiki örneğinizi bulmak için $url gidin. Admin kullanıcısı ve vagrant parolasını ile giriş yapabilirsiniz.
  10. Ek MediaWiki özelliklerini etkinleştirin, örn.:
    To see a list of features (vagrant roles) you can enable, run:
    $ vagrant roles list
    
    To enable a feature, for example the VisualEditor , run:
    $ vagrant roles enable visualeditor
    
    To apply the roles you've enabled to your wiki, run:
    $ vagrant provision
    
Varsayılan VirtualBox sağlayıcısı kullanılırsa ve ana bilgisayardaki sanal CPU sayısı 32'yi aşarsa vagrant up başarısız olur. VM'ye çekirdeklerin 32'sinden daha azını atamak için vagrant config vagrant_cores <çekirdek sayısı> kullanın.
İlk vagrant up işleminin tamamlanması bir saat veya daha fazla sürebilir.

Windows Subsystem for Linux (WSL)

Windows 10'da WSL Linux uyumlu kabuk kullanılıyorsa: komutları vagrant yerine vagrant.exe ile çalıştırın. Linux bash kabuğunda çalışmayan ./setup.bat yerine vagrant.exe config --required komutunu çalıştırın.

Vagrant'ı çalıştıran hesabın muhtemelen "Sembolik Bağlantılar Oluştur" iznine (yönetici olarak çalıştırmanın kolay yolu) ihtiyacı olacaktır.

Başlangıç sorunlarını giderme

Sorunlarınız burada yanıtlanmazsa, IRC iyi bir seçenektir, özellikle de #wikimedia-tech bağlan kanalı.

  • Bazen bozuk yüklemeleri (örneğin "Viki bulunamadı...” diyerek vagrant destroy; vagrant up komutunu çalıştırarak sanal makineyi en çok zaman harcamadan yeniden oluşturarak düzeltebilirsiniz.

Herhangi bir ana bilgisayar

  • Linux dağıtımınızın sağladığı VirtualBox ve Vagrant sürümlerini kurmayı deneyebilirsiniz. Son Debian veya Ubuntu çalıştırıyorsanız, VirtualBox ve Vagrant için paketleri yüklemek üzere sudo apt-get install virtualbox vagrant deneyin.
  • vagrant up üzerinden hata alırsanız, bunun yerine VirtualBox ve Vagrant'ın en son sürümlerini yükleyin.
  • "$CLONED_REPOSITORY/trusty-cloud dosyası açılamadı" gibi bir hata mesajı alıyorsanız, aşağıdaki komutu deneyin: vagrant up --provider=virtualbox
  • Kukla hatalarınız varsa, kukla alt modüllerini başlatmanız gerekebilir, vagrant dizininde git submodule update --init çalıştırın
    • Error: Puppet::Parser::AST::Resource failed with error ArgumentError: Could not find declared class
  • Apache/PHP'nin çalışıp çalışmadığını kontrol etmek için http://127.0.0.1:8080/info.php kullanın.

Terminalinizdeki ilk vagrant up çalışmasının çıkışını bu örnek ile karşılaştırmak isteyebilirsiniz. İlk kurulum uzun sürebilir; bir yere asılıyor gibi görünüyor, ancak hata yoksa, yalnızca bir süre verin.

  • VirtualBox Guest Additions'ınızın yanlış sürüm olduğuna dair uyarılar alırsanız, bunları otomatik olarak güncelleyen vagrant-vbguest eklentisini yüklemeyi deneyebilirsiniz.
  • Vagrant sanal makinenizle eşleşmeyi nadiren kaybeder. Bu iletiyi, bu soruna geçici bir çözüm bulmak için bazı yolları açıklar (örneğin, eski VM sabit sürücüsünü yeni profile bağlama)
  • vagrant/mediawiki deposunun güncel olduğundan emin olun:
$ cd vagrant/mediawiki
$ git pull
  • BIOS'ta sanallaştırmayı etkinleştirdiğinizden emin olun. Bazen bu Güvenlik ayarları altındadır.
  • Dil kodlama ayarlarınızın UTF-8 olduğundan emin olun. "US-ASCII'de geçersiz bayt dizisi" alırsanız, LANG ve LC_ALL ortam değişkenlerinizi uygun bir şeye ayarlamayı (yeniden) deneyin. Örneğin:
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
Eski VM'leri sildiyseniz "...path contains non-directory or non-existent components..." gibi bir hata mesajı görürsünüz ve vagrant up tamamlanmaz. NFS kullanıyorsanız (Windows olmayan bir ana bilgisayar işletim sisteminde), $export komutunu kaldırarak bunu düzeltebilmeniz gerekir: sudo rm -i /etc/exports girin Vagrant, vagrant up ile bir sonraki çalıştırmanızda /etc/exports dosyasını yeniden oluşturacaktır.
MediaWiki-Vagrant, 64 bitlik bir konuk (sanal makine) belirttiği için VT-X'i desteklemeyen bir ana bilgisayarda çalışmaz. MediaWiki-Vagrant'ın 64 bitlik bir sanal makinede çalışması gerekiyor, çünkü yalnızca amd64 mimarisi için oluşturulan WMF üretiminden deb paketleri kullanıyor.

Windows'a özgü

  • Windows kullanıyorsanız ve "konuk makine geçersiz bir duruma girdi", "poweroff" alırsanız, 4.3.15 VirtualBox derlemesini indirmeyi deneyin (Windows'ta 4.3.14 ile ilgili bilinen bir sorun var). Bu yardımcı olmazsa, BIOS'ta Donanım Sanallaştırma Teknolojisini (VT-x veya AMD-V) etkinleştirdiğinizden emin olun. Donanım Sanallaştırması gerekiyor. İsteğe bağlı bir performans geliştirmesi değildir. (Bazı dizüstü bilgisayarlar güç kablosunu ve pili 30 saniye [1] için çıkarmanızı gerektirir)
  • VirtualBox, Microsoft'un Hyper-V'si ile uyumsuz. Visual Studio yüklediyseniz varsayılan olabilecek Hyper-V etkinleştirilmişse, VirtualBox'da bir VM'yi başlatmaya çalışırken yukarıdaki hataları alırsınız. Üç olasılık vardır:
    • Komut isteminde Hyper-V'yi kapatmak ve yeniden başlatmak için bcdedit /hypervisorlaunchtype ayarını kapatın komutunu çalıştırın. Hyper-V'yi tekrar açmak için kapalı yerine otomatik olarak ayarlayın
    • Denetim Masası'ndaki 'Windows Özellikleri Ekle/Kaldır' ile Hyper-V'yi devre dışı bırakın ve yeniden başlatın. Bu, VirtualBox'ın çalışmasını sağlar, ancak Windows Phone emülatörleri gibi tüm Hyper-V VM'lerini kullanmanızı önler.
    • veya Vagrant için VirtualBox yerine Hyper-V sağlayıcısı kullanın. Bu kararsız olabilir.

Mac'a özgü

  • NFS hataları NFS hatalarını önlemek için, yüklerken güvenlik duvarının bağlantıları kabul edeceğinden emin olun: Apple > Sistem Tercihleri > Güvenlik ve Gizlilik > Güvenlik Duvarı > Güvenlik Duvarı Seçenekleri. Aşağıdakileri kabul etmek için "Tüm gelen bağlantıları engelle"'nin işaretini kaldırmanız ve muhtemelen "Gizli modu etkinleştir" seçeneğinin işaretini kaldırmanız gerekir: netbiosd, nfsd, rpc.lockd, rpc.rquotad, rpcbind, VBoxHeadless. Bir kaç vagrant up sırasında bilgisayarınızı yeniden başlatmanız ve durumu "Gelen bağlantılara izin ver" olarak değiştirmeniz gerekebilir. Kurulumdan sonra, güvenlik duvarı kuralları güncellendiğinden "Gelen tüm bağlantıları engelle ve "Gizli modu etkinleştir"'i tekrar kontrol edebilirsiniz.

You will need to UNcheck "Block all incoming connections" and probably also UNcheck "Enable stealth mode" in order to accept the following: netbiosd, nfsd, rpc.lockd, rpc.rquotad, rpcbind, VBoxHeadless. Note, you may need to restart your computer and change the status to "Allow incoming connections" during a couple vagrant ups. After installation, you may be able to re-check "Block all incoming connections and "Enable stealth mode" now that the firewall rules have been updated.

    • Alternatif olarak NFS paylaşımlarını vagrant config nfs_shares off ile kapatabilirsiniz

Debian ve Ubuntu

  • MediaWiki-Vagrant, bazı klasörleri ana bilgisayarla (bilgisayarınız) paylaşmak için NFS kullanır. Bilgisayarınızı "NFS sunucusu" olarak ayarlamanız gerekir, Ubuntu talimatlarına bakın. Debian'da, sudo apt-get install nfs-kernel-server çalışacaktır; modprobe nfsv3 de kullanmanız gerekebilir. Debian'ın NFS sunucusunun /etc/exports içine giriş yapılmadan başlamayacağını unutmayın. sudo rpcinfo -p "nfs" hizmetlerinin çalıştığını göstermiyorsa, muhtemelen olan budur. Ana dizininizi /etc/exports da son satır olarak eklemek ve ardından /etc/init.d/nfs-kernel-server restart sizi almak için genellikle yeterli olacaktır bu tavuk ve yumurta sorununu aştı.
  • MediaWiki-Vagrant tarafından kullanılan NFS paylaşımları, Ubuntu üzerinde çalışıyor ve şifrelenmiş bir giriş dizini kullanıyorsanız olduğu gibi şifreli bir dizinden çalıştırılamaz. MediaWiki-Vagrant'ı çalıştırmak için:
    • vagrant up çalıştırmadan önce MediaWiki-Vagrant dizinini parola edilmemiş bir birime (örn. /opt) taşıyın
    • Alternatif olarak NFS paylaşımlarını vagrant config nfs_shares off ile kapatabilirsiniz
  • NFS kurulumu bazen takılıyor gibi görünüyor (ilk vagrant up "NFS paylaşılan klasörlerini bağlama" bölümünde asılı duruyor). Restarting the NFS daemon on the host helps. (See #5802.)
  • Bağlantı noktalarının kullanımda olduğunu belirten bağlantı noktası yönlendirme hataları alıyorsanız, sanal kutuyu açmanız, sanal makineyi tamamen kaldırmanız ve tekrar denemeniz gerekebilir.
  • vagrant up, "Çalıştırılmaya çalışılan 'bsdtar' Vagrant'ın PATH değişkeninde bulunmadı." söyleyebilir. Bunu Ubuntu'da sudo apt install libarchive-tools ile düzeltebilirsiniz.
  • Güvenli Önyükleme etkinleştirilmiş Ubuntu'da, VirtualBox'ı kurmakta zorlanacaksınız. /sbin/vboxconfig çalıştırdığınızda makineniz size bahane verebilir. Varsa, ilgili çekirdek modülünü imzalayarak durumu düzeltebilirsiniz. Adım adım talimatlar bu askubuntu gönderisinde bulunabilir.

Fedora

  • vagrant up çalıştırdıktan sonra Network 10.11.12.13 is not available. alırsanız, sudo setenforce 0 üzerinden SELinux'u devre dışı bırakın veya SELinux kurulumunuzu düzeltin.
  • The provider for this Vagrant-managed machine is reporting that it is not yet ready for SSH., vagrant roles enable mediawiki --provision ile çalıştırdıktan sonra, açıkça belirttiğinizden emin olun sağlayıcıyı, örneğin vagrant destroy ve ardından vagrant up --provider=virtualbox ile ayarlayın
  • mount.nfs: mount to NFS server '10.11.12.13:download-directory/vagrant' failed: RPC Error: Unable to receive alırsanız, vagrant config nfs_shares çalıştırın

Temel kullanım

 
Ekran görüntüsü

Ana makinedeki vagrant komut satırı aracı, sanal makinenizi kontrol etmek için çeşitli alt komutlar sağlar. Zaten bir tane kullandınız: sanal makineyi açan vagrant up. Çoğu vagrant alt komutu gibi, MediaWiki-Vagrant dizininden veya alt öğelerinden birinden çalıştırmanız gerekir. İlk kez çalıştırdığınızda, Vagrant bir sistem görüntüsü alır ve MediaWiki'yi çalıştırmak için gerekli yazılımı kurar. Bu, geniş bant bağlantıda 1-2 saat CPU ve duvar saati süresi alabilir, ancak yalnızca bir kez gerçekleşmesi gerekir. Gelecekte vagrant up çalıştırdığınızda, makineyi açacaksınız. You've already used one: vagrant up, which turns on the virtual machine. Like most vagrant subcommands, you need to run it from the MediaWiki-Vagrant directory or one of its children. When you first run it, Vagrant will fetch a system image and set up requisite software for running MediaWiki. This can take 1–2 hours of CPU and wall clock time on a broadband connection, but it only needs to happen once. When you run vagrant up in the future, it will simply boot up the machine.

vagrant ssh sanal makinede etkileşimli bir giriş kabuğu başlatır. Sizi vagrant kullanıcısı olarak oturum açar; root erişimi, parolasız sudo üzerinden kullanılabilir. Sanal makine tamamen bilgisayarınızda korumalı olduğundan, güvenlik için değil kolaylık için yapılandırılmıştır. Kural olarak, bir parola istemiyle karşılaştığınızda parola vagrant olur. It'll log you in as the user vagrant; root access is available to via sudo, which is passwordless. Because the virtual machine is entirely sandboxed within your computer, it is configured for convenience, not security. As a rule, whenever you encounter a password prompt, the password is vagrant.

Oturum açtığınızda, renkli bir MediaWiki şeridi ve birkaç yararlı komut hatırlatıcısı görmelisiniz.

phpsh komutu, MediaWiki'nin kod tabanı önceden yüklenmiş olarak etkileşimli bir PHP yorumlayıcısı başlatır. Bir kod yazıp 'enter' tuşuna bastığınızda kod hemen değerlendirilir. Bir çizgiyi '=' ile başlatırsanız, hesaplanan değeri güzel yazdırılır. Hızlı yardım için ? veya ek talimatlar için help start yazın. You can type in some code, hit 'enter', and the code will be evaluated immediately. If you start a line with '=', its computed value will be pretty-printed. Type ? for quick help or help start for additional instructions.

/vagrant klasörü, ana makinenizdeki MediaWiki-Vagrant klasörüne karşılık gelir ve içeriği paylaşılır. MediaWiki'nin kodu /vagrant/mediawiki içine kurulur. Bu, sanal makinenizde çalışan MediaWiki kodunu düzenlemek için ana makinenizdeki normal düzenleyici ortamınızı kullanmanıza olanak tanır. MediaWiki's code is installed in /vagrant/mediawiki. This allows you to use your normal editor environment on your host machine to edit the MediaWiki code that runs on your virtual machine.

Güncelleme

Git depolarınızı, harici kitaplıklarınızı ve veritabanı şemanızı güncel tutmak için vagrant git-update kullanın. Bu komut çalıştırmaya eşdeğerdir This command is equivalent to running

  1. git pull içinde core ve tüm uzantı ve görünüm dizinleri
  1. En yeni Composer tarafından yönetilen kitaplıkların kullanılabilir olmasını sağlamak için composer update
  1. son olarak update.php betiği.

Ayrıca zaman zaman (veya yeni bir özellik için gerektiğinde) vagrant git-update içermeyen MediaWiki-Vagrant'ın kendisini güncellemelisiniz. Şunu çalıştırın:

git pull

… MediaWiki-Vagrant kök dizininizde. Bu, çalıştırdığınızda geçerli olacaktır:

vagrant provision

Bu komutu git pull komutunu çalıştırdıktan hemen sonra veya bir süre sonra çalıştırabilirsiniz.

  Uyarı: Git'ten manüel olarak güncelleme yaparsanız, MediaWiki için gereken harici kütüphaneleri indirmek için composer update ile çalıştırmanız gerekebilir. composer update gerekip gerekmediğini görmek için checkComposerLockUpToDate.php betiğini çalıştırabilirsiniz.
Bazı projelerin NPM bağımlılıkları vardır, çoğunlukla yalnızca geliştirme amaçlıdır ve Composer tarafından yüklenmez. Bunlar yaklaşık olarak find -not \( -name node_modules -prune \) -name package.json ile tanımlanabilir ve bir güncelleme sonrasında npm install çalıştırılarak gerektiğinde elle yüklenebilir her dizin istedi.

logout yazarak veya Ctrl+D tuşlarına basarak sanal makinenizden oturumu kapatın. Artık standart bir komut istemine geri döndüğünüze göre, sanal makineyi kapatmak için vagrant halt ve yeniden getirmek için vagrant up çalıştırabilirsiniz. vagrant destroy sanal makinenin dosyalarını silecek; örneğinizi bozulmamış bir duruma döndürmek istiyorsanız bu komut yararlıdır. (Yeni bir örnek sunmak için vagrant up ile devam etmeniz gerekir.)

Rolleri kullanma

MediaWiki-Vagrant varsayılan olarak temel bir MediaWiki örneği oluşturur, ancak bazı popüler MediaWiki uzantıları ve bağımlılıkları da dahil olmak üzere bir dizi tamamlayıcı yazılımı nasıl yapılandıracağını da bilir. Bu isteğe bağlı yazılım yığınları topluca 'roller' olarak bilinir ve MediaWiki-Vagrant bunları yönetmek için kolay ve güçlü bir komut satırı arabirimi sunar.

$ vagrant roles list # Kullanılabilir rollerin bir listesini görüntüler. $ vagrant roles enable rol # Bu makine için rolü açın. $ vagrant roles disable rol # Bu makine için rolü kapatın. $ vagrant provision # Rolleri etkinleştirmeyi ve/veya devre dışı bırakmayı tamamladıktan sonra, değişikliğin geçerli olması için bunu çalıştırın.

Rollerin nasıl kullanılacağını gösteren kısa bir screencast izleyin. Roller, bazı roller hakkında daha fazla bilgiye sahiptir.

Çok sayıda rol eklerseniz, Vagrant VM'nin kullanabileceği belleği artırmanız gerekebilir. Özellikle, "browsertests" rolünü ayarlamak, belleğe aç bir görev olan ffi, ruby Gem'in derlenmesini içerir; başarısız olursa sanal makinede bellek boşaltmayı veya bellek ayırmayı artırmayı deneyin (hata 53864).

MediaWiki-Vagrant'a rol eklemek istiyorsanız aşağıdaki Yazarlık rolleri bölümüne bakın.

Belirli rollerle ilgili sorunları giderme

centralauth

Özel dikkat gerektiren bazı roller vardır, centralauth rolü db geçişlerini kukla yoluyla otomatik olarak çalıştırmaz ve bunları elle çalıştırmayı gerektirir. Bu rolü sağlama konusunda hata alırsanız, uzantıda bu komut dosyasını çalıştırmayı ve çıktısını aldığınız hataları görmeyi deneyin:

mwscript extensions/CentralAuth/maintenance/migrateAccount.php --username 'Admin' --auto

Daha somut bir hata aldığınızda, muhtemelen buradaki göçlerden kaçınmanız gerektiğini bilmeniz gerekir:

extensions/CentralAuth/db_patches

wikidata

Basit bir vagrant roles enable wikidata && vagrant provision başarısız olmasını sağlar. İşte Vikiveri rolünü çalışır hale getirmek için eksiksiz bir komut seti.

$ vagrant up
$ vagrant git-update
$ vagrant ssh
$ sudo apt-get update && sudo apt-get upgrade
$ composer selfupdate --update-keys
$ composer config --global process-timeout 9600
$ exit
$ vagrant roles enable wikidata
$ vagrant provision

İlk hükmün şikayette bulunabileceğini, dolayısıyla bir başarısızlığa benzediğini unutmayın. Ancak, ikinci bir hüküm yürütürseniz, her şeyin yolunda gittiğini göreceksiniz.

Daha sonra tarayıcınızı http://wikidata.wiki.local.wmftest.net:8080/ ile yönlendirebilirsiniz. Yeni bir Vikiveri öğesi oluşturmak için http://wikidata.wiki.local.wmftest.net:8080/wiki/Special:NewItem yükleyin ve yeni bir özellik oluşturmak için http://wikidata.wiki.local.wmftest.net:8080/wiki/Special:NewProperty adresine gidin

Bir Vikiveri dökümü nasıl alınır

Bir XML dosyasını MediaWiki'ye içe aktaran Vagrant komutu import-dump, varsayılan olanın dışındaki vikileri işlemez (phab:T183274#3893785 sayfasına bakın). Vagrant kutusunun içindeki importDump.php betiğini çalıştırmanız gerekir.

İşte XML dökümlerini içe aktarma prosedürü.

$ mkdir wikidata_dumps
$ cd wikidata_dumps
  • pages-articles parçalarını indirin. Örneğin:
$ wget https://dumps.wikimedia.org/wikidatawiki/latest/wikidatawiki-latest-pages-articles10.xml-p5264684p6341661.bz2
  • Wikibase varlıklarının içe aktarılmasını etkinleştirin (phab:T72898#1588002 sayfasına bakın). $Localsettings öğenize aşağıdaki satırı ekleyin:
$wgWBRepoSettings[ 'allowEntityImport' ] = true;
  • Aşağıdaki BASH betiği işlemi izlemenize yardımcı olabilir. Bir import_wikidata.sh dosyasına yapıştırabilirsiniz. Vurgulanan satırın gerçek içe aktarma komut dosyasını çağırdığını unutmayın:
#!/usr/bin/env bash

chunks=$(find wikidata_dumps -type f)
for chunk in $chunks
do
    now=$(date)
    echo "$now: started import of $chunk" >> wd_import.log
    echo "-------------------------------------------" >> wd_import.log
    bzcat $chunk | mwscript importDump.php --wiki=wikidatawiki --uploads --debug --report 10000 2>>wd_import.log
    now=$(date)
    echo "-------------------------------------------" >> wd_import.log
    echo "$now: completed import of $chunk" >> wd_import.log
    echo "===========================================" >> wd_import.log
done
  • Vagrant kutusuna giriş yapın ve betiği çalıştırın. Hata ayıklama iletileri burada görünmelidir:
$ vagrant ssh
$ cd /vagrant
$ sudo chmod +x import_wikidata.sh
$ ./import_wikidata.sh
  • İlerleme günlüğünü Vagrant kutusunun dışından takip edebilirsiniz:
$ tail -f wd_import.log

Ek öneriler

Speeding up MediaWiki on Windows

MediaWiki out-of-the-box will likely run slow (page loads take 5+ seconds). This is because the virtual machine uses a shared file system that retrieves the files very slowly. Enabling NFS on Windows by installing the Vagrant WinNFSd plugin with vagrant plugin install vagrant-winnfsd, enabling NFS shares with vagrant config nfs_shares true, and restarting the machine with vagrant reload should significantly speed up page load times. You should make sure that the plugin is installed every time you run the machine as well.[4] You can further speed it up by enabling nfs_cache, however, be warned that your wiki may run into weird errors because some files may not be updated completely when using the cache.

You can also speed up Mediawiki by using smb_shares. Make sure not to enable it at the same time as nfs_shares. Enable it with vagrant config smb_shares yes and run vagrant reload in an shell run as an administrator. If you don't run it as an administrator, you will be warned with an error when vagrant goes up and when you go to the wiki address, you will see a Wiki not found. When prompted, type in the username of your account (the name of your home user directory) and password (your Microsoft account password if your account is not a local account with a normal password).

Yerel MediaWiki çekirdek kopyası

Bazen vagrant dizininin tamamını kaldırarak veya vagrant/mediawiki dizinini temizleyerek sıfırdan başlamak isteyebilirsiniz. Vagrant provizyon işlemini hızlandırmak için, vagrant/mediawiki içine kopyaladığınız MediaWiki çekirdeğinin yerel, güncellenmiş bir klonunu tutmayı düşünebilirsiniz. In order to speed up the vagrant provisioning process, you may want to consider keeping a local, updated clone of the MediaWiki core that you copy into vagrant/mediawiki.

örneğin, MediaWiki depolarını ~/projects/mediawiki/ içine kopyaladığınızı varsayarsak:

# MediaWiki çekirdeğinin temiz bir kopyasını kopyalayın ve ~/projects/mediawiki/core dizininde saklayın
cd ~/projects/mediawiki/
git clone ssh://<your-gerrit-username>@gerrit.wikimedia.org:29418/mediawiki/core

# ~/projects/mediawiki/vagrant içindeki vagrant'ın temiz bir kopyasını kopyalayın
cd ~/projects/mediawiki
git clone ssh://<your-gerrit-username>@gerrit.wikimedia.org:29418/mediawiki/vagrant

# yoksa mediawiki alt dizinini oluşturun
cd ~/projects/mediawiki/vagrant
mkdir ~/projects/mediawiki/vagrant/mediawiki

# temiz MediaWiki çekirdeğini temiz vagrant/mediawiki dizinine kopyalayın
cp -r ~/projects/mediawiki/core/ ~/projects/mediawiki/vagrant/mediawiki

Klonlanmış depoları güncelleyin

Klonlanmış depoları olabildiğince sık/gerekli şekilde güncelleyin.

cd ~/projects/mediawiki/core
git pull

cd ~/projects/mediawiki/vagrant
git pull
git submodule update --init --recursive

Veya tüm klonlanmış depoları güncellemek için:

vagrant git-update

Vagrant yeniden yüklemesi

Yapılandırmayı değiştirirseniz (örn. vagrant_ram, VM/MediaWiki web siteniz donar veya bir sorun yaşarsanız, vagrant reload bunu çözebilir. Bu, konakınıza yeniden başlatacaktır. Bazı roller, otomatik olarak gerçekleşmesi gereken bir yeniden yükleme gerektirir.

Roller ne zaman etkinleştirilir

Rolleri yalnızca ilk vagrant up başarıyla çalıştırdıktan sonra etkinleştirin.

vagrant destroy etkin rolleri sıfırlamayacağını unutmayın. vagrant destroy çalıştırdıktan sonra tüm rolleri devre dışı bıraktığınızdan emin olun, sonra vagrant up çalıştırın. Ardından, rolleri yeniden etkinleştirebilir ve vagrant provision çalıştırabilirsiniz. Be sure to disable all roles after running vagrant destroy, then run vagrant up. Then you can re-enable any roles and run vagrant provision.

Proxy arkasındaki Vagrant

Bir proxy'nin arkasındaysanız, Vagrant bazı hataları atabilir. vagrant-proxyconf yükleyebilirsiniz. Sanal makinenizin belirtilen proxy'leri kullanmasına izin veren bir eklentidir. Bu hızlı bir kurulum kılavuzudur. Ayrıntılı belgelendirme için burayı kontrol edebilirsiniz.

Eklentiyi yükleyin:

vagrant plugin install vagrant-proxyconf

Tüm vagrant VM'lerde tüm yazılımlar için proxy ayarlarını yapılandırmak için aşağıdaki $VAGRANT_HOME/Vagrantfile ekleyin (varsayılan ~/.vagrant.d/Vagrantfile).

Vagrant.configure("2") do |config|
  if Vagrant.has_plugin?("vagrant-proxyconf")
    config.proxy.http     = "http://192.168.0.2:3128/"
    config.proxy.https    = "http://192.168.0.2:3128/"
    config.proxy.no_proxy = "localhost,127.0.0.1,.example.com"
  end
  # ... diğer şeyler
end

Adresleri proxy sunucunuzun ip ve bağlantı noktası numarasıyla değiştirin. Proxy'yi atlamak isteyebileceğiniz tüm siteleri/alanları listelemek için config.proxy.no_proxy seçeneğini kullanın. Örneğin,

config.proxy.no_proxy = "localhost,127.0.0.1,.example.com,.someinternaldomain.com"

Şimdi bir vagrant up çalıştırdığınızda herhangi bir uyarı olmamalıdır.

Eklentiyi devre dışı bırakmak için config.proxy.enabled öğesini false veya boş dize ("") olarak ayarlayın. Belirli uygulamalar için de devre dışı bırakabilirsiniz. Örneğin,

config.proxy.enabled         # → tüm uygulamalar etkin (varsayılan)
config.proxy.enabled = true  # → tüm uygulamalar etkin
config.proxy.enabled = { svn: false, docker: false }
                             # → belirli uygulamalar devre dışı
config.proxy.enabled = ""    # → tüm uygulamalar devre dışı
config.proxy.enabled = false # → tüm uygulamalar devre dışı

MediaWiki-Vagrant hazırlığı

MediaWiki-Vagrant yüklemesi için bir dizin hazırlamak üzere mw-vagrant-prep gibi bir kabuk betiği kullanmayı düşünebilirsiniz.

Hata ayıklama

Vagrant

You can debug MediaWiki-Vagrant itself (e.g. the errors that happen during vagrant up) with VAGRANT_LOG:

VAGRANT_LOG=debug vagrant up

Hazırlama

Hazırlama işleminde hata ayıklayarak çalıştırabilirsiniz.

PUPPET_DEBUG=1 vagrant provision

PHP

PHP'de Xdebug ile hata ayıklayabilirsiniz. PHP'de hata ayıklama diğer istemci tarafı hata ayıklamadan farklıdır. IDE'niz gelen bağlantıları dinler ve sunucuya bir tarayıcı ile eriştiğinizde, özel bir başlık PHP'ye IDE'nize bağlanmasını söyler. Daha fazla bilgi için MediaWiki-Vagrant/Advanced usage#MediaWiki debugging using Xdebug and an IDE in your host konusuna bakın. Debugging in PHP is different from other client-side debugging. Your IDE listens for incoming connections, and when you access the server with a browser, a special header instructs PHP to connect to your IDE. For lack of better documentation, see the (old and overly verbose) MediaWiki-Vagrant/Advanced usage#MediaWiki debugging using Xdebug and an IDE in your host for further information.

Chrome

  • Chrome kullanıcıları için XDebug Yardımcısı ve isteğe bağlı olarak Önbellek Temizleme, HTTP üstbilgileri ve Mod Üstbilgileri almanız gerekir. Silindikten sonra otomatik olarak yeniden yüklenecek açık önbelleği yapılandırın ve klavye kısayollarını ayarlayın (örn. Temizleme ve yeniden yükleme için Ctrl+R, XDebugger'ı açmak/kapatmak için Ctrl+⇧ Shift+D)

Firefox

  • Firefox kullanıcıları easy Xdebug'a göz atmalıdır.
  • Makinenize xdebug uyumlu IDE yükleyin ve yapılandırın (Eclipse, PhpStorm, Emacs, vb.)
  • IDE'de, gelen hata ayıklama bağlantısını dinlemeye başlayın
  • IDE'de, kırılma noktasını ilginizi çeken noktaya ayarlayın
  • Tarayıcıda XDebug'u etkinleştirin ve vagrant kurulumunuza gidin (http://127.0.0.1:8080/...)

CLI

For maintenance scripts and other code executed from CLI, you can use the xdebug_on and xdebug_off shell commands to enable/disable debugging.

Günlük dosyaları

Mediawiki günlükleri /vagrant/logs içinde bulunabilir. /var/log/apache2/ içinde Apache için günlük dosyaları var, ancak yazılmamış gibi görünüyorlar. MySQL sorgu günlüğü bir istemcide SET GLOBAL general_log = 'ON'; vererek ve sonra /var/lib/mysql/*.log ile bakarak elde edilebilir.

Birim testlerini çalıştırma ve hata ayıklama

TÜM uzantıları PHPUnit testlerini çalıştırmak için:

$ vagrant ssh
$ sudo -u www-data env PHPUNIT_WIKI=wiki PHPUNIT_LOGS=0 composer --working-dir=/vagrant/mediawiki phpunit

Tek bir uzantı için birim testleri çalıştırmak için:

$ sudo -u www-data env PHPUNIT_WIKI=wiki PHPUNIT_LOGS=0 composer --working-dir=/vagrant/mediawiki composer phpunit /vagrant/mediawiki/extensions/ExtensionName/tests/phpunit/

Bazı testler kilit dosyaları oluşturmak için uygun kullanıcı olarak çalışmayı gerektirebilir ve bu nedenle bu komut web isteklerini işleyen "kullanıcı" www-data olarak çalışır.

Kapsam raporları oluşturmak için Manual:PHP birim testi/Kod kapsamı#MediaWiki-Vagrant sayfasına bakın.

Phpunit testlerinde hata ayıklama biraz daha karmaşıktır. Bu yöntem biraz hileli, ancak uzaktan yorumlayıcıda hata ayıklama iyileşene kadar kullanılabilir (örn. PhpStorm 8 EAP'de). Bu geçici çözüm, tarayıcıdan MediaWiki birim sınamalarını çalıştırmanıza olanak tanır.

  • [$url phpunit.phar] dosyasını vagrant dizininizin köküne indirin.
  • mediawiki dizininin kökünde bir php dosyası unittest.php oluşturun. Bu dosyayı depoya teslim etmeyin. Aşağıdaki kodu içine yapıştırın:

Do not commit this file to the repository. Paste the following code into it:

unittest.php 
<html><body><pre>
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
require_once 'includes/WebStart.php';
$_SERVER[ 'argv' ] = array(
	'--configuration', '/vagrant/mediawiki/tests/phpunit/suite.xml',
	'/vagrant/mediawiki/extensions/JsonConfig/tests/phpunit/JCObjContentTest.php',
);
require_once '/vagrant/mediawiki/tests/TestsAutoLoader.php';
require_once '/vagrant/phpunit.phar';
PHPUnit_TextUI_Command::main(false);


  • Yukarıdaki dosyada, argv parametresini test dosyanızın adına değiştirin
  • Apache, mediawiki dizininin kökünü /w ile eşler. Bu dosyayı çalıştırmak için $url adresine gidin

So navigate to http://127.0.0.1:8080/w/unittest.php to run this file

  • Hata ayıklayıcınızı eklemek için #Hata ayıklama talimatlarını izleyin

Tarayıcı testlerini çalıştırma

Taahhütleri push yapımı

Geliştirme için MediaWiki-Vagrant kullanıyorsanız, git review kullanarak bazı taahhütleri MediaWiki çekirdeğine veya bir uzantının deposuna göndermek isteyebilirsiniz. Varsayılan olarak, tüm uzağı https:// URL'leri gösterir. Bunu duruma göre geçersiz kılmaktan kaçınmak için şunu çalıştırın: By default, all remotes point to the https:// URLs. To avoid overriding this on a case by case basis, run:

$ git config --global url."ssh://<username>@gerrit.wikimedia.org:29418/".insteadOf "https://gerrit.wikimedia.org/r/"

Ayrıca ssh anahtarlarınızı ~/.ssh içinde bulundurmanız gerekir.

Gerrit

Değişiklikleri göndermek için, uzantılar klasörünüze gitmek için cd kullanın. Sonra gerrit aracılığıyla bir yama gönderme ile ilgili talimatları uygulayın. Then follow the instructions on submitting a patch via gerrit.

Sorun giderme

PHP sürümünü ve ayarları kontrol edin
http://127.0.0.1:8080/info.php
Nasıl LocalSettings.php düzenleyebilirim?
İlk olarak, ihtiyacınız olanı zaten yapan bir rol (vagrant vagrant list-roles) olup olmadığını kontrol edin. Değilse, ayarlar.d / dizininde bir dosya oluşturun. README ve 00-debug.php-example dosyalarına bakın.

If not, create a file in settings.d/ directory. See README and 00-debug.php-example file.

Nasıl MediaWiki kodu güncelleyebilirim?
En kolayı ana bilgisayardan vagrant git-update kullanmaktır. Veya kodu bağımlılık olmadan güncellemek için vagrant/mediawiki içinde normal git fetch, pull vb. komutları vagrant/mediawiki/extensions/SomeExtension dizinleri kullanabilirsiniz. Bu komutları sanal makinede çalıştırabilirsiniz, ancak ana makinede dosya erişimi daha hızlı olacaktır. MediaWiki-Vagrant, bir rol ayarladığınızda ve/veya bir rol eklediğinizde git master'dan kod alır, ancak bundan sonra kodu otomatik olarak güncellemez.

Or, to just update the code without dependencies, you can use regular git fetch, pull, etc. commands in vagrant/mediawiki and vagrant/mediawiki/extensions/SomeExtension directories. You can run these commands on the virtual machine, but the file access will be faster on the host machine. MediaWiki-Vagrant pulls code from git master when you initially set up and/or add a role, but doesn't automatically update code after that.

Nasıl MediaWiki PHP yorumlayıcısını çalıştırırım?
ssh to vagrant ve mwscript eval.php komutunu çalıştırın. sudo ile çalıştırmanız gerekebilir.

You might need to run it with sudo

Nasıl MediaWiki SQL yorumlayıcısını çalıştırırım?
ssh to vagrant ve mwscript sql.php komutunu çalıştırın. sudo ile çalıştırmanız gerekebilir.

You might need to run it with sudo

Nasıl Sanal makine yazılım paketleri güncelleyebilirim?
vagrant provision, VM'deki sistem paketlerini güncellemez. Vagrant ssh ile bağlandığınızda, giriş mesajı size şunları bildirecektir:
NN paketleri güncellenebilir.
NN güncellemeleri güvenlik güncellemeleridir.

Vagrant ssh içinde:
  • tüm paketleri güncellemek için sudo apt-get update && sudo apt-get upgrade girin
  • Cloud VPS örneklerine benzer şekilde "güvenlik (ve diğer) yükseltmelerin otomatik kurulumu" için sudo unattended-upgrade
  • üretim WMF sunucularında olan aynı paketlere güncelleme yapmak için...

When you connect with vagrant ssh the login message will inform that you:
NN packages can be updated.
NN updates are security updates.

In vagrant ssh:

  • to update all packages, enter sudo apt-get update && sudo apt-get upgrade
  • for "automatic installation of security (and other) upgrades", similar to Cloud VPS instances, enter sudo unattended-upgrade
  • to update to the same packages that are on production WMF servers... TODO
Nasıl Vagrant'ı özelleştirebilirim?
Vagrantfile'i asla doğrudan değiştirmenize gerek yoktur. Vagrant'ın özelleştirebileceğiniz birkaç yönü vardır:
  • Çekirdek ayarları (git kullanıcısı, bağlantı noktaları, ram, ip, bağlantı noktası yönlendirme) .settings.yaml dosyası aracılığıyla özelleştirilebilir. Talimatlar için vagrant config --help ve vagrant forward-port --help bakın. Örneğin, host:1234 ile guest:80 bağlantı noktası yönlendirmeyi etkinleştirmek için vagrant forward-port 1234 80 çalıştırabilirsiniz.
  • Vagrantfile yüklendikten sonra Vagrantfile-extra.rb adlı bir dosya oluşturarak ve Vagrantfile ile aynı klasöre yerleştirerek ek adımlar uygulayın - otomatik olarak yüklenecektir. Çakışma durumunda, 'ekstra' dosyasındaki değerler bu dosyadaki değerlerin yerine geçer. Destek/dizin içindeki örneğe bakın.

There are several aspects of vagrant you can customize:

  • Core settings (git user, ports, ram, ip, port forwarding) can be customized via .settings.yaml file.

See vagrant config --help and vagrant forward-port --help for instructions. So for example you may run vagrant forward-port 1234 80 to enable port forwarding from host:1234 to guest:80.

  • Perform additional steps after Vagrantfile load by creating a file called Vagrantfile-extra.rb and placing it in the same folder as Vagrantfile - it will be automatically loaded.

In case of conflict, values in the 'extra' file will supersede values in this file. See example in support/ directory.

Nasıl özel Kukla kodu ekleyebilirim?
Kendi MediaWiki sitenizde yerel olarak çalışmak ve MediaWiki-Vagrant'ın bağımlılıklarınızı sizin için yüklemesine izin vermek istiyorsanız, bu idealdir. Kendi forkunuz varsa idealdir. Bir rol ile bu kullanım durumu arasında bir ayrım vardır. Roller herhangi bir sırayla ve kırılmadan monte edilmek içindir. Forkunuzun farklı çağrılara ihtiyacı varsa ve rollerle ilgili sorun yaşıyorsanız, kendi sınıfınızı oluşturun ve roller de dahil olmak üzere ihtiyacınız olanı arayın.

It's ideal if you have your own fork. There is a distinction between a role and this use case. Roles are meant to be installed in any order and without breaking. If your fork needs different calls and get in trouble with roles, create your own class and call what you need, including roles.

Bunu yapmak için, özel kukla kodunuzu puppet/modules/local/manifests/myown.pp içine kendi sınıfınızla yerleştirin, örneğin:
class local::myown {
    include ::role::svg
}

Sınıfınızı uygulamak için, puppet/hieradata/local.yaml içinde "classes" anahtarına ekleyin. Dosyayı yoksa oluşturabilirsiniz.

classes:
  - local::myown

Ardından, değişikliği Kukla ile uygulamak için vagrant provision çalıştırın.

Nasıl MediaWiki-Vagrant'ın kendisini güncelleyebilirim?
(Örneğin, yeni roller kullanmak için.) Terminalde, ana bilgisayardaki vagrant dizinine geçin ve git pull --ff-only gibi normal bir git komutu girin. Sanal makinenize yeni kukla değişiklikleri uygulamak için güncelleme yaptıktan sonra genellikle vagrant provision çalıştırmak isteyeceksiniz.

You will typically want to run vagrant provision after updating to apply any new puppet changes to your virtual machine.

Nasıl sanal makinede GUI uygulamaları çalıştırırım?
Yüklü bir X sunucunuz varsa, X iletmeyi etkinleştirmek için ssh -- -X kullanarak sanal makineye SSH yükleyin. (Mac kullanıcıları [$xquartz XQuartz'ın en son sürümüne güncelleme yapmalıdır].)

(Mac users should update to the latest version of XQuartz.)

Alternatif olarak, sanal makineyi fiziksel bir ekrana sahipmiş gibi VM ile etkileşime girmenizi sağlayan GUI modunda çalıştırabilirsiniz. GUI modunu etkinleştirmek için, kök veri havuzu klasöründe Vagrantfile-extra.rb adlı bir dosya oluşturun; içeriği şu şekildedir:

To enable GUI mode, create a file called Vagrantfile-extra.rb in the root repository folder, with this as its content:

Vagrant.configure('2') do |config|
    config.vm.provider :virtualbox do |vb|
        vb.gui = true
    end
end
Dosyayı kaydedin ve vagrant halt ardından vagrant up komutunu çalıştırın. Sanal makinenin ekranı masaüstünüzdeki bir pencerede görünecektir.

The virtual machine's display will appear in a window on your desktop.

Nasıl Sanal Makineye ayrılan kaynaklar ayarlanmalıyım?
VM'ye daha fazla veya daha az CPU/RAM ayırmak isterseniz, talimatlar için vagrant config --help bakın.

Alternatif olarak, Vagrantfile-extra.rb dosyasını oluşturarak da yapabilirsiniz (örnek için support/dir adresine bakın):

Vagrant.configure('2') do |config|
    config.vm.provider :virtualbox do |vb|
        # See http://www.virtualbox.org/manual/ch08.html for additional options.
        vb.customize ['modifyvm', :id, '--memory', '768']
        vb.customize ['modifyvm', :id, '--cpus', '2']
    end
end
Nasıl Git taahhüt mesajları için kullanılan düzenleyiciyi değiştiririm?
git config --global core.editor "vim"
Nasıl özel bir anasistem adı oluştururum?
Horizon'a gidin, Web Proxy'leri seçin ve bir DNS ana bilgisayar adı girin, <hostname> yazın

Yeni vikinizi "http://<hostname>/wiki/" adresinde görün

Nasıl özel ana bilgisayar adını, viki ana sayfası yerine vagrant rolümün ana sayfasına yönlendiririm?
/vagrant/puppet/hieradata dizininde bir local.yaml dosyası oluşturun. İçine şunu ekleyin:
<rolename>::vhost_name:<hostname>
role::mediawiki::hostname: localhost

vagrant provision çalıştırın.

Nasıl master dışında bir MediaWiki dalı mı çalıştırıyoruz?
"mediawiki::branch" anahtarını puppet/hieradata/local.yaml içinde ayarlayın. Dosyayı yoksa oluşturabilirsiniz.

You can create the file if it doesn't exist.

mediawiki::branch: "wmf/1.24/wmf18"
Bu değişiklik vagrant up ile ilk kez çalıştırmadan ÖNCE yapılmalıdır. Daha sonra yapmaya karar verirseniz, değişikliği yapın, mevcut VM'nizi vagrant destroy -f ile kaldırın, mevcut mediawiki ödünüzü silin ve son olarak vagrant up kaldırın.
Vagrant, ana dal ile çalışacak şekilde tasarlanmıştır ve mükemmel çalışmayabilir veya çekirdek ve / veya uzantıların eski sürümleriyle çalışmayabilir[5].
MediaWiki 1.35 sürüm dalı için, şu anda karşılanmayan PHP sürümü gereksinimlerini ayarlamak için bazı değişiklikler gerektirir. Talimatlar için Topic:W05qhsn58ztktod8 sayfasına bakın.

Gelişmiş kullanım

MediaWiki ayarları

Tüm MediaWiki ayarlarını tek bir büyük LocalSettings.php dosyasında yönetmeye alternatif olarak, yapılandırmalarınızı bileşen veya temaya göre gruplandırmayı ve settings.d/ her grup için altında ayrı bir PHP dosyası oluşturmayı düşünün. Bu, ayarlarınızı düzenli tutmanızı, belirli yapılandırmaları geçici olarak devre dışı bırakmanızı ve ayarları başkalarıyla paylaşmanızı oldukça kolaylaştırır.

MediaWiki, tüm PHP dosyalarını settings.d/ içinde otomatik olarak sözcük sırasına göre yükleyecektir. Her dosya adına iki basamaklı bir önek ekleme alışkanlığını benimseyerek yapılandırmalarınızın ayarlanma sırasını kontrol edebilirsiniz.

Örneğin:

    settings.d/
    ├── 10-RunFirst.php
    ├── 20-SomeExtension.php
    └── 99-RunLast.php

settings.d/puppet-managed içindeki ayar dosyalarının Kukla yapılandırmanıza yanıt olarak otomatik olarak oluşturulduğunu ve imha edildiğini unutmayın. Özel ayarlarınızı oraya koymayın, çünkü Kukla bunları siler veya geçersiz kılar. Özel ayar dosyalarınızı bunun yerine settings.d/ konumunda tutun. Don't put your custom settings there, because Puppet will erase or override them. Keep your custom settings files in settings.d/ instead.

Vagrant işaretleri

vagrant config --list geçerli Vagrant işaretlerinin bir listesini görüntüler.

İlk ./setup.sh sonra, vagrant dizininizde, yapılandırma listesinde görünen vagrant bayraklarından birini, ör. vagrant config nfs_shares no

İş kuyruğu

Şş kuyruğunu çalkalaması gereken bir şeyi test ediyorsanız, iş koşucularının sayısını artırmanız gerekebilir. Şu anda bu, LocalSettings.php aracılığıyla mevcut değildir, ancak iş kuyruğu için yapılandırma dosyasında ayarlanmalıdır. Currently this is not available through LocalSettings.php, but must be set in the config file for the job runner.

  1. puppet/modules/mediawiki/templates/jobrunner.json.erb açın
  2. runners anahtarının değerini 1 yerine istediğiniz değere değiştirin (örneğin, 4)
  3. vagrant --provision ile yeniden sağlama
  4. Bu kodunuzdaki git master'dan bir fark olacağını unutmayın

Uygun şekilde yukarıdaki CPU çekirdek sayısını ayarlamak için talimatlara bakın (video kod dönüştürme gibi CPU'ya bağlı görevler için şiddetle önerilir).

Ek depolama alanı

Varsayılan olarak, VM içindeki kök bölümünde nispeten az boş alan vardır. Büyük resim ve video dosyalarının yüklenmesini ve işlenmesini test etmeyi planlıyorsanız, bu yetersiz olabilir. If you plan to test uploading and processing of large image and video files, this may be insufficient.

Manüel adımlar:

  • VM'yi kapatın (vagrant halt)
  • VirtualBox Yöneticisini Açın
  • VM'yi seçin ve Ayarlar'a gidin
    • Depolama altında, "Controller: SATA" seçin ve "Add hard disk" simgesini tıklayın.
    • Varsayılan disk görüntüsü türünü seçin.
    • Diske 'VagrantImageSpace' veya benzeri bir ad verin ve yeterli alan verin (örneğin, 80 GB) - varsayılan olarak dosya küçük başlayacak ve gerçek kullanıma genişleyecektir, bu yüzden ihtiyacınız olduğu kadar alan verin
    • İletişim kutularını kapatın ve VM'yi yeniden başlatın (vagrant up)
  • Terminalin içine bir kabuk almak için vagrant ssh komutunu çalıştırın
    • Yeni bölümler ayarlamak için sudo fdisk/dev/sdb komutunu çalıştırın...
    • n, p, 1 tıklayın ve varsayılan boyut için iki kez (enter) basın
    • Bölümleme tablosunu kaydetmek için w yazın
  • Dosya sistemini oluşturmak için sudo mke2fs/dev/sdb1 çalıştırın
  • Bağlar listesini düzenlemek için sudo vi/etc/fstab komutunu çalıştırın
    • Sonuna satır ekle: /dev/sdb1 /srv/images ext4 errors=remount-ro 0 2
    • kaydedin
  • Dosya sistemini bağlamak için sudo mount/srv/images komutunu çalıştırın
  • Dosya izinlerini ayarlamak için sudo chown www-data:www-data /srv/images komutunu çalıştırın
  • exit kabuğundan çık
  • VM'yi yeniden başlatın (vagrant halt; vagrant up)

Yazma rolleri

MediaWiki-Vagrant tarafından oluşturulan sanal makine Wikimedia'nın üretim ortamına kilit açıdan benziyor ve Wikimedia'nın teknik operasyon ekibinin üretim sunucularını yönetmek için kullandığı Puppet aynı aracı kullanıyor ve Wikimedia Cloud VPS örnekleri. Kukla, yazılım yapılandırmalarını bildirici bir şekilde ifade etmek için alana özel bir dil sağlayan bir yapılandırma yönetimi aracıdır. Kukla kodu içeren dosyalara 'manifests' denir. Kukla çalıştığında, beslediğiniz manifestleri yorumlar ve makineyi buna göre yapılandırır. Bir Vagrant rolü, bir Kukla tezahürleri kümesidir. Puppet is a configuration management tool that provides a domain-specific language for expressing software configurations in a declarative fashion. Files containing Puppet code are called 'manifests'. When Puppet runs, it interprets the manifests you feed it and configures the machine accordingly. A Vagrant role is a set of Puppet manifests.

MediaWiki-Vagrant'ın Kukla kod tabanı, MediaWiki uzantılarının ve ilgili yazılımların yapılandırmasını otomatikleştirmeyi kolaylaştıran soyutlamalar içerir. MediaWiki ile ilgili bir yazılım projesi üzerinde çalışan bir geliştiriciyseniz, projeniz için bir Kukla rolü olan bir yama göndermeniz önerilir. Projeniz için bir Vagrant rolü eklemek, diğer geliştiricilerin çalışmalarınızı kontrol etmelerini kolaylaştırır. Projeniz için bir geliştirme sanal alanı olarak yönetilen bir sanal makineyi kullanmak, genellikle uyumsuz ortamlarda çalışan coğrafi olarak uzak geliştiricilerden kaynaklanan "makinemde çalışır" hatalarını azaltır. If you are a developer working on a software project that relates to MediaWiki, you are encouraged to submit a patch with a Puppet role for your project. Adding a Vagrant role for your project makes it easy for other developers to check out your work. Using a managed virtual machine as a development sandbox for your project reduces the chance of "works-on-my-machine" errors that often result from geographically remote developers working in incompatible environments.

Özel rolleri kullanmaya başlamanın en kolay yolu, mevcut rollerin puppet/modules/role/manifests/*.pp içinde nasıl uygulandığına bakmaktır. Bu roller $code2 (genellikle $code3, $code4 çağrısına dönüşür) içindeki Kukla modüllerine bağlıdır ve diğer $code5 dizinlerindeki dosyaları ve şablonları kullanır. Kukla kodu genellikle iyi belgelenmiştir ve uygun kullanımını gösteren örnekler içermektedir. These roles depend on Puppet modules in puppet/modules (usually, foo::bar { ... } translates to a call to puppet/modules/foo/manifests/bar.pp) and use files and templates from the other puppet/modules/role/*/rolename/ directories. The Puppet code is generally well-documented and contains examples that demonstrate its proper usage.

Daha kullanışlı kukla modüllerinden bazıları:

Cloud VPS'de örnek oluşturma

MediaWiki'yi bir Wikimedia Cloud VPS örneği üzerine kurmak ve içindeki MediaWiki-Vagrant rollerini etkinleştirmek için Cloud VPS'de MediaWiki-Vagrant kullanabilirsiniz.

Hatalar

MediaWiki-Vagrant'ta bir hata tespit ederseniz, lütfen bildirin. Öncelikle, GitHub'da [$tracker-git Vagrant sorun izleyicisini] ve [$bugtracker VirtualBox hata izleyicisini] arayarak hatanın bilinen bir Vagrant veya VirtualBox hatası olmadığından emin olun. Değilse, devam edin ve hatayı Wikimedia Phabricator'a gönderin. Sorunu açık bir şekilde tanımlayın ve mümkünse yeniden oluşturma adımları ekleyin. First, make sure the bug is not a known Vagrant or VirtualBox bug by searching the Vagrant issue tracker on GitHub and the VirtualBox bugtracker. If it is not, go ahead and submit a bug report to Wikimedia Phabricator. Clearly describe the issue and include steps to reproduce, whenever possible.

Bağlantılar

Notlar

  1. Fedora kullanıyorsanız, Oracle'ın talimatlarına uymayın. Bunun yerine, RPMfusion depolarını etkinleştirin (örneğin, Uygulayıcının yapılandırması yoluyla), ardından sudo dnf install VirtualBox VirtualBox-kmodsrc akmod-VirtualBox kmod-VirtualBox çalıştırın (not: büyük/küçük harfe duyarlı ve bazen sürüme duyarlı! Paketi bulamazsanız, bunun yerine Apper'da arama yapın.) Alternatif olarak bu kılavuzu takip edebilirsiniz. Çekirdeğinizin çok yeni olmasıyla ilgili bir hata alabilirsiniz. Bunu yaparsanız, akmods-VirtualBox yükleyin ve modülün derlendiğinden emin olmak için sudo akmods çalıştırın.
  2. On Fedora, you can run sudo dnf install vagrant.
  3. https://github.com/hashicorp/vagrant/issues/10576#issuecomment-452793401
  4. https://peshmerge.io/how-to-speed-up-vagrant-on-windows-10-using-nfs/
  5. MediaWiki 1.21+ sürümüne bağımlı