MediaWiki

Z Fedora Wiki
Skocz do: nawigacji, wyszukiwania

Spis treści

Krótki poradnik jak zainstalować własną MediaWiki i skonfigurować podstawowe rzeczy.

Instalacja MediaWiki

Założenia:

Instalacja wraz z popularnym rozszerzeniem sprowadza się do komendy:

yum install mediawiki mediawiki-ParserFunctions

Listę pozostałych rozszerzeń w repozytorium uzyskasz wpisując:

yum info mediawiki-* | less

Po instalacji mediawiki nie działa tak po prostu, a gdy ją uruchomimy rozszerzenie nie jest włączone. Pliki, które nas interesują znajdują się w /var/www/wiki/ i tylko te pliki powinniśmy zmieniać.

Instalacja do /var/www/http/

Najprostszym sposobem może być przerzucenie zawartości /var/www/wiki/ do /var/www/http/ i tym samym wiki staje się naszą główną stroną, a jej zawartość widać po wpisaniu w przeglądarkę http://localhost

Instalacja do /var/www/http/NAZWA

Jeśli nie chcemy by wiki była główną stroną wówczas przerzucamy zawartości /var/www/wiki/ do /var/www/http/NAZWA, by była widoczna pod adresem http://localhost/NAZWA

Instalacja do /var/www/NAZWA/

Jeśli katalog /var/www/http/ masz już zapełniony plikami lub po prostu nie chcesz tam trzymać wiki wymagane będą drobne modyfikacje. Tym sposobem zyskamy również ładne adresy stron (bez index.php)

Załóżmy, że chciałbyś mieć wiki pod adresem http://localhost/w, ale pliki trzymać w innym katalogu np. /var/www/wiki/ (domyślnie instalowane przez yum). Przykładowy podfolder "w" jest tylko adresem i można go w ostatecznej konfiguracji usunąć, bez szkody dla wiki. Ponieważ Apache traktuje /var/www/http/ domyślnie jako katalog główny to wszystko poza nim trzeba mu wskazać palcem. Edytujemy plik /etc/httpd/conf.d/mediawiki.conf dla apache.

## uwaga! liczy się kolejność aliasów!
# adres skórki może wskazywać bezpośrednio na folder instalacji
Alias /w/skins			/usr/share/mediawiki/skins
# pozostała zawartość strony
Alias /w/images			/var/www/wiki/images
# nazwa "art" jest przykładowa i można ją zmienić w ostatecznej konfiguracji.
Alias /w/art			/var/www/wiki/index.php
Alias /w/config/index.php	/var/www/wiki/config/index.php
Alias /w/index.php		/var/www/wiki/index.php
Alias /w			/var/www/wiki/index.php

<Directory /var/www/wiki>
	Options +FollowSymLinks
	AllowOverride All
	Order allow,deny
	Allow from all
</Directory>

# niektóre foldery muszą być chronione
#<Directory /var/www/wiki/config>
#	Options -FollowSymLinks
#	AllowOverride None
#</Directory>

i restartujemy serwer

service httpd restart

po wpisaniu w przeglądarkę http://localhost/w powinieneś ujrzeć stronę konfiguracji i wypełnić wedle uznania. Jeśli z jakiś powodów są błędy, warto zajrzeć do pliku /var/log/httpd/error_log. Katalog /var/www/wiki/config powinien być chwilowo dostępny, ale kiedy skończysz konfigurację odznacz w pliku /etc/httpd/conf.d/mediawiki.conf fragment blokujący do niego dostęp i zrestartuj serwer jak poprzednio.

Zgodnie z instrukcją przenieśmy wygenerowany plik /var/www/wiki/config/LocalSettings.php o jeden poziom do góry i zajmijmy się jego edycją. I znów pamiętaj o wyłączeniu dostępu do tego pliku po zakończeniu konfiguracji, w końcu masz tam zapisane hasła!

chmod o-rwx /var/www/wiki/config/LocalSettings.php
Tip.png
Ustawienie adresu
Więcej na temat różnych ustawień adresu/lokalizacji instalacji znajdziesz na stronie Manual:Short_URL
Ponieważ chcieliśmy mieć krótki czytelny URL dla artykułów to odszukaj zmienną $wgScriptPath i zastęp przez wpis
$wgScriptPath       = "/w";
$wgArticlePath      = '/w/art/$1';

Po zapisaniu pliku, zmiany są widoczne w przeglądarce natychmiast po odświeżeniu strony.

Instalacja bez uprawnień roota

Jeśli nie mamy uprawnień roota i możemy co najwyżej rozpakować mediawiki w ~/public_html (domyślny katalog na strony użytkowników), wówczas rolę pliku /etc/httpd/conf.d/mediawiki.conf spełnia plik ~/public_html/.htaccess
Jeśli admin włączył mod_rewrite to krótką nazwę jak powyżej uzyskamy wpisując

DirectoryIndex index.php
<IfModule mod_rewrite.c>
  RewriteEngine on
  # wiki rozpakowana do ~/public_html
  RewriteRule ^wiki/(.*)$ /index.php?title=$1 [PT,L,QSA]
  RewriteRule ^wiki/*$ /index.php [L,QSA]
  RewriteRule ^/*$ /index.php [L,QSA]
</IfModule>

a w LocalSettings.php mamy wówczas:

$wgScriptPath       = "";
$wgArticlePath      = "/wiki/$1";

Kwestie bezpieczeństwa

Zanim zaczniemy upiększać i edytować naszą wiki, warto zwrócić uwagę na odrobinę bezpieczeństwa. Pamiętaj, że mediawiki została zaprojektowana tak, by każdy miał do niej dostęp. Dopisz w przedostatniej linijce LocalSettings.php (ostatnia czyści cache, więc głupio zrobisz pisząc na końcu pliku):

# Zablokowanie edycji stron przez anonimowych gości
$wgGroupPermissions['*']['edit'] = false;

jeśli chcesz większych restrykcji:

# Zablokowanie tworzenia kont przez anonimowych gości
$wgGroupPermissions['*']['createaccount'] = false;

robots.txt

Plik www.example.com/robots.txt (dokładnie tak umieszczony) służy do kontroli robotów indeksujących (np. google) zabraniając lub zezwalając na indeksowanie zawartości Twojej strony. Nie będę opisywał jego zawartości, skoro jest tyle przykładów np.: http://wikimedia.org/robots.txt

Wygląd

Odszukaj w LocalSettings.php wpis: $wgDefaultSkin = 'monobook'. To jest ustawienie Twojej domyślnej skórki rodem z wikipedii. Żeby zmienić logo.png (135x135px) i favicon.png (~20x20px) wrzuć pliki do katalogu /skins/ i ustaw

$wgLogo = "$wgScriptPath/skins/logo.png"; 
$wgFavicon ="$wgScriptPath/skins/favicon.png"; 

Brak pomysłów na logo? Może Tango. Jeśli chciałbyś dostosować rozmiar, położenie i link do którego prowadzi logo odsyłam do MediaWiki FAQ

Zmiana skórki na przykładzie

Popieramy przykładową skórkę KindofBlue (bezpośredni link: KindofBlue_0.1.zip) i rozpakowujemy zawartość paczki do katalogu /skins/ Od teraz skórka jest dostępna w preferencjach użytkownika wiki. Jeśli uznamy, że nam się podoba możemy ustawić ja jako domyślną dla całej wiki zmieniając w LocalSettings.php wpis:

#$wgDefaultSkin = 'monobook';
$wgDefaultSkin = 'kindofblue';

Wystarczy odświeżyć stronę.

Skórki bywają różnej jakości, nie do końca działają tak jakbyśmy tego chcieli. Ta nie ma logo, bo miała być lekka z natury. Łatwo to zmienić dopisując na końcu pliku /skins/kindofblue/main.css fragment:

#p-logo {
   z-index: 3;
   background: url(../logo.png) no-repeat;
   top: 0;
   left: 0;
   height: 135px;
   width: 135px;
   overflow: visible;
}

Zmiana skórki na fedorową wiki (do testowania oczywiście!)

Jeśli chcesz mieć taką skórkę jak wiki.fedora.pl potrzebny będzie większy wysiłek ;) Sposób opisany jest w tym wątku na forum

Zmiany CSS i JS z poziomu wiki

Mechanizm mediawiki umożliwia wprowadzania korekt do css i javascript zarówno globalnie jak i dla konkretnej skórki, a nawet poszczególnego użytkownika. Więcej dowiesz się czytając zmiany wprowadzone na naszej wiki.

Użyteczność

Obrazki i inne rozszerzenia

Włączenie przesyłania obrazków:

$wgEnableUploads  = true;

Miejsce gdzie mają być składowane pliki (to jest ta sama ścieżka, co w konfiguracji Apache):

$wgUploadDirectory = "/var/www/wiki/images";
Warn.png
Uwaga!
Takie ustawienie w przypadku dostępu dla wszystkich może być okazją do ataku na serwer. Folder z obrazkami można zapełniać bez limitu. Jeśli jednak masz wyłączone edycję i tworzenie kont przez anonimowych użytkowników, to nikt nie może do Ciebie wysłać plików i zagrożenie nie powinno istnieć

Ustawienie włącza hierarchię katalogów dla przesyłanych plików

$wgHashedUploadDirectory = false;

Określenie restrykcyjne, jakie rozszerzenia plików są akceptowane do przesłania.

$wgFileExtensions = array( 'png', 'gif', 'jpg', 'jpeg', 'pdf', 'txt' );

Wzory matematyczne

Instalujemy paczkę

yum install mediawiki-math

Robimy link symboliczny z /usr/lib64/mediawiki/math do /usr/share/mediawiki/math (dla systemu 32bit jest oczywiście lib nie lib64).

dodajemy parametr:

$wgUseTeX = true;

i sprawdzamy na przykładzie.

Dodatkowa "przestrzeń nazw"

Chcemy mieć dodatkową przestrzeń np. Skrypt i Archiwum.

  • Skrypt: - miała by służyć za przechowalnie całych skryptów/plików konfiguracyjnych. Wrzucanie do artykułu całego skryptu czasem jest niepożądane.
  • Archiwum: - żeby odsyłać gdzieś przedawnione, ale wartościowe arty.

Możemy to ustawić dodając np. za ustawieniami wyglądu wpis:

$wgExtraNamespaces = 
     array(100 => "Skrypt",
           101 => "Dyskusja_skryptu",
           102 => "Archiwum",
           103 => "Dyskusja_archiwum",
           );

Użyte przez nas nazwy są nie istotne (etykieta), ważne są te numerki: 100..103, więc jeśli chcemy potem skorygować nazwę to śmiało, nic nie stracimy do póki numerki się zgadzają.

Rozszerzenia

Tip.png
Sprawdź repozytorium
Niektóre z rozszerzeń z czasem trafiają w końcu do repozytorium fedory, więc sprawdź je zanim zainstalujesz ręcznie wersję, która może okazać się niekompatybilna.

ParserFunctions

Zainstalowaliśmy rozszerzenie z repozytorium fedory, ale nie jest ono włączone. Odszukaj w LocalSettings.php wpis:

require_once( "$IP/includes/DefaultSettings.php" );

i dopisz poniżej

## Rozszerzenia
require_once( "$IP/extensions/ParserFunctions/ParserFunctions.php" );

Więcej o rozszerzeniach w MediaWiki FAQ

Drzewo kategorii

W repozytorium F11 jest to paczka mediawiki-CategoryTree, ewentualnie ściągnij CategoryTree i rozpakuj do /usr/share/mediawiki/extensions. Dodaj teraz do LocalSettings.php wpis

$wgUseAjax = true;
require_once("$IP/extensions/CategoryTree/CategoryTree.php");

działa po odświeżeniu przeglądarki.

Podświetlanie składni

Ściągnij SyntaxHighlight_GeSHi i rozpakuj do /usr/share/mediawiki/extensions. Dodaj teraz do LocalSettings.php wpis

require_once("$IP/extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.php");

działa po odświeżeniu przeglądarki.

Linki

Osobiste
Przestrzenie nazw

Warianty
Działania
Wiki
Nawigacja
Inne
Narzędzia