MediaWiki
Z Fedora Wiki
Spis treści |
Instalacja MediaWiki
Założenia:
- umiesz kopiować i edytować pliki na koncie root ;)
- po lekturze rozdziału o serwerach masz już LAMP
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
$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";
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
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.
