Bu uzantı MediaWiki 1.34 ve üstü ile gelir. Böylece tekrar indirmek zorunda değilsiniz. Ancak, verilen diğer talimatları izlemeniz gerekir.
Bu uzantı, bir yürütülebilir dosyanın üzerinde çalışır. Bu uzantının çalışması için ana makinenizde yürütülebilir dosyaları çalıştırma izninizin olması gerekir.
Şu anda desteklenen tek betik dili Lua'dır.
Scribunto Lua betikleri Modül adı verilen bir ad alanına gider.
Modules are run on normal wiki pages using the #invoke parser function and each module has a collection of functions, which can be called using wikitext syntax such as:
Bu uzantı, kod lisanslı GNU Genel Kamu Lisansı v2.0 veya daha yenisini (GPL-2.0+) ve kod lisanslı MIT Lisansını (MIT) içerir.
Gereksinimler
PCRE sürüm uyumluluğu
PCRE 8.33+ önerilir.
PCRE 8.33 was released in May 2013.
PHP tarafından kullanılan PCRE sürümünü bir phpinfo() web sayfasını görüntüleyerek veya komut satırından aşağıdaki komutla görebilirsiniz:
CentOS 6 ve RHEL 6 PCRE 7'ye yapışmış durumda ve yükseltilmeleri gerekiyor.
Daha eski bir sürüme sahip bir sunucuda 8.33'e güncellemek nispeten karmaşık olabilir.
Ayrıntılar için Updating to PCRE 8.33 or Higher sayfasına bakın.
MediaWiki 1.25 - 1.28 için Scribunto sürümleri, "LuaStandalone" kullanmak istiyorsanız (yani ayrı bir alt süreçte çalışıyorsa) yalnızca Unix/Linux platformlarında bulunan PHP'nin pcntl uzantısını gerektirir.
Bu gereksinim MediaWiki 1.29 için Scribunto'da kaldırılmıştır.
Bir phpinfo() web sayfasını görüntüleyerek veya aşağıdaki komutla komut satırından pcntl desteğinin etkin olup olmadığını kontrol edebilirsiniz:
PHP'nin mbstring uzantısının etkinleştirilmiş olması gerekir.
mbstring desteğinin etkinleştirilip etkinleştirilmediğini phpinfo() web sayfasını görüntüleyerek veya aşağıdaki komutla komut satırından kontrol edebilirsiniz:
P.S. Check your version of the extension to see if the name of the engines folder is capitalised or fully lowercase.[2]
Ek ikili dosyalar
İşletim sistemi yukarıdaki listede yoksa web sunucunuz için gerekli olabilecek ek Lua ikili dağıtımları http://luabinaries.sourceforge.net/ adresinden veya Linux dağıtımınızdan edinilebilir.
Yalnızca Lua 5.1.x için ikili dosyalar desteklenir.
Web sunucunuza uygun ikili dosyayı yükledikten sonra, dosyanın konumunu şu şekilde yapılandırın:
# Lua ikili dosyanın adı olduğunda# Örneğin. SourceForge LuaBinaries 5.1.5 - Sürüm 2, ikili dosyayı lua5.1 olarak adlandırın$wgScribuntoEngineConf['luastandalone']['luaPath']='/path/to/binaries/lua5.1';
Scribunto'nun yerleşik ikili dosyalarının sizin için çalışmadığını onaylamadığınız sürece yukarıdaki satırı eklememeniz gerektiğini unutmayın.
LuaJIT, teorik olarak uyumlu olmasına rağmen desteklenmez.
Dosyaları indirin ve extensions/ klasörünüzdeki Scribunto adlı dizine yerleştirin. Developers and code contributors should install the extension from Git instead, using:cd extensions/ git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/Scribunto
Yapıldı – Uzantının başarıyla yüklendiğini doğrulamak için vikinizde Special:Version seçeneğine gidin.
MediaWiki 1.29 veya önceki bir sürümü çalıştıran kullanıcılara:
Yukarıdaki talimatlar, bu eklentiyi wfLoadExtension() kullanarak kurmanın yeni yolunu açıklar.
Bu uzantıyı önceki sürümlerine (MediaWiki 1.29 ve önceki sürümler) yüklemeniz gerekirse, wfLoadExtension('Scribunto'); yerine kullanmanız gerekir:
C ile yazılmış LuaSandbox adında bir PHP uzantısı geliştirdik.
Bağımsız ikililere alternatif olarak kullanılabilir ve gelişmiş performans sağlayacaktır.
Ayrıntılar ve kurulum talimatları için LuaSandbox sayfasına bakın.
Uzantıyı başlangıçta Lua bağımsız ikili dosyasını kullanmak için yüklediyseniz, aşağıdaki yapılandırma ayarıyla LocalSettings.php ile güncellediğinizden emin olun:
$wgScribuntoDefaultEngine='luasandbox';
Yapılandırma
Aşağıdaki yapılandırma değişkenleri mevcuttur:
$wgScribuntoDefaultEngine
Motoru seçin. Geçerli değerler, varsayılan olarak 'luasandbox' veya 'luastandalone' olan $wgScribuntoEngineConf içindeki anahtarlardır.
$wgScribuntoUseGeSHi
Extension:SyntaxHighlight yüklendiğinde, Modül sayfalarını görüntülerken bunu kullanmak için bunu true olarak ayarlayın. (MediaWiki 1.30 veya öncesi.)
$wgScribuntoUseCodeEditor
Extension:CodeEditor yüklendiğinde, Modül sayfalarını düzenlerken kullanmak için bunu true olarak ayarlayın. (MediaWiki 1.30 veya öncesi.)
$wgScribuntoEngineConf
Motor yapılandırması için ilişkilendirilebilir bir dizi. Anahtarlar, $wgScribuntoDefaultEngine için geçerli değerlerdir ve değerler, yapılandırma verilerinin ilişkilendirilebilir dizileridir. Her yapılandırma dizisi, kullanılacak ScribuntoEngineBase alt sınıfını adlandıran bir 'class' anahtarı içermelidir.
LuaStandalone
Aşağıdaki anahtarlar $wgScribuntoEngineConf için Scribunto_LuaStandaloneEngine için kullanılır.
Genellikle bunları böyle bir şey olarak
Tek başına yorumlayıcıdan gelen hata ve hata ayıklama çıkışının günlüğe kaydedileceği web sunucusu kullanıcısı tarafından yazılabilir bir dosyanın yolunu belirtin.
Bağımsız yorumlayıcı tarafından üretilen hata çıkışı varsayılan olarak günlüğe kaydedilmez. Günlüğü aşağıdakilerle yapılandırın:
Lua yeni başlayanlar tarafından erişilebilir olması amaçlanan basit bir programlama dilidir.
Lua hakkında hızlı bir kurs için 15 Dakikada Lua Öğren'i deneyin.
Lua'ya en kapsamlı giriş, Lua'da Programlama kitabıdır.
İlk baskı (Lua 5.0 için) çevrimiçi olarak mevcuttur ve çoğunlukla Scribunto tarafından kullanılan Lua 5.1 ile ilgilidir:
Lua'da programlama (metni bulmak için kitap reklamlarını aşağı kaydırın)
Lua'da, tüm küresel değişkenlerin ve işlevlerin kümesine ortam denir.
Her {{#invoke:}} çağrı ayrı bir ortamda çalışır.
Bir {{#invoke:}} içinde tanımlanan değişkenler diğerinden kullanılamaz.
Bu kısıtlama, vikimetin ayrıştırıcısı uygulamasında esnekliği korumak için gerekliydi.
Bir Lua modülünü düzenlerken düzenleme formunun altında "hata ayıklama konsolu" bulunur.
Bu hata ayıklama konsolunda Lua kodu, söz konusu Lua modülünü kaydetmek veya hatta oluşturmak zorunda kalmadan yürütülebilir.
Sorun giderme
Tıklanabilir "Betik hatası" bağlantısını kullanarak sorun gidermesi.
Kırmızı Betik hatası iletilerin tıklanabilir olduğunu ve daha ayrıntılı bilgi sağlayacağını unutmayın.
Lua hatası: Dahili hata: Yorumlayıcı durum 1 ile çıkıldı.
LuaStandalone motorunu kullanırken (bu varsayılan değerdir), bağımsız Lua yorumlayıcısı çalıştırılamazsa veya çeşitli çalışma zamanı hatalarıyla karşılaşırsa, "Lua hatası: Dahili hata: Yorumlayıcı durum 1 ile çıkıldı." satırındaki hatalar üretilebilir.
Daha fazla bilgi edinmek için $wgScribuntoEngineConf['luastandalone']['errorFile'] ile bir dosya yolu atayın.
Tercümanın hata çıkışı, belirtilen dosyaya kaydedilir ve bu da sorunun izlenmesinde daha yararlı olur.
Hata ayıklama günlüğündeki bilgiler hata ayıklama bilgilerini içerir, bu yüzden bu kadar çok şey vardır.
"TX" veya "RX" ile başlayan satırları yoksayabilirsiniz.
Scribunto'yu kuruyorsanız ve IIS/Windows kullanıyorsanız, bu durum belirli bir satır yorumlanarak çözülmüş görünüyor.
Lua hatası: Dahili hata: Yorumlayıcı durum 2 ile çıkıldı.
LuaStandalone motorunu kullanırken (bu varsayılan değerdir), durum 2, muhtemelen PHP veya Lua veya her ikisi için yetersiz bellek alanı ayıran ayarlardan kaynaklanan bellek ayırma hataları önerir.
$wgScribuntoEngineConf['luastandalone']['errorFile'] değerine bir dosya yolu atamak ve bu çıkışı incelemek bellek ayırma hatalarının teşhisinde değerli olabilir.
PHP yapılandırmanızda PHP ayırmayı artırın; memory_limit = 200M satırını ekleyin.
200MB'lık bu ayırma genellikle yeterlidir (MediaWiki 1.24'ten itibaren), ancak gerektiği gibi artırılabilir.
Scribunto'nun LocalSettings.php dosyasındaki bellek ayırmasını satır olarak ayarlayın:
Son olarak, sunucu yapılandırmasına bağlı olarak, başka bir LocalSettings.php satırı ekleyerek bazı kurulumlara yardımcı olabilirsiniz
$wgMaxShellMemory=204800;# KB olarak
3 bellek sınırının da farklı birimlerde verildiğini unutmayın.
Lua hatası: Dahili hata: 2. ARM mimarisinde
RaspberryPi'deki gibi bir ARM mimarisi işlemcisi kullanıyorsanız, Lua yorumlayıcısının yanlış teslim edilen ikili biçimi nedeniyle Lua hatası: Dahili hata: Yorumlayıcı durum 2 ile çıktı. hatasıyla karşılaşacaksınız.
lua: ELF 32-bit LSB pie executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.6.9,
kesinlikle doğru olmayan "Intel 80386" bölümüne bakın.
Sisteminizde hangi Lua sürümünün yüklü olduğunu /usr/bin ile kontrol edin. lua5.1 kuruluysa, yorumlayıcıyı lua5_1_5_linux_32_generic dizininize kopyalayabilir veya LocalSettings.php dosyanızda ayarlayabilirsiniz:
Şu anda wgScribuntoEngineConf ile /usr/bin/lua5.3 ayarlamayın, bu "Dahili hata 1" olarak yol açacaktır.
Lua hatası: Dahili hata: Yorumlayıcı durum 24 ile çıkıldı.
LuaStandalone motoru kullanılırken (bu varsayılan değerdir), durum 24 CPU zaman sınırı hataları önerir, ancak bunun yerine "Betikleri çalıştırmak için ayrılan süre doldu" mesajı oluşturmalıdır.
Phabricator içine bir görev vermek ve XCPU sinyalinin neden yakalanmadığını belirlemeye katılmak yararlı olacaktır.
Lua hatası: Dahili hata: Yorumlayıcı durum 126 ile çıkıldı.
LuaStandalone motorunu kullanırken (bu varsayılan değerdir), bağımsız Lua yorumlayıcısı yürütülemezse, "Lua hatası: Dahili hata: Yorumlayıcı durum 126 ile çıkıldı." satırı boyunca hatalar üretilebilir.
Bu genellikle iki nedenden birinden kaynaklanır:
Lua yürütülebilir dosyasının izinleri Yürüt öğesini içermez. İzinleri #Kurulum altında açıklandığı şekilde ayarlayın.
Sunucu, yürütülebilir dosyanın yüklü olduğu yerden dosyaların yürütülmesine izin vermez, örn. dosya sistemi 'noexec' işaretiyle bağlanır. Bu genellikle paylaşılan barındırılan sunucularda görülür. Çözümler arasında, $wgScribuntoEngineConf['luastandalone']['luaPath'] yürütülebilir bir konuma kurulmuş bir Lua 5.1 ikili dosyasını gösterecek şekilde ayarlamak veya paylaşılan ana bilgisayarı yürütmeyi önleyen ayarı ayarlamak için ayarlamak veya ikna etmek yer alır.
Aşağıdaki hata koşulu: MWException türünün önemli istisnası
İstisna hakkında daha fazla ayrıntı için MediaWiki, PHP veya web sunucusu günlüklerine bakın veya geçici olarak $wgShowExceptionDetails değerini true olarak ayarlayın.
'GLIBC_2.11' sürümü bulunamadı
Yukarıdaki "'GLIBC_2.11' sürümü bulunamadı" gibi hatalar veriyorsa, sisteminizdeki standart C kütüphanesinin sürümü Scribunto ile sağlanan ikili dosyalar için çok eski olduğu anlamına gelir.
C kitaplığınızı yükseltmeniz veya yüklediğiniz C kitaplığı için derlenmiş Lua 5.1 sürümünü kullanmanız gerekir.
C kitaplığınızı yükseltmek için en iyi seçeneğiniz genellikle dağıtımınızın paketleri yükseltme (veya varsa dağıtımın yeni bir sürümüne yükseltme) yönergelerini izlemektir.
Lua ikili dosyalarını Scribunto master'dan (veya gerrit:77905 üzerinden) kopyalarsanız, C kütüphanenizi yükseltmek istemiyorsanız bu yeterli olacaktır.
Dağıtılmış ikili dosyalar son zamanlarda glibc'nin eski bir sürümüne karşı derlendi, bu nedenle minimum 2.11 yerine 2.3'tür.
Scribunto dosyalarındaki Lua hataları
Buradaki hatalar şunları içerir:
'text' alanını indekslemeye çalıştı (sıfır bir değer)
253 satırında mw.html.lua içinde Lua hatası: Verilen geçersiz sınıf:
WMF vikilerinden içe aktarılan modülleri kullanmaya çalışırken bu tür hatalar alıyorsanız, büyük olasılıkla Scribunto sürümünüz güncel değildir.
Mümkünse yükseltin; ileri düzey kullanıcılar için, gerekli yeni işlemler belirlemeyi deneyebilir ve bunları yerel kurulumunuza özenle seçebilirsiniz.
preg_replace_callback(): Derleme başarısız: \P veya \p ofset 7'den sonra bilinmeyen özellik adı
preg_replace_callback(): Derleme başarısız: \P veya \p ofset 7'den sonra bilinmeyen özellik adı
bu genellikle PCRE'nin uyumsuz bir sürümünü gösterir; >= 8.10 olarak güncellemeniz gerekecek
@todo: nasıl yükseltileceğine ilişkin talimatlara bağlantı
Lua hatası
Şablonları Vikipedi'den kopyalarsanız ve ardından Scribunto çağrısının (örneğin {{#invoke:}} kullanan şablon) olması gereken yerde büyük kırmızı "Lua hatası: x" mesajları alırsanız, bu muhtemelen ihtiyacınız olan her şeyi içe aktarmadığınız anlamına gelir. Dışa aktarırken tr:Özel:DışaAktar sayfasında "Şablonları dahil et" kutusunu işaretlediğinizden emin olun.
Başka bir vikiden sayfalar içe aktarılırken, içe aktarılan verilerdeki şablonların veya modüllerin aynı başlığa sahip mevcut şablonların veya modüllerin üzerine yazması da mümkündür; bu, üzerine yazılan sürümlere bağlı olan mevcut sayfaları, şablonları ve modülleri bozabilir.
Boş ekran
Uzantı sürümünüzün MediaWiki sürümünüze uygun olduğundan emin olun.
Extension:Scribunto/Lua kaynak kılavuzu - Lua dili ile ilgili referansın yanı sıra standart kitaplıkları ve Wikimedia sitelerinde desteklenen ortak Scribunto modülleri.
Extension:Scribunto/Lua 5.2 changes - Lua 5.2'de 5.1'de yazılan kodun beklenmedik şekilde çalışmasına neden olabilecek bilinen değişikliklerin listesi.
Commons:Lua - Yüklü ek Lua uzantıları dahil olmak üzere Wikimedia Commons'ta Lua modüllerini kullanmak için özel notlar olabilir (örneğin, uluslararasılaştırmanın yerel desteği ve medyaların ayrıştırılması veya oynatılması için). Bazı genel amaçlı modüller, diğer vikilerde çeşitli dillerde yeniden kullanılabilir (politikalar, ad alanları veya özel adlara sahip proje/bakım sayfaları için özel ayarlamalar hariç). Mümkünse, vikilerde yaygın olarak yeniden kullanılabilen modüller Wikimedia Commons'ta test edilmeli ve uluslararasılaştırılmalıdır.
w:Help:Lua - yüklü ek Lua uzantıları dahil olmak üzere Vikipedi'de Lua modüllerini kullanmak için özel notlar olabilir (Vikiveri ve Wikimedia Commons içeriklerini entegre etmek, karmaşık bilgi kutuları ve gezinme kutuları oluşturmak veya geçerli politikalar kapsamında viki içeriğinin genel yönetimini/bakımını kolaylaştırmak dahil). Diğer bazı yerelleştirilmiş Vikipedi sürümleri (veya Vikisözlük, Vikikaynak veya Vikihaber gibi diğer projeler) de kendi ihtiyaçlarına ve Lua modüllerine sahip olabilir.
d:Help:Lua - yüklü ek Lua uzantıları da dahil olmak üzere, Vikiveri'de Lua modüllerini kullanmak için özel notlar olabilir (örneğin, uluslararasılaştırmanın yerel desteği ve veritabanı sorguları için)
↑yani, sunucunuzun "php.ini" dosyasındaki disable_functions dizisinde proc_open listeleniyorsa Scribunto çalışmayacaktır. Öyleyse, proc_open(): open_basedir restriction in effect. File(/dev/null) is not within the allowed path(s): gibi bir hata mesajı görebilirsiniz.. Plesk kullanıyorsanız ve size yeterli izin verildiyse, alan adınız veya alt alan adınız için PHP ayarlarında open_basedir ayarlayabilirsiniz. {WEBSPACEROOT}{/}{:}{TMP}{/} ile {WEBSPACEROOT}{/}{:}{TMP}{/}{:}/dev/null{:}/bin/bash değiştirmeyi deneyin.
Bu uzantı bir veya daha fazla Wikimedia projelerinde kullanılıyor. Bu, muhtemelen uzantının kararlı olduğu ve bu tür yüksek trafikli web siteleri tarafından kullanılacak kadar iyi çalıştığı anlamına gelir. Nerede kurulduğunu görmek için bu uzantının adını Wikimedia'nın CommonSettings.php ve InitialiseSettings.php yapılandırma dosyalarında arayın. Belirli bir vikide yüklü olan uzantılar listesinin tamamı vikinin Special:Version sayfasında görülebilir.
This extension is included in the following wiki farms/hosts and/or packages:
This is not an authoritative list. Some wiki farms/hosts and/or packages may contain this extension even if they are not listed here. Always check with your wiki farms/hosts or bundle to confirm.