MediaWiki-Vagrant
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.
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.
- Ağ
- 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.)
- Git alın
- (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.
- Ubuntu'da
- VirtualBox alın[1]
- En son Vagrant'i alın. Note that Vagrant v2.3.7 is the last version licensed under a free license.[2]
- 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
- Enter vagrant directory to run
vagrant
commands in:$ cd vagrant
- 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.
- 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.
- Vagrant makinenizi yapılandırmayı tamamladığında,
vagrant open
komutunu verin veya MediaWiki örneğinizi bulmak için $url gidin.Admin
kullanıcısı vevagrant
parolasını ile giriş yapabilirsiniz. - 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
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.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ınError:
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
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.
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 up
s. 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
- Alternatif olarak NFS paylaşımlarını
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
- Alternatif olarak NFS paylaşımlarını
- 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'dasudo 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ğinvagrant destroy
ve ardındanvagrant 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
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
- git pull içinde
core
ve tüm uzantı ve görünüm dizinleri
- En yeni Composer tarafından yönetilen kitaplıkların kullanılabilir olmasını sağlamak için composer update
- 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.
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
Manual:JavaScript unit testing sayfasına bakın.
For browser end-to-end tests (Selenium), see Quality Assurance/Browser testing/Running tests#Running VisualEditor browser tests via Vagrant
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çinvagrant/mediawiki
içinde normal gitfetch
,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
vemwscript 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
vemwscript 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...
- tüm paketleri güncellemek 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
- to update all packages, enter
- for "automatic installation of security (and other) upgrades", similar to Cloud VPS instances, enter
sudo unattended-upgrade
- for "automatic installation of security (and other) upgrades", similar to Cloud VPS instances, enter
- 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
vevagrant forward-port --help
bakın. Örneğin, host:1234 ile guest:80 bağlantı noktası yönlendirmeyi etkinleştirmek içinvagrant 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.
- Ç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
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.
- Perform additional steps after Vagrantfile load by creating a file called
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 genelliklevagrant 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ındanvagrant 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"
vagrant destroy -f
ile kaldırın, mevcut mediawiki ödünüzü silin ve son olarak vagrant up
kaldırı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.
puppet/modules/mediawiki/templates/jobrunner.json.erb
açınrunners
anahtarının değerini1
yerine istediğiniz değere değiştirin (örneğin,4
)vagrant --provision
ile yeniden sağlama- 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
)
- İletişim kutularını kapatın ve VM'yi yeniden başlatın (
- 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...
- Yeni bölümler ayarlamak için
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
- Bölümleme tablosunu kaydetmek için
- 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
- Sonuna satır ekle:
- 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ı:
- mediawiki::extension - bir uzantı yükle ve yapılandır (örnek)
- mediawiki::import::text - vikide bir belgelendirme veya test sayfası oluşturun (örnek: deklarasyon, sayfa)
- mediawiki::import::dump - bir viki dökümü içe aktarın (örnek)
- require_package - bir sistem paketi kurun (örnek)
- exec - kabuk komutu yürütün (örnek)
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
- Ohloh'daki proje sayfası
- GitHub'da MediaWiki-Vagrant
- Phabricator'da sorun izleyici
- "MediaWiki Vagrant ile Yenilikler" üzerinde teknik tartışma izleyin 2014-11-25.
- Ubuntu'da hızlı başlatma için gerekli Bash komutları
- OS upgrade
Notlar
- ↑
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çinsudo akmods
çalıştırın. - ↑ On Fedora, you can run
sudo dnf install vagrant
. - ↑ https://github.com/hashicorp/vagrant/issues/10576#issuecomment-452793401
- ↑ https://peshmerge.io/how-to-speed-up-vagrant-on-windows-10-using-nfs/
- ↑ MediaWiki 1.21+ sürümüne bağımlı