Utworzony: 2026/07/02 19:41:27 America/Chicago
Przez: admin
Zmieniony: 2026/07/03 16:24:56 America/Chicago
Przez: admin

Verlihub może załadować skrypty Lua poprzez wtyczkę Lua. Użyj Lua, gdy koncentrator wymaga niewielkiej zmiany zachowania bez ponownej kompilacji serwera Verlihub.

Typowe zastosowania obejmują boty wyświetlające, zaplanowane ogłoszenia, polecenia pomocnicze, reguły sprawdzania poprawności, pomocników automatycznej moderacji, statystyki centrum i punkty zaczepienia integracji. Obsługa Lua zależy od zainstalowanej, zbudowanej i włączonej wtyczki.

Co robi wtyczka Lua

Wtyczka Lua wykonuje skrypty Lua w procesie centrum. Daje to administratorom łatwiejszą ścieżkę dostosowywania centrum niż edytowanie źródła C++ Verlihub lub pisanie skompilowanej wtyczki.

Skrypty Lua są zwykle łatwiejsze do przeglądania i zastępowania niż skompilowane wtyczki, gdy zmiana jest niewielka i specyficzna dla koncentratora.

  • Niestandardowe polecenia centrum
  • Automatyczne wiadomości powitalne
  • Ogłoszenia terminowe
  • Sprawdzanie poprawności użytkownika
  • Odpowiedzi botów
  • Polecenia pomocnika operatora
  • Haki do rejestrowania lub powiadamiania
  • Proste kontrole antyspamowe i przeciwpowodziowe
  • Zachowanie specyficzne dla centrum, które nie uzasadnia wtyczki C++

Wymagania

Przed włączeniem obsługi Lua upewnij się, że na serwerze istnieje wtyczka Lua. Typową ścieżką wtyczki jest /usr/local/lib/liblua_pi.so.

Sprawdź, czy plik wtyczki istnieje:

 ls -lah /usr/local/lib/liblua_pi.so 

Jeśli plik nie istnieje, prawdopodobnie plik Lua nie został zbudowany lub zainstalowany. Odbuduj Verlihub z włączoną obsługą wtyczki Lua.

W zależności od systemu i metody instalacji wtyczka może również zostać zainstalowana /usr/lib, /usr/lib64, /usr/local/lib, Lub /usr/local/lib64. Wyszukaj go przed zmianą konfiguracji koncentratora:

 find /usr /usr/local -name 'liblua_pi.so' 2>/dev/null 

Budynek Verlihub Ze wsparciem Lua

Jeśli podczas instalacji nie uwzględniono obsługi Lua, najpierw zainstaluj pakiet programistyczny Lua. W Debianie lub Ubuntu:

 sudo apt update
sudo apt install lua5.4 liblua5.4-dev 

Niektóre kompilacje Verlihub używają Lua 5.3 zamiast Lua 5.4. Zainstaluj pasujący pakiet, jeśli wymaga tego Twoja gałąź lub dystrybucja:

 sudo apt install lua5.3 liblua5.3-dev 

Następnie odbuduj Verlihub z włączoną wtyczką Lua poprzez CMake:

 cmake .. -DWITH_LUA=ON
make
sudo make install 

Dokładna nazwa opcji CMake może się różnić w zależności od wersji Verlihub. Przed przebudowaniem centrum produkcyjnego sprawdź dostępne opcje kompilacji:

 cmake -LAH .. 

Po instalacji potwierdź, że biblioteka wtyczek została zainstalowana:

 find /usr /usr/local -name 'liblua_pi.so' 2>/dev/null 

Polecenia wtyczki

Wtyczką Lua zarządza się za pomocą poleceń wtyczki Verlihub z konta operatora.

  • Lista zainstalowanych lub znanych wtyczek z !lstplug.
  • Zarejestruj wtyczkę Lua za pomocą !addplug lua -p /usr/local/lib/liblua_pi.so -a 1 -d Support for Lua scripts..
  • Oznacz wtyczkę Lua aktywną za pomocą !modplug lua -a 1.
  • Załaduj wtyczkę za pomocą !onplug lua.
  • Potwierdź załadowane wtyczki za pomocą !pluglist.
 !lstplug
!addplug lua -p /usr/local/lib/liblua_pi.so -a 1 -d Support for Lua scripts.
!modplug lua -a 1
!onplug lua
!pluglist 

Wyjaśnienie polecenia

!lstplug

Wyświetla listę wtyczek znanych dla Verlihub. Użyj jej najpierw, aby sprawdzić, czy wtyczka Lua jest już zarejestrowana.

 !lstplug 

!addplug

Rejestruje wtyczkę Lua z numerem Verlihub.

 !addplug lua -p /usr/local/lib/liblua_pi.so -a 1 -d Support for Lua scripts. 

Znaczenie opcji:

  • lua: Wewnętrzna nazwa wtyczki.
  • -p /usr/local/lib/liblua_pi.so: Ścieżka do udostępnionej biblioteki wtyczki Lua.
  • -a 1: Oznacza wtyczkę jako aktywną.
  • -d Support for Lua scripts.: Czytelny dla człowieka opis wtyczki.

!modplug

Modyfikuje rekord wtyczki i upewnia się, że wtyczka Lua jest oznaczona jako aktywna.

 !modplug lua -a 1 

!onplug

Ładuje lub uruchamia wtyczkę Lua po jej dodaniu i włączeniu.

 !onplug lua 

!pluglist

Pokazuje aktualnie załadowane wtyczki. Użyj go, aby potwierdzić, że Lua jest aktywny.

 !pluglist 

Przechowuj skrypty Lua w dedykowanym katalogu należącym do użytkownika serwisu Verlihub.

 sudo mkdir -p /usr/local/etc/verlihub/lua
sudo chown -R verlihub:verlihub /usr/local/etc/verlihub/lua
sudo chmod 750 /usr/local/etc/verlihub/lua 

Jeśli Twoja usługa Verlihub działa jako inny użytkownik, zamień verlihub:verlihub z właściwym użytkownikiem i grupą.

 sudo chown -R vh:vh /usr/local/etc/verlihub/lua
sudo chown -R www-data:www-data /usr/local/etc/verlihub/lua 

Nie udostępniaj katalogów skryptów Lua do zapisu na całym świecie. Unikać chmod 777 /usr/local/etc/verlihub/lua.

Przykład Lua Skrypt

Utwórz mały skrypt testowy:

 sudo nano /usr/local/etc/verlihub/lua/test.lua 

Przykładowa treść:

 -- Simple Verlihub Lua test script.
-- This file confirms that the Lua plugin can load and execute scripts.
function Main()
    VH:SendToAll("Lua test script loaded successfully.")
end 

Dostępne funkcje Lua zależą od API wtyczki Verlihub Lua. Niektóre instalacje udostępniają obiekty pomocnicze lub funkcje w inny sposób, więc porównaj przykłady z biblioteką skryptów Lua używaną w Twojej wersji Verlihub.

Ładowanie Lua Skrypty

Po aktywowaniu wtyczki Lua, skrypty można zwykle ładować za pomocą poleceń Lua specyficznych dla wtyczki lub skonfigurowanych katalogów skryptów.

Zacznij od sprawdzenia dostępnych poleceń wtyczki Lua z poziomu koncentratora:

 !help lua
!plughelp lua 

Jeśli wtyczka obsługuje wyświetlanie, ładowanie, rozładowywanie lub ponowne ładowanie skryptów, możesz zobaczyć polecenia podobne do tych:

 !lua
!lslua
!loadlua
!unloadlua
!reloadlua 

Nazwy poleceń mogą się różnić w kompilacjach Verlihub i wersjach wtyczek.

Sprawdzanie, czy Lua działa

Sprawdzaj konfigurację etapami. Najpierw potwierdź, że wtyczka jest zarejestrowana, a następnie potwierdź, że jest załadowana:

 !lstplug
!pluglist 

Następnie sprawdź dzienniki serwera pod kątem komunikatów wtyczki Lua:

 journalctl -u verlihub -n 100 --no-pager 

Jeśli Verlihub nie jest zarządzany przez systemd, sprawdź zamiast tego skonfigurowany katalog dzienników Verlihub. Typowe lokalizacje obejmują /var/log/verlihub I /usr/local/var/log/verlihub.

Wyszukaj wpisy dziennika powiązane z Lua, gdy dziennik usługi jest duży:

 grep -i lua /var/log/verlihub/* 2>/dev/null 

Zalecenia produkcyjne

Użyj Lua w przypadku małych niestandardowych zachowań, a nie w przypadku intensywnego przetwarzania. Kod Lua działa w procesie centrum, więc zły skrypt może mieć wpływ na czat, logowanie lub aktualizacje listy użytkowników.

Dobre Lua przypadki użycia:

  • Proste polecenia
  • Wiadomości centrum
  • Kontrole użytkownika
  • Lekka automatyzacja
  • Małe haczyki integracyjne

Unikaj używania numeru Lua w przypadku:

  • Długotrwałe zadania w tle
  • Ciężkie zapytania do bazy danych
  • Przetwarzanie dużych plików
  • Blokowanie połączeń sieciowych
  • Pętle obciążające procesor
  • Wszystko, co może zamrozić proces centrum

Przetestuj skrypty w centrum przejściowym przed załadowaniem ich do centrum publicznego z połączonymi użytkownikami.

Uwagi dotyczące bezpieczeństwa

Tylko zaufani administratorzy powinni mieć możliwość przesyłania lub modyfikowania skryptów Lua.

Zalecane uprawnienia:

 sudo chown -R verlihub:verlihub /usr/local/etc/verlihub/lua
sudo chmod -R u=rwX,g=rX,o= /usr/local/etc/verlihub/lua 

Nie zezwalaj niezaufanym użytkownikom na zapisywanie plików Lua. Nie przechowuj sekretów bezpośrednio w skryptach Lua, chyba że uprawnienia do plików są zablokowane.

Zachowaj polecenia zarządzania wtyczkami tylko dla operatora lub tylko dla administratora. Zwykli użytkownicy nie powinni mieć możliwości ładowania, zwalniania ani zastępowania skryptów.

Rozwiązywanie problemów

Nie znaleziono pliku wtyczki

Objawy obejmują Cannot load plugin, No such file, Lub liblua_pi.so not found. Wyszukaj bibliotekę, a następnie zaktualizuj zapisaną ścieżkę wtyczki:

 find /usr /usr/local -name 'liblua_pi.so' 2>/dev/null 
 !modplug lua -p /correct/path/to/liblua_pi.so 

Wtyczka Lua nie pojawia się na liście wtyczek

Sprawdź, czy został dodany. Jeśli go brakuje, dodaj go, oznacz jako aktywny i załaduj:

 !lstplug
!addplug lua -p /usr/local/lib/liblua_pi.so -a 1 -d Support for Lua scripts.
!modplug lua -a 1
!onplug lua 

Wtyczka istnieje, ale nie można jej załadować

Sprawdź zależności bibliotek współdzielonych i poszukaj brakujących bibliotek Lua:

 ldd /usr/local/lib/liblua_pi.so 
 not found 

Jeśli brakuje bibliotek Lua, zainstaluj pasujący pakiet wykonawczy Lua.

 sudo apt install lua5.4 liblua5.4-0
sudo apt install lua5.3 liblua5.3-0 

Skrypt nie działa

Sprawdź ścieżkę skryptu, uprawnienia do plików i logi Verlihub. Sprawdź także, czy wtyczka Lua obsługuje API skryptu używane przez skrypt.

 ls -lah /usr/local/etc/verlihub/lua
journalctl -u verlihub -n 100 --no-pager 

Hub staje się niestabilny po załadowaniu skryptu

Wyładuj skrypt lub wyłącz wtyczkę Lua. Jeśli koncentrator nie odpowiada, zatrzymaj Verlihub z powłoki i przenieś skrypt z katalogu Lua:

 sudo systemctl stop verlihub
sudo mkdir -p /usr/local/etc/verlihub/lua-disabled
sudo mv /usr/local/etc/verlihub/lua/problem-script.lua /usr/local/etc/verlihub/lua-disabled/
sudo systemctl start verlihub 

Sugerowany przepływ pracy administratora

  1. Potwierdź, że wtyczka Lua istnieje.
  2. Dodaj wtyczkę za pomocą !addplug.
  3. Włącz to za pomocą !modplug.
  4. Zacznij od !onplug.
  5. Potwierdź za pomocą !pluglist.
  6. Utwórz dedykowany katalog skryptów Lua.
  7. Dodaj jeden mały skrypt testowy.
  8. Sprawdź logi Verlihub.
  9. Dodawaj skrypty produkcyjne pojedynczo.
  10. Przed wprowadzeniem zmian należy zachować kopie zapasowe działających skryptów.

Verlihub Lua Biblioteka skryptów

Biblioteka skryptów Verlihub Lua zawiera przykładowe skrypty i kod Lua wielokrotnego użytku umożliwiający dostosowywanie centrum. Użyj go jako odniesienia do obsługiwanych funkcji, punktów zaczepienia zdarzeń i wzorców poleceń.

W przypadku korzystania ze skryptów z biblioteki:

  • Przejrzyj skrypt przed jego zainstalowaniem.
  • Potwierdź, że pasuje do Twojej wersji Verlihub.
  • Najpierw przetestuj go na hubie nieprodukcyjnym.
  • Sprawdź zakodowane na stałe ścieżki, nazwy koncentratorów, pseudonimy operatorów lub ustawienia bazy danych.
  • Przed edycją zachowaj kopię zapasową oryginalnego skryptu.

Otwórz bibliotekę skryptów Verlihub Lua

Powiązane Strony

Strona Nadrzędna