Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
tree: 1399f3c770
Fetching contributors…

Cannot retrieve contributors at this time

file 975 lines (818 sloc) 44.995 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975
%revised
\chapter{Einrichtung}
\index{Einrichtung|(}%
\index{Serendipity!Einrichtung|see{Einrichtung}}%
\index{Installation|see{Einrichtung}}%

Die folgenden Installationsanweisungen sind bewusst sehr ausführlich
gehalten, um auch Anfängern den Einstieg zu ermöglichen. Fortgeschrittene
Anwender finden eine Zusammenfassung
im Abschnitt \ref{Schnelle Installation} auf Seite
\pageref{Schnelle Installation}.

\section{Wahl der Waffen}
\index{Serendipity!benötigte Programme|(}%
\index{FTP}%
Um Serendipity voll auszunutzen, benötigt
man einiges an Zusatz\-soft\-ware, als Erstes
ein Programm, um Dateien (und auch
Serendipity selbst) auf den eigenen Server hochzuladen. Üblicherweise
geschieht dies mittels eines FTP-Programmes, in manchen Fällen aber auch
per SSH bzw.\ SFTP\footnote{siehe Abschnitt \ref{Protokolle} auf Seite
\pageref{Protokolle}}. Sollten Sie FTP einsetzen, empfiehlt sich ein
Programm, das mit \emph{Threads}\footnote{\emph{Threading}
\index{Threading (FTP)}%
wird von FTP-Programmen benutzt, um mehrere gleichzeitige Verbindungen zu
einem Server aufzubauen.} umgehen kann, was den Upload vieler
kleiner Dateien beschleunigt. Für Windows ist
\index{SmartFTP}%
SmartFTP\footnote{\cmd{http://www.smartftp.com/}} für solche Zwecke
empfehlenswert. Weiterhin sollte das FTP-Programm auch ermöglichen,
Dateirechte mit dem Befehl \cmd{chmod} zu ändern.

Zum Entpacken von Serendipity benötigen Sie ein Programm wie 7-Zip oder
Winzip oder entsprechende Kommandozeilen-Tools in einer
Linux-Umgebung.

Um das Blogsystem zu bedienen, benötigen Sie selbstverständlich einen
Webbrowser. Serendipity läuft mit allen gängigen Webbrowsern (Mozilla
\index{Webbrowser!Anforderungen}%
\index{Browser|see{Webbrowser}}%
Firefox, Internet Explorer, Opera, Safari) auch älterer Generation, da
Java\-Script/Ajax nur im Bedarfsfall verwendet (aber nicht benötigt) wird.
Um später leicht Änderungen an Ihrem Layout durchzuführen, empfiehlt der
Autor
den Einsatz von Mozilla Firefox und die Installation der Extensions
"`Firebug"'\footnote{\cmd{http://www.getfirebug.com/}} und
"`Web-Developer"'\footnote{\cmd{https://addons.mozilla.org/de/firefox/addon/60}}.
Mittels dieser beiden Erweiterungen können Sie Designänderungen direkt in der
Browser-Ansicht testen. Dies erleichtert die
Template-Erstellung ungemein.

Zur Verwaltung von Datenbanken und Tabellen gibt es zahlreiche
SQL-Anwendungen. Bei der Benutzung von MySQL ist das Web-basierte
\index{MySQL}%
\index{phpMyAdmin}%
phpMyAdmin\footnote{\cmd{http://www.phpmyadmin.net/}} sehr zu empfehlen,
\index{PostgreSQL}%
für PostgreSQL gibt es analog
\index{phpPgAdmin}%
phpPgAdmin\footnote{\cmd{http://phppgadmin.sourceforge.net/}} und für
SQLite
\index{SQLite}%
\index{phpSQLiteAdmin}%
phpSQLiteAdmin.\footnote{\cmd{http://www.phpguru.org/static/phpSQLiteAdmin.html}}
Die Installationsanleitung für diese Web-Anwendungen schlagen Sie bitte auf den
jeweiligen Projekt-Webseiten nach.
\index{Serendipity!benötigte Programme|)}%

\section{\label{Installation}Installation}

Im Folgenden gehen wir davon aus, dass Sie entweder
selbständig einen Webserver mit PHP und Datenbanken eingerichtet haben
oder von einem Dienstleister einen entsprechend aufgesetzten Webserver
bereitgestellt bekommen.

Dort müssen Sie Serendipity unterhalb des
\index{Document Root}%
\index{example.com}%
Document Root (siehe Seite \pageref{DocRoot}) ablegen.
Im Folgenden nennen wir dieses Verzeichnis exemplarisch
\cmd{/var/www/example.com}.
Alle Angaben, die diesen Pfad enthalten, müssen Sie auf Ihre
individuellen Gegebenheiten anpassen.

\index{Verzeichnisbenennung}%
\index{Fehler!Verzeichnisbenennung}%
Sie werden Serendipity in einem Unterverzeichnis dieses Stammpfads
installieren, so dass Sie das Blogsystem später über die URL
\cmd{http://www.""example.com/serendipity/} aufrufen können. Ob Sie dieses
Unterverzeichnis ebenfalls \cmd{serendipity} nennen, bleibt Ihnen
überlassen -- es darf auch
\cmd{blog}, \cmd{tagebuch} o.\,ä.\ heißen. Sie sollten jedoch Sonderzeichen
wie den Unterstrich (\cmd{\_}) sowie Zahlen am Anfang oder Ende des
Verzeichnisnamens vermeiden, da dies zu Problemen mit
Serendipitys dynamisch generierten URLs führen kann.

Sie können Serendipity natürlich auch direkt ins Stammverzeichnis selbst
installieren. Beachten Sie jedoch dabei, dass dadurch
die Installation anderer Software, etwa eines Forums oder eines
Statistikprogramms,
schwieriger werden könnte, wenn die URL-Umformung aktiviert wurde und
Serendipity direkte Zugriffe auf Unterverzeichnisse möglicherweise als eigene
Seitenausgabe auffasst.

\subsection{Upload der Dateien}

\index{Download}%
\index{Serendipity!Download}%
Das Serendipity-Paket bekommen Sie entweder von der
Projekt-Webseite \cmd{http://www.s9y.org/} im Bereich
\menu{Downloads} oder direkt von der Source\-Forge-Projektseite.\footnote{\cmd{http://sourceforge.net/project/showfiles.php?group\_id=75065}}

\index{Nightlies}%
\index{Snapshots}%
\index{Lite Release}%
\index{Tarball}%
Auf beiden Seiten finden Sie sowohl die aktuellste Ausgabe
als auch Beta- und ältere
Versionen und die täglichen \emph{Snapshots}. Obwohl es sich bei Letzteren
um die tagesaktuellen Entwicklerversionen handelt, sind diese bei Serendipity
gewöhnlich sehr stabil. Neben den vollständigen
Installationspaketen gibt es zu einigen Releases auch sogenannte
\emph{LITE Releases}. Diese enthalten nur das Standard-Template
und sind mit etwa 3\,MB etwas kleiner als die anderen Pakete, die ca.\ 5\,MB
umfassen.

Außerdem können Sie die Pakete in mehreren Archivformaten
herunterladen: als \cmd{zip}-Datei sowie als \cmd{bzip2}
(Dateinamensendung \cmd{tar.bz2}) oder
\cmd{gzip} (Dateinamensendung \cmd{tar.gz}) gepackten
\emph{Tarball}. Alle drei Varianten enthalten die gepackten
PHP-Dateien, die Sie auf Ihren Webserver hochladen müssen. Für
Windows-Benutzer ist das \cmd{zip}-Archiv am einfachsten zu handhaben,
unter Unix empfiehlt sich der Tarball.

Falls Sie via \cmd{ssh} direkten Shellzugriff auf Ihren Webserver haben,
laden Sie das Paket mittels \cmd{wget} ohne Umwege direkt auf den Server
und entpacken es
mit einem Kommandozeilen-Programm:

\begin{ospcode}
\uprompt{}\textbf{cd /var/www/example.com/}
\uprompt{}\textbf{wget "http://downloads.sourceforge.net/php-blog/serendipity}
\textbf{-1.3.tar.gz?use\_mirror=mesh"}
[...]
\uprompt{}\textbf{tar -xvzf serendipity-1.3.tar.gz}
[...]
\end{ospcode}
%GH:TODO:Versionen aktualisieren

Anderenfalls laden Sie das Paket auf Ihren
eigenen Rechner und entpacken es dort mit einem geeigneten Programm
in ein temporäres
Verzeichnis. Aus diesem Ordner heraus laden Sie alle Dateien und
Unterverzeichnisse des entpackten
\cmd{serendipity}-Unterverzeichnisses mit allen Dateien mittels
FTP-Programm auf Ihren Webserver.
%PJ:Korrekt?
%GH:Grundsätzlich ja, nur sollte nicht das ganze Verzeichnis hoch-
%geladen werden, sondern nur die Dateien darin. Sonst hätte man
%später auf dem Server ja gedoppelte Inhalte.

\index{Fehler!beim Upload}%
Achten Sie beim Aufspielen der Dateien unbedingt darauf,
dass der Transfer nicht an einer Stelle abbricht oder fehlschlägt.
Teilweise hochgeladene Dateien können Serendipity
unbenutzbar machen. Da insgesamt mehrere hundert kleine Dateien
hochgeladen werden, empfiehlt es sich, im FTP-Programm die Benutzung
sogenannter Threads zu aktivieren. Damit öffnet es mehrere
parallele FTP-Verbindungen und lädt die Dateien so schneller hoch.
In jedem Fall sollten Sie sorgfältig auf etwaige Fehlermeldungen achten.

\subsection{Einrichten der Verzeichnisse}
Nach dem Upload finden Sie auf Ihrem Webserver
im Verzeichnis \cmd{serendi\-pity}
einige Dateien mit \cmd{.php}-Endung (\cmd{index.php},
\cmd{comment.php}, \cmd{seren\-dipity\_admin.php} \ldots) sowie einige
Unterverzeichnisse (\cmd{bundled-libs}, \cmd{docs}, \cmd{htmlarea},
\cmd{include}, \cmd{lang} \ldots).

Um Zugriffsrechte auf einem Server zu verwalten, bedienen sich sowohl
Windows- als auch Linux-Systeme sogenannter Eigentümer- und
Gruppenrechte. Jeder Benutzer des Systems kann Dateieigentümer
und jeder Eigentümer kann Mitglied einer oder mehrerer
Benutzergruppen sein.

\index{Schreibrechte}%
\index{Zugriffsrechte}%
\index{Benutzergruppen!Rechte}%
\label{Zugriffsrechte}%
Jede Datei (und jedes Verzeichnis) auf einem Server ist einem Eigentümer
und einer Gruppe zugewiesen. Für beide wird der Zugriff auf eine Datei
über ein Zugriffs- (oder Ausführbarkeits-), Lese- und Schreibrecht geregelt. Meist hat ein
Eigentümer die vollen Rechte an einer Datei: Er kann sie ansehen, ändern
und löschen. Die anderen Mitglieder derselben Benutzergruppe können
jedoch abweichende Rechte haben, so dass sie die Datei nur
ansehen, aber nicht verändern dürfen. Zudem muss noch
geregelt werden, welche Zugriffsrechte Benutzer haben, die weder
Eigentümer noch Gruppenmitglieder sind. Auch für diese
"`anderen Benutzer"', also den "`Rest der Welt"', werden
Zugriffs-, Lese und Schreibrecht aufgeteilt.

Wenn Sie eine Datei mittels FTP auf einen Webserver laden, tun Sie dies
(zwangsläufig) mit dem Benutzeraccount, der für den FTP-Zugriff eingerichtet
wurde. Hochgeladene Dateien werden diesem Benutzeraccount und standardmäßig
einer Gruppe zugewiesen, der Ihrem Benutzerkonto angehört. Dieses Vorgehen
stellt sicher, dass andere Benutzer, die auf demselben Server tätig sind, nicht
einfach Ihre Dateien lesen oder verändern können. Optimalerweise haben diese
keine Möglichkeit, auf von Ihnen hochgeladene Dateien zuzugreifen.

Die Webserver-Software, die die von Ihnen hochgeladenen Dateien interpretiert
und als Webseite ausliefert, läuft ebenfalls mit den Rechten eines bestimmten
Benutzers. Dieser heißt häufig \cmd{www-data}, \cmd{wwwrun} oder auch
\cmd{nobody}. Damit dieser Systembenutzer Software wie Serendipity ausführen
kann, muss er bestimmte Rechte an den von Ihnen hochgeladenen Dateien haben. Das
müssen Sie sicherstellen. In üblichen Konfigurationen ist Ihr Benutzeraccount
Mitglied derselben Gruppe wie der Webserver-Nutzer, die Lesezugriff auf alle
hochgeladenen Dateien hat.

Beim Hochladen von Dateien mittels FTP können Sie in diese Rechte
eingreifen. Dazu bieten viele Programme bei Rechtsklick auf eine Datei
oder ein Verzeichnis ein Menü namens \menu{Permission} oder \menu{CHMOD}
an (Abbildung \figref{fig:img/chmod.eps}).

\ospfigure{0.5}{img/chmod.eps}{\menu{CHMOD}-Maske des FTP-Programmes SmartFTP}{fig:img/chmod.eps}%

Dort trägt man, Unix-Konventionen entsprechend, die Zugriffsrechte für
Eigentümer/Benutzer (\emph{Owner}), Gruppe (\emph{Group}) und Rest
(\emph{Other}) ein: für jede dieser drei Nutzerkategorien eine Zahl.
%FM im Bild heißt es 'Benutzer' statt 'Eigentümer'. Und was bitte ist 'klebrig' im Bild??
%GH 'Klebrig' ist eine ganz konfuse Sache. Damit ist das Permission StickyBit
%gemeint, dass einige Sonderfälle für Zugriffsrechte definiert. Das zu erklären
%würde hier aber leider arg über die Stränge schlagen.
Eine \cmd{0} bedeutet "`kein Zugriff"', eine \cmd{1} "`Ausführen
möglich"', eine \cmd{2} "`Schreiben erlaubt"' und eine \cmd{4}
"`Lesen erlaubt"'. Diese Zahlen lassen sich addieren, so dass
ein Lese- und Schreibzugriff durch die Zahl \cmd{6} angegeben wird. Für
Verzeichnisse gilt dabei, dass diese nur \emph{betreten} werden
dürfen, wenn das Recht mit der Zahl \cmd{1} in der Summe enthalten ist, etwa beim
Vollzugriff mit \cmd{7}.

Mit der Zugriffsmaske \cmd{777} erhält jeder Nutzer volle Zugriffsrechte auf
die betroffene Datei. Damit stellt man einfach sicher, dass sowohl der eigene
Benutzeraccount als auch der des Webservers volle Zugriffsrechte haben --
allerdings auch andere Benutzer auf demselben Server. Daher ist es besser, die
Zugriffsrechte von Dateien und Verzeichnissen so strikt wie möglich zu setzen.
Wie dies konkret bei Ihnen aussieht, klären Sie am besten mit Ihrem Provider.

Damit der Webserver Serendipity ausführen kann, benötigt er Leserechte für
\emph{alle} Dateien und Verzeichnisse. Um Serendipity zu installieren, braucht
er zudem anfangs Schreibzugriff auf das Stammverzeichnis, damit er die Dateien
\cmd{serendipity\_config\_local.inc.php} und \cmd{.htaccess} erstellen kann.
Darüber hinaus wird das Installationsprogramm die Unterverzeichnisse
\cmd{templates\_c}, \cmd{archives} und \cmd{uploads} zu erstellen versuchen.
Sollte es diese schon geben, müssen Schreibrechte für den Webserver-Benutzer
dafür vergeben werden. Nach der Installation benötigt der Webserver nur noch
Schreibrechte auf die genannten drei Unterverzeichnisse und zwei Dateien, den
globalen Schreibzugriff auf das Stammverzeichnis können Sie also wieder
entfernen.

Wenn Sie darüber hinaus das Spartacus-Plugin zum Download von Templates
und Plugins nutzen wollen (siehe Kapitel \ref{Spartacus} ab
Seite \pageref{Spartacus}), müssen auch die Verzeichnisse \cmd{plugins}
und \cmd{templates} beschreibbar sein (und bleiben).

\subsection{Einrichten der Datenbank}
\label{DBeinrichten}%
\index{Datenbank!einrichten|(}%

Nachdem nun also alle notwendigen Dateien hochgeladen wurden und Sie die
Zugriffsrechte konfiguriert haben, müssen Sie eine Datenbank für
Serendipity einrichten.

Je nachdem, welche Datenbanksoftware auf Ihrem Webserver zur Verfügung
steht, kann dieser Vorgang unterschiedlich ausfallen.

Verwendet Ihr Webserver PHP5, ist die
\index{SQLite!einrichten}%
Datenbank SQLite automatisch verfügbar. Dieses Datenbanksystem
speichert alle seine Datenbanken und Tabellen in einer einzigen Datei.
Diese wird im Serendipity-Verzeichnis abgelegt und während der
Installation ohne Ihr Zutun automatisch erstellt, es sind
daher keine vorbereitenden Eingriffe notwendig.

Beim Einsatz von MySQL und PostgreSQL geht Serendipity davon aus, einen
Datenbankbenutzer und eine leere Datenbank vorzufinden. Üblicherweise
erhält man die Zugangsdaten von seinem Provider,
da der Benutzeraccount bereits besteht. Manche Provider gestehen
Ihnen nur eine einzelne Datenbank zu, so dass Sie keine neuen erstellen
können. Das ist nicht weiter tragisch, da sich Serendipity problemlos mit anderen
Anwendungen innerhalb derselben Datenbank betreiben lässt. Viele
Provider bieten zudem eigene Oberflächen zur Erstellung einer Datenbank an.

%GH:Auch folgender Absatz wurde gelöscht, ist aber wichtig zu erwähnen:
Serendipity benötigt lediglich irgendeine Datenbank für seine Tabellen --
man kann also problemlos eine bereits bestehende Datenbank für die
Installation benutzen.

\index{Datenbank!Rechte}%
\index{Privileges}%
Sollte noch kein Datenbankbenutzeraccount bestehen, müssen Sie ihn anlegen.
Dabei ist wichtig, dass der Benutzer über alle Rechte verfügt,
die Serendipity später im Betrieb benötigt. Konkret heißt das, dass er
Tabellen anlegen (\cmd{CREATE}), aktualisieren (\cmd{ALTER}) und
indizieren (\cmd{INDEX}) sowie Datensätze anlegen (\cmd{INSERT}),
aktualisieren (\cmd{UPDATE}), lesen (\cmd{SELECT}) und löschen
(\cmd{DELETE}) darf.

Um für MySQL einen solchen Benutzer anzulegen, benutzt man (in einem Programm
wie phpMyAdmin, welches die meisten
\index{MySQL!einrichten}%
\index{phpMyAdmin!Nutzer anlegen}%
Provider anbieten) folgende SQL-Syntax:

\begin{ospcode}
CREATE DATABASE serendipity;
GRANT SELECT, CREATE, INSERT, UPDATE, DELETE, ALTER, INDEX ON serendipity
TO 'serendipity'@'\%' IDENTIFIED BY PASSWORD '\cmdvar{passwort}';
\end{ospcode}

Diese beiden Befehle erstellen die leere Datenbank namens \cmd{serendipity}
und den gleichnamigen Benutzer, der die notwendigen Zugriffsrechte
erhält und sich über das Passwort \cmd{\cmdvar{passwort}} ausweisen muss.
Bei PostgreSQL benutzt man folgende Syntax:
\index{PostgreSQL!einrichten}%

\begin{ospcode}
CREATE USER serendipity WITH PASSWORD '\cmdvar{passwort}';
CREATE DATABASE serendipity WITH OWNER = serendipity;
GRANT SELECT, CREATE, INSERT, UPDATE, DELETE, ALTER ON DATABASE
serendipity TO 'serendipity'
\end{ospcode}

Um die Serendipity-Installation erfolgreich durchzuführen, benötigen Sie den
Benutzernamen des Datenbanknutzers (hier \cmd{serendipity}), dessen\osplinebreak{}
Passwort, den Namen einer leeren Datenbank und den
Namen (oder die IP-Adresse) des Datenbankservers.
\index{Datenbank!einrichten|)}%

\subsection{Die grafische Installationsroutine}
\index{Installation!aufrufen}%
\index{Fehler!Installation}
\label{webinstaller}%

Nach diesen Vorarbeiten rufen
Sie die URL Ihrer Serendipity-Installation im Browser auf, hier also \cmd{http://www.example.com/serendipity/}.
Versuchen Sie nicht, eine Datei Ihrer lokalen Festplatte aufzurufen oder
eine Datei mittels FTP-Zugriff zu \emph{öffnen} (z.\,B. via Doppelklick). Dies
würde Ihnen lediglich den Quellcode der PHP-Anwendung anzeigen.
Stattdessen müssen Sie den Webbrowser einsetzen, damit Ihr Webserver die
PHP-Anwendung ausführt.

Bei korrekter Einrichtung des Webservers sehen Sie nun eine Kurzübersicht
wie in Abbildung \figref{fig:img/install.eps}, die
aufführt, welche Voraussetzungen der Server erfüllen muss, ehe Sie
fortfahren können.
Sollte sich diese entgegen Ihren Wünschen in englischer Sprache präsentieren,
konfigurieren Sie Ihren Browser so um, dass Deutsch die
bevorzugte Sprache darstellt.

\osppagebreak

\ospfigure{0.97}{img/install.eps}{Installations\-bildschirm}{fig:img/install.eps}%

\index{Fehler!bei der Installation}%
Weist Sie die Übersicht auf einen Fehler bei den Schreibrechten oder den
Server-Einstellungen hin, beheben Sie ihn und rufen Sie
die Installations\-oberfläche erneut auf. Warnungen werden mit
roter Schriftfarbe dargestellt, eingeschränkte Funktionen oder Hinweise
in Gelb; korrekte Einstellungen sind grün
hervorgehoben. Für Personen mit Farbschwächen folgt jedem gelben
Hinweis ein \cmd{[?]}, jeder Warnung ein \cmd{[!]}.

Hinweise der Installationsoberfläche zeigen dabei einen Unterschied
zwischen dem von Serendipity empfohlenen Wert und der Einstellung auf Ihrem
Webserver an. Im Gegensatz zu Fehlern können Sie Serendipity bei solchen Hinweisen aber
trotzdem betreiben, jedoch entweder mit Einbußen bei der Performance oder
Funktionalität.

Stimmen die systemseitigen Voraussetzungen, starten Sie die
Installationsoberfläche über einen der beiden
Links am Ende der Seite: \menu{Einfache Installation} oder
\menu{Fortgeschrittene Installation}.

Die \menu{Einfache Installation} verlangt von Ihnen nur die absolut
notwendigen Angaben. Dagegen bietet die
\menu{Fortgeschrittene Installation} sämtliche Konfigurationsoptionen an,
die sich auch später im laufenden Betrieb ändern lassen. Da wir in
Kapitel \ref{Konfiguration} ab Seite \pageref{Konfiguration}
detailliert auf alle Optionen eingehen, klicken Sie
an dieser Stelle am besten auf \menu{Einfache Installation}.

\ospfigure{0.99}{img/install2.eps}{Initiale Konfiguration}{fig:img/install2.eps}%

Die Folgeseite (Abbildung \figref{fig:img/install2.eps}) stellt alle
Installationsoptionen in Gruppen unterteilt dar.

\subsubsection{Der Abschnitt \menu{Datenbankeinstellungen}}
\label{Datenbankeinstellungen}%
\index{Datenbank!Einstellungen|(}%

In diesem Bereich stellen Sie die Zugangsdaten für die gewünschte
Datenbank ein. Im Feld \menu{Datenbanktyp} können Sie zwischen allen im
PHP-Kern verfügbaren Datenbanktypen wählen. Beim Einsatz
\index{SQLite}%
von PHP4 wird der Datenbanktyp \menu{SQLite} also gar nicht
erst angezeigt.

Den \menu{Servernamen} (meist \cmd{localhost} oder ein Name wie
\cmd{db1231231.pure\-tec.de}) tragen Sie genauso wie den Namen und das
Passwort des Datenbankbenutzers in die zugehörigen Felder ein. Beim
Datenbanktyp \menu{SQLite} spielen diese Einstellungen
keine Rolle und dürfen leer bleiben.

Als Datenbankname tragen Sie den Namen der, entsprechend der Beschreibung auf
Seite \pageref{DBeinrichten},
erstellten Datenbank ein. Darin erstellt Serendipity
Tabellen, deren Namen es das Präfix \cmd{serendipity\_} voranstellt.
Diese Vorsilbe ermöglicht die Installation
in eine Datenbank, in der bereits andere Tabellen liegen.
Wählen Sie in der \menu{Fortgeschrittenen Installation} ein anderes Präfix,
können Sie auch mehrere
Serendipity-Instanzen auf einem Server installieren.
%PJ:Hier kann gerne noch ein pageref auf die entsprechende Seite hin
\index{Datenbank!Einstellungen|)}%

\subsubsection{Der Abschnitt \menu{Generelle Einstellungen}}
\label{Generelle Einstellungen}%

Die Optionen im Abschnitt \menu{Generelle Einstellungen} legen den
Standard-Benutzer für das zu installierende Blog fest. Tragen Sie als
\index{Nutzer!Admin-\textasciitilde{} festlegen}%
\index{User|see{Nutzer}}%
\index{Adminnutzer!festlegen}%
\index{Passwort!des Adminnutzers setzen}%
\menu{Admin"=Benutzername} also den Namen ein, den Sie später beim Login
verwenden wollen. Er sollte möglichst keine Sonderzeichen
oder Umlaute enthalten, da dies zu Problemen bei unterschiedlichen
Zeichensätzen führen kann. Das Gleiche gilt für das \menu{Admin-Passwort};
lediglich im Feld \menu{Voller Name} können Sie auch auf
Sonderzeichen zurückgreifen.

\index{E-Mail-Adresse!des Adminnutzers setzen}%
Die Angabe der \menu{Admin-E-Mail}-Adresse benötigt Serendipity beim
Verschicken von
Hinweisen über neu eingegangene Kommentare und Trackbacks.

\index{Blog!Titel festlegen}%
\index{Titel!des Blogs festlegen}%
\index{Blog!Beschreibung festlegen}%
\index{Beschreibung!des Blogs festlegen}%
Den \menu{Blog-Titel} und die \menu{Blog-Beschreibung} zeigt das Frontend
im Kopfbereich an und verwendet beides auch für die Titelzeile im Browser.

\index{Sprache!konfigurieren}%
Die \menu{Sprache} des Blogs gibt die Standardsprache vor, in der
Serendipity Nachrichten und Meldungen darstellt. Später lässt sich
für Besucher der Webseite und für jeden Redakteur individuell eine Sprache
einstellen (siehe Seite \pageref{eigeneeinstellungen-sprache}).

\subsubsection{Der Abschnitt \menu{Design und Optionen}}
\label{Design und Optionen}%

Der letzte Einstellungsblock legt bei der einfachen Installation lediglich
fest, ob der Standard-Redakteur den WYSIWYG-Editor zur Erstellung von
Einträgen benutzen möchte.

\subsubsection{Abschluss der Installation}

Sind alle Optionen eingetragen (keine Angst, Sie können sie später
allesamt wieder verändern), schließen Sie den Installationsvorgang durch
einen Klick auf \menu{Vollständige Installation} ab.

Die letzte Seite der Installationsroutine (Abbildung
\figref{fig:img/install3.eps}) informiert Sie über die von
Serendipity durchgeführten Aktionen. Dazu gehört das Anlegen der notwendigen
Tabellen und des Standardbenutzers und die Einrichtung der
Standard-Plugins. Sollten Sie an dieser Stelle noch nicht über eine
passende Datenbank verfügen oder andere Fehler auftreten, informiert Sie
Serendipity auch darüber. Dann
heißt es zurück zu Abschnitt \ref{DBeinrichten} ab Seite
\pageref{DBeinrichten}.

\ospfigure{1.0}{img/install3.eps}{Einrichtung abgeschlossen}{fig:img/install3.eps}%

Bei fehlerfreier Installation können Sie über die URL \cmd{http://www.example.""com/serendipity/} das
Frontend aufrufen und unter
\cmd{http://www.exam\-ple.com/serendipity/serendipity\_admin.php} mit den
gewählten\osplinebreak{} Login-Daten auf das Backend zugreifen.


\subsection{Die Konfigurationsdatei\newline
serendipity\_config\_local.inc.php}
\index{serendipity-configlocalincphp@serendipity\_config\_local.inc.php}%
Alle grundlegenden
Konfigurationsvariablen wie die Daten für den Datenbankzugang und die aktuelle
Versionsnummer speichert Serendipity in der Datei
\cmd{serendipity\_config\_local.inc.php} im Stammverzeichnis.
Diese Datei sieht
ungefähr wie folgt aus:

\input{snippets/config-local}

Ähnlich wie bei der \cmd{.htaccess}-Datei (siehe Seite
\pageref{htaccess}) können Sie in dieser Datei später auch eigene
Konfigurationsparameter nachtragen. Fügen Sie diese \emph{nach}
der Zeile \cmd{You can place your own special variables after here:} ein,
so dass Serendipity sie bei einer Konfigurationsänderung nicht
versehentlich überschreibt. Je nach Konfiguration des Webservers kann es
sein, dass Sie keine Schreibrechte für diese Datei besitzen. Dies
\index{fixperm.php}%
lässt sich mit dem \cmd{fixperm.php}-Skript (siehe Seite
\pageref{fixperm}) ändern.

\subsection{Fehler bei der Installation}
\label{installationsfehler}%
\index{Installationsfehler|see{Fehler}}%
\index{Fehler!bei der Installation}%

Die zahlreichen Konfigurationsmöglichkeiten von Webservern geben
Spielraum für hinterlistige Fehler.

\subsubsection{Nur eine leere Seite erscheint}\label{Nur eine leere Seite
erscheint}%
\index{display\_errors}%
\index{leere Seite}%
\index{weiße Seite|see{leere Seite}}%
\index{Fehler!leere oder weiße Seite}%
\index{Fatal Error (PHP-Fehlermeldung)}%

Wenn an einer Stelle der Installation lediglich eine weiße Seite
erscheint, liegt dies meist an sogenannten \emph{PHP Fatal Errors}.
Normalerweise sieht man diese direkt auf der Webseite, aber einige
Webserver sind so eingestellt, dass sie PHP-Fehlermeldungen unterdrücken.
Wenn das Installationsskript endet, ohne vollständig
ausgeführt worden zu sein, führt dies dann zu den weißen/leeren
Seiten.

Um die Fehlermeldung dennoch zu sehen, versuchen Sie, in den
PHP-Fehlerlogfiles Ihres Webservers nachzuschauen. Diese liegen meist in
einem \cmd{logs}-Unterverzeichnis. Den genauen Speicherort solcher
Dateien teilt Ihnen der Provider mit.

Man kann aber auch versuchen, im
\index{htaccess@.htaccess}%
Serendipity-Stammverzeichnis eine Datei namens \cmd{.htaccess}
anzulegen und mit folgender Zeile zu füllen:

\begin{ospcode}
php_value display_errors on
\end{ospcode}

Beim Speichern der Datei achten Sie bitte unbedingt
darauf, dass PHP dafür Schreibrechte erhalten muss, da es diese
Datei während der Installation automatisch verändert.
\index{Versteckte Dateien}%
Achten Sie auch darauf, dass einige FTP-Programme Dateien, die mit
einem Punkt anfangen, verstecken, so dass Sie diese erst nach Umkonfiguration
des Programms sehen.

Die Fehlermeldungen geben
meist Aufschluss über die Ursache. Oft sind dies fehlende oder defekte
Dateien. Enthält eine Datei \cmd{Parse Errors}\footnote{PHP meldet einen
Parse Error, wenn eine Datei
\index{Parse Error (PHP-Fehlermeldung)}%
fehlerhafte Zeichen oder eine ungültige Syntax enthält.}, ist dies meist auf
fehlerhafte FTP-Uploads zurückzuführen. Auch fehlende Leserechte kommen als Ursache in Frage.

Am häufigsten kann der Ordner
\index{Template-Sc@templates\_c}%
\cmd{templates\_c} nicht beschrieben werden. Dieser ist für
von Smarty kompilierte Dateien gedacht, die für die Darstellung des
Frontends verwendet werden.


\subsubsection{HTTP/500 Fehlermeldung} \label{HTTP/500 Fehlermeldung}
\index{HTTP/500-Fehlermeldung}%
\index{Fehler!HTTP/500-Fehlermeldung}%
\index{Fehler!htaccess@.htaccess}%
\index{htaccess@.htaccess}

Serendipity setzt einige Standardoptionen über die Datei
\cmd{.htaccess}. Von einigen Webservern wird dieser Mechanismus jedoch
nicht unterstützt und kann gar zu einem Abbruch des Skripts führen.
Sollte sich Serendipity nach der Installation nicht aufrufen
lassen, löschen Sie die \cmd{.htaccess}-Datei einfach. Sie ist für den
Betrieb nicht zwingend notwendig. Ohne diese Datei können Sie jedoch
keine URL-Umformung benutzen, die für Serendipity "`sprechende URLs"'
ermöglicht (siehe Seite \pageref{urlformung}).

\subsubsection{Seiten werden nicht gefunden}
\label{Seiten werden nicht gefunden}
\index{mod\_rewrite}%
\index{Unterseiten funktionieren nicht}%
\index{Fehler!Unterseiten funktionieren nicht}%

Um "`sprechende URLs"' wie
\cmd{http://www.example.com/serendipity/\osplinebreak{}archives/1-Mein-erster-Artikel.html}
zu unterstützen, kann Serendipity zwei Arten der URL-Umformung
unterstützen. Da Pfade und Dateien wie oben genannt nur virtuell erstellt
werden und nicht wirklich auf dem Server liegen, muss Serendipity über
Umleitungen auf seine zentrale Datei \cmd{index.php} geleitet werden.

\index{URL-Umformung}%
Diese Umleitung konfiguriert Serendipity anhand der Datei
\cmd{.htaccess}. Dort gibt es zwei Varianten der URL-Umformung:
\emph{mod\_rewrite} und \emph{Apache Errorhandling}.

\emph{mod\_rewrite} ist die komfortabelste Variante der Umformung,
benötigt aber ein zusätzliches Webserver-Modul, welches nicht immer
verfügbar ist. \emph{Apache Errorhandling} setzt einen Trick ein, der
eigentlich nicht gefundene Seiten (\emph{HTTP/404 Not Found}) virtuell
auf eine zentrale Seite umleitet, die dann den eigentlichen Inhalt
ausgibt.

Serendipity versucht bei der Installation die beste Art für Sie
automatisch zu erkennen. Auf manchen Servern gelingt dies jedoch nicht,
und es kann sein, dass Serendipity die URL-Umformung fälschlicherweise
aktiviert. Wenn diese Umformung nicht klappt, gehen alle Links von
Serendipity somit "`ins Leere"'. Dazu zählen auch Links zum Stylesheet
des Frontends, die das Layout beeinflussen.

Löschen Sie die \cmd{.htaccess}, um dieses Problem zu lösen.
Danach suchen Sie die Serendipity-Administrationsoberfläche via
\cmd{http://www.example.""com/serendipity/serendipity\_admin.php} auf,
loggen sich ein und gehen über den Menüpunkt \menu{Konfiguration} zu der
Unterebene \menu{Design und Optionen}. Dort findet sich die Option
\menu{URL-Formung}. Diese Option stellen Sie auf \emph{None} und
speichern die Konfiguration. Daraufhin wird die \cmd{.htaccess}-Datei
neu erstellt.

Nun sollten Sie Serendipity-Unterseiten wieder problemlos öffnen können.

\subsubsection{Installation erneut ausführen} \label{Installation erneut
ausfuehren} \index{Erneute Installation}
\index{serendipity-configlocalincphp@serendipity\_config\_local.inc.php} \index{fixperm.php}
\index{Fehler!Installation erneut ausführen}

Wenn die Installation aus irgendwelchen Gründen fehlgeschlagen ist,
möchten Sie Serendipity vielleicht von Grund auf neu installieren. Dazu
muss Serendipity in den Ursprungszustand zurückversetzt werden. Löschen
Sie dafür die Datei \cmd{serendipity\_config\_local.inc.php}. Diese Datei
enthält die Basis-Konfigurationsparameter des Blogs, und sobald diese
Datei nicht mehr vorhanden ist, erkennt Serendipity nicht mehr, dass es
installiert ist.

Auch die Datei \cmd{.htaccess} sollte vor einer neuen Installation
gelöscht werden. Bei beiden Dateien ist zu beachten, dass sie von PHP
erstellt wurden und von Serendipity mit minimalen Rechten versehen werden,
um diese Daten zu schützen. Daher kann es unter Umständen sein, dass Sie
mit Ihrem FTP-Zugang keinen Zugriff mehr auf diese Datei haben!

Um dies zu beheben, bedienen Sie sich eines kleinen PHP-Skripts.
Speichern Sie eine Datei namens \cmd{fixperm.php} im
Serendipity"=Stammverzeichnis mit folgendem Inhalt:

\label{fixperm} \index{fixperm.php}
\input{snippets/snippet-fixperm}

Rufen Sie danach die Datei mittels
\cmd{http://www.example.com/serendi\-pity/fixperm.php} im Browser auf. Nach
dem Aufruf sollten Sie die Ausgabe "`Rechte geändert"' sehen, und die
Dateirechte sollten nun so verändert worden sein, dass Sie wieder vollen
Zugriff auf die Datei haben.

Übrigens können Sie dieses kleine Skript auch später benutzen, um andere
Dateien im Serendipity-Verzeichnis wieder mit Zugriffsrechten für Sie
auszustatten. Dabei müssen Sie lediglich die Code-Zeile verändern, die
den Namen der zu ändernden Datei enthält.

Zuletzt müssen Sie noch die von Serendipity angelegten Datenbanktabellen
wieder löschen. Wenn diese Tabellen nicht gelöscht werden, würde
Serendipity diese bei einer Neuinstallation schützen wollen. Nur wenn
alle Tabellen von Serendipity vorher mittels phpMyAdmin oder Ähnlichem
gelöscht werden, wird eine vollständige Neuinstallation möglich sein.

\subsubsection{Fehler beim Login}%
\label{Fehler beim Login}%
\index{Session-Fehler}%
\index{Fehler!Session}%
\index{Fehler!Login}%

Wenn Sie Fehlermeldungen am Anfang der Seite erhalten, die aussehen wie
diese:

\begin{ospcode}
Warning: session_write_close() [function.session-write-close]:
open(/var/lib/php/session/sess_h5a8jerb22q54pkqcjb4qtnqr1, O_RDWR)
failed: Permission denied
\end{ospcode}

dann bedeutet dies, dass Ihr Webserver keinen gültigen Speicherpfad für
die PHP-Sessiondateien eingetragen hat. Entweder können Sie den Fehler
beheben, indem Sie korrekte Schreibrechte zu dem in der Fehlermeldung
genannten Pfad einrichten. Oder Sie müssen einen gültigen Pfad in der
Datei \cmd{php.ini} in der Variable \cmd{session.save\_path} eintragen.

Ein weiteres Problem, das bei falsch eingerichteten PHP-Sessions
auftreten kann, ist, wenn Sie sich nach jedem Klick im Serendipity-Backend
erneut einloggen müssen. Dies bedeutet, dass der Webserver Ihre
Logindaten nicht in einer Session speichern und Sie somit nicht
eindeutig wiedererkennen kann.

Ein ähnliches Problem kann auch dann auftreten, wenn Ihr Browser keine
Cookies annimmt, weil sie z.\,B.\ von einem Werbefilter oder
Anti-Virus-Programm gefiltert werden. Auch kann es passieren, dass, wenn
Sie die Serendipity-Oberfläche mit einer URL wie
\cmd{http://localhost/seren\-di\-pity/} aufrufen, die Cookies für eine solche
URL nicht angenommen werden. In einem solchen Fall müssten Sie
Serendipity über die IP-Adresse wie \cmd{http://127.0.0.1/serendipity/}
aufrufen.

\index{Weiterleitung}%
\subsubsection{\label{Weiterleitung}Weiterleitung auf verschiedene URLs}

Wenn Sie Serendipity installieren, möchten Sie Ihr Blog möglicherweise
unter mehreren URLs aufrufen können.

Ein klassischer Fall dieser unterschiedlichen URLs ist, wenn Ihr Blog
sowohl unter \cmd{http://example.com/serendipity/} als auch
\cmd{http://www.exam\-ple.com/serendipity/} verfügbar sein soll.
Damit Serendipity die jeweils genutzte URL als Standard für Folgeseiten
übernimmt, müssen Sie lediglich in der Konfiguration Serendipitys die
Option \menu{HTTP-Hostname} (siehe Kapitel \ref{HTTP-Hostname} ab Seite
\pageref{HTTP-Hostname}) aktivieren.

Diese Funktion hilft Ihnen jedoch nur dann, wenn der benutzte Pfad (in
diesem Fall \cmd{/serendipity/}) in allen Fällen gleich bleibt. Sollten
Sie Ihr Blog aber sowohl unter der URL
\cmd{http://example.com/serendipity/} als auch
\cmd{http://serendipity.ex\-ample.com/} darstellen wollen, dann würden Sie
diese Vorbedingung nicht erfüllen können. Serendipity kann mit einer
derartigen Einstellung nicht umgehen.

Der Grund dafür ist, dass bei einer abweichenden Pfadkomponente die
relativen Links nicht mehr korrekt funktionieren. Bei der einen URL
müsste Serendipity für den HTTP-Pfad immer \cmd{/serendipity/} nutzen,
während bei der anderen URL immer \cmd{/} genutzt werden müsste. Die
Links würden daher nicht übereinstimmen und zu zahlreichen Problemen bei
der Darstellung von Grafiken und Verweisen führen.

Das bessere Vorgehen in diesem Fall wäre also die Einrichtung einer
Weiterleitung. Dabei sollten Sie sich eine endgültige URL aussuchen und
alle weiteren optionalen URLs zu dieser Zielseite weiterleiten.

Weiterleitungen können Sie auf unterschiedliche Weisen realisieren. In
unserem Beispiel gehen wir davon aus, dass
\cmd{http://serendipity.example"".com/} die Zielseite und
\cmd{http://example.com/serendipity/} die Quellseite darstellt.

Bei vielen Standardinstallationen für mehrere verfügbare URLs würden beide
URLs bereits auf dasselbe Verzeichnis verweisen.
\cmd{http://serendipity"".example.com/index.php} als auch
\cmd{http://example.com/serendipity""/index.php} würden physikalisch auf
dieselbe Datei zeigen, man spricht daher von einem \cmd{Alias}. Sollte
dies bei Ihnen der Fall sein, haben Sie zwei Möglichkeiten der
Weiterleitung:

\begin{osplist}

\index{mod\_rewrite}%
\item Weiterleitung via \cmd{.htaccess} bei identischen Serendipity-Verzeichnissen

Wenn auf Ihrem Server mod\_rewrite zur Verfügung steht, können Sie an
den Anfang Ihrer \cmd{.htaccess}-Datei des Serendipity-Verzeichnisses vor dem
Blog \cmd{\#Begin s9y} folgende Zeilen einfügen:

\input{snippets/forward-htaccess}

Diese Regel weist den Webserver an, dass sämtliche Zugriffe zu
\cmd{http://""example.com/} auf die Zielseite
\cmd{http://serendipity.example.com/} weitergeleitet werden. Sie müssen
also jeweils den Quellservernamen, das Quellverzeichnis auf dem
Quellserver und den Zielserver in den obigen Zeilen an Ihre
Gegebenheiten anpassen.

\item Weiterleitung mittels PHP bei identischen Serendipity-Verzeichnissen

Ohne mod\_rewrite müssen Sie die Weiterleitung innerhalb der Datei
\cmd{se\-rendipity\_config\_local.inc.php} einprogrammieren. Öffnen Sie
diese Datei in einem Editor (bei fehlendem Schreibzugriff schauen Sie
sich bitte \cmd{fixperm.php} auf Seite \pageref{fixperm} an) und
fügen Sie in die Zeile vor dem letzten \cmd{?>} Folgendes ein:

\input{snippets/forward-local}

Dieser Code sorgt dafür, dass, wenn Serendipity auf dem Quellserver
aufgerufen wird, der Besucher automatisch auf die Zielseite
weitergeleitet wird.

\end{osplist}

Sollten durch die Art der Einrichtung jedoch beide URLs
(Weiterleitungsquelle und Weiterleitungsziel) auf unterschiedliche
Verzeichnisse Ihrer Domain zugreifen, dann können Sie die einfachste
Form der Weiterleitung nutzen:

\begin{osplist}

\item Weiterleitung mittels \cmd{index.html} bei unterschiedlichen
Serendipity"=Verzeichnissen

Erstellen Sie die Datei \cmd{index.html} in dem Verzeichnis der
Quell-URL (in unserem Beispiel \cmd{/serendipity/}):

\input{snippets/forward-html}

Beim Aufruf der Quell-URL wird dann unkompliziert auf die Ziel-URL
weitergeleitet.

\item Weiterleitung mittels \cmd{index.php} bei unterschiedlichen
Serendipity"=Verzeichnissen

Etwas schneller geht die Weiterleitung mittels PHP, da die Weiterleitung
dann intern im Browser ausgeführt wird und Sie nicht vorher kurz eine
weiße Seite im Browser aufflackern sehen. Speichern
Sie im Quellverzeichnis folgende \cmd{index.php}-Datei:

\input{snippets/forward-php}

\end{osplist}

Einen Sonderfall dieser Weiterleitung stellt das Beispiel dar, wenn Sie
Serendipity zwar in einem Unterverzeichnis Ihres Webservers installiert
haben (\cmd{http://example.com/blog/}), aber gerne möchten, dass
Serendipity beim Aufruf der Haupt-Domain (\cmd{http://example.com/})
direkt aufgerufen wird. Die einfachste Variante hier wäre natürlich,
dass Sie Serendipity in das Stammverzeichnis Ihrer Webseite
installieren, da dies problemlos möglich ist. Sollten Sie dies aus
irgendwelchen Gründen nicht bevorzugen, können Sie ebenfalls die
oben genannte Methode der Weiterleitung mittels \cmd{index.php} oder
\cmd{index.html} nutzen.

\subsubsection{Falsche Anzeige von Datumsangaben oder Sonderzeichen}
\label{Falsche Anzeige von Datumsangaben oder Sonderzeichen}%
\index{Locales}%
\index{Datumsangaben}%
\index{ISO-8859-1}%
\index{UTF-8}%
\index{Fehler!Sonderzeichen}%
\index{Fehler!Umlaute}%
\index{Fehler!Datumsanzeige}%

Serendipity benutzt zur Darstellung von Datumsangaben für Artikel und im
Kalender ein serverseitiges System namens \emph{locales}. Diese locales sind,
grob gesagt, eine Sammlung von nationalen Sprachbesonderheiten und geben an,
wie in beinahe allen gesprochenen Sprachen die Währungs- und Datumsangaben
formatiert und geschrieben werden. Damit Serendipity auf möglichst vielen
Sprachumgebungen ohne viel Aufwand lauffähig ist, verlässt es sich auf diesen
De-facto-Standard.

Ebenfalls zur weitreichenden Unterstützung verschiedener Sprachen
unterstützt Serendipity mehrere Zeichensätze. Ein Zeichensatz regelt, mit
welchem Binärsystem Buchstaben für den Computer abgespeichert werden --
denn je nach Zeichensatz ist für einen Computer "`ä"' nicht gleich "`ä"'.
Für die deutsche Sprache ist der standardisierte \emph{ISO-8859-1}-Zeichensatz
üblich. Um jedoch auch mit anderen Sprachen benutzbar zu
sein, hat sich der Zeichensatz \emph{UTF-8} etabliert, da dieser beinahe
alle Sonderzeichen jeder Sprache enthält. Ein arabischer Artikel könnte
so also direkt neben einem deutschen Artikel stehen, ohne dass
Sonderzeichen falsch dargestellt würden.

Sobald die Zeichensätze vermischt werden, kann es zu Fehldarstellungen im
Browser kommen -- Mozilla Firefox zeigt statt des korrekten Zeichens dann
ein Karo-Symbol mit einem Fragezeichen an. Wenn Sie dies einmal in Ihren
Artikeln beobachten, liegt ein solcher Zeichensatzkonflikt vor.

In der Serendipity-Konfiguration können Sie einstellen, ob Serendipity
mit nationalem Zeichensatz oder UTF-8 betrieben wird. Standardmäßig wird
dies bei der Installation für größtmögliche Kompatibilität direkt auf
UTF-8 gesetzt. Sie sollten daher bei einer frischen Installation
keinerlei Probleme mit Zeichensätzen erwarten -- erst bei späteren
Änderungen am System könnten möglicherweise einmal Probleme auftreten.

Die Behandlung von Sonderzeichen zur Speicherung in Datenbanken ist recht
komplex und kann mehrere Fehlerursachen haben.

Die erste Fehlerursache kann Ihr Browser sein. Stellen Sie sicher, dass
dieser den UTF-8-Zeichensatz darstellen kann. Wenn Sie beim Besuch der
Seite \cmd{http://www.columbia.edu/kermit/utf8.html} falsche
Sonderzeichen sehen, ist dies ein Indiz für eine fehlerhafte
Browserkonfiguration, die Sie mithilfe der Dokumentation Ihres Webbrowser
lösen müssen.

Die zweite Fehlerursache kann der Webserver sein, der Zeichensätze
selbständig verändert. Apache bietet eine Option an, ein sogenanntes
\emph{DefaultCharset} zu setzen, das die Ausgabe von Sonderzeichen
eventuell verändern könnte. Wenn der Webserver nicht die von Serendipity
bestimmten \emph{Content-Type}-HTTP-Kopfzeilen an den Browser sendet,
kann es sein, dass der Webserver durch seine Standardeinstellung die
Umbelegung durch Serendipity verhindert. Sprechen Sie daher mit ihrem
Provider und bitten Sie ihn, diese HTTP-Kopfzeilen zu überprüfen.

Zu guter Letzt gibt es nun noch die Datenbank, die Artikel mit
unterschiedlicher Kodierung speichern kann. Gerade zwischen MySQL 4.0
und 4.1 gab es weitreichende Änderungen in der Behandlung von
Zeichensätzen, die sich bei einem MySQL-Update darin äußern konnten,
dass Serendipity die Sonderzeichen falsch anzeigte. Um dies zu
korrigieren, müssen Sie sicherstellen, dass alle MySQL-Tabellen und
-Spalten als \emph{Collation} den übereinstimmenden Zeichensatz
benutzen (also \cmd{de\_latin} beim ISO-Zeichensatz und \cmd{utf8} für
UTF-8). Sobald dies korrekt übereinstimmt, kann in der
Serendipity"=Konfiguration die Option
\menu{Datenbank-Zeichensatzkonvertierung\osplinebreak{} aktivieren}
gewählt werden, was dann wieder zu einer korrekten Darstellung der
Sonderzeichen führen sollte.

In einigen Fällen ist es möglicherweise notwendig, einen vollständigen
SQL-Export der Datenbank vorzunehmen und die Datei mittels eines Editors
vom ISO-8859-1- ins UTF-8-Format zu überführen, neu zu importieren und
danach Serendipity zentral auf UTF-8-Zeichensätze umzustellen. Alternativ
können Sie das mit folgendem PHP-Skript erreichen, das einen Datenbankdump
namens \cmd{dump-iso.sql} in \cmd{dump-utf8.sql} vom ISO-8859-1-Zeichensatz
in den UTF-8-Zeichensatz verwandelt. Etwaige SQL-Befehle (\cmd{COLLATION}), die
MySQL-Zeichensätze bestimmen, müssen Sie jedoch manuell in der Datei
umwandeln, um sie später als vollständiges UTF-8 importieren zu können:

\osppagebreak

\input{snippets/utf8conv}

Zurück aber zu dem Problem mit falsch angezeigten Datumsangaben. Damit
der Wochentag "`Freitag"' nicht als "`Friday"' oder Ähnliches ausgegeben
wird, muss eine deutsche Sprachdatei für das locales-System auf dem
Server hinterlegt werden. Locales sind auf allen Betriebssystemen
verfügbar und in fast allen Fällen vorinstalliert. Je nach System können
sie auch nachinstalliert werden (bei Linux z.\,B.\ mittels
\index{locale-gen}%
\cmd{locale-gen}). Für jede Sprache gibt es abhängig vom Zeichensatz eine
Sprachdatei. Für Deutsch ist es üblicherweise \cmd{de\_DE.UTF8}
(UTF-8-Zeichensatz) oder \cmd{de\_DE.ISO88591} (nationaler Zeichensatz).
Manchmal ist auf Servern nur das ISO-Locale installiert, und deshalb wird
der Monat "`März"' mit einem falschen Sonderzeichen dargestellt. Abhilfe
schafft hier die Installation der passenden UTF8-Locale-Datei.

Die Installation der Locales kann nur vom Serverbetreiber vorgenommen
werden, im Problemfall müssen Sie sich also an diesen wenden. Die
Locales, die Serendipity anwendet, finden Sie im Übrigen in der Datei
\cmd{lang/""serendipity\_lang\_de.inc.php} bzw.
\cmd{lang/UTF-8/serendipity\_lang\_""de.inc.php} in einer Zeile wie:

\begin{ospcode}
@define('DATE\_LOCALES', 'de\_DE.ISO-8859-1, de\_DE.ISO8859-1, german,
de\_DE, de\_DE@euro, de');
\end{ospcode}

\section{Schnelle Installation}
\label{Schnelle Installation}%

\begin{osplist}
\item Serendipity-Release-Paket von der Homepage herunterladen und via
    FTP auf den Webserver hochladen.

\item Zugriffsrechte überprüfen: Stammverzeichnis und Unterverzeichnis
    \cmd{ar\-chives, templates\_c, uploads} müssen Schreibrechte für PHP
    besitzen, alle anderen Dateien und Verzeichnisse Leserechte.

\item Eine leere Datenbank erstellen, falls noch nicht vorhanden.
    Sicherstellen, dass der Datenbankbenutzer die Rechte \cmd{CREATE},
    \cmd{INSERT}, \cmd{UPDATE}, \cmd{DELETE}, \cmd{ALTER}, \cmd{INDEX},
    \cmd{SELECT}
    besitzt.

\item Via HTTP die Installationsroutine aufrufen:
    \cmd{http://www.example.com/""serendipity/}

\item Der Installationsroutine folgen und Anfangskonfiguration vornehmen.
\end{osplist}
\index{Einrichtung|)}%

\ospvacat
%%% Local Variables:
%%% mode: latex
%%% TeX-master: "serendipity"
%%% End:
Something went wrong with that request. Please try again.