Hach war das noch schön unter Ubuntu 10.04. Ein apt-get install libapache2-modxslt &&
a2enmod modxslt && /etc/init.d/apache2 restart
und schon konnte man das automatische XML-/XSLT-Parsing aktivieren. Heraus kamen suchmaschinenfreundliche HTML-Antworten, und das vollkommen automatisch.
Aber aus irgendwelchen Gründen (wobei ich da einen Verdacht habe^^) hat Ubuntu/Debian(?) das Paket rausgeschmissen:
sudo apt-get install libapache2-modxslt Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut. Statusinformationen werden eingelesen.... Fertig E: Paket libapache2-modxslt kann nicht gefunden werden.
Also heißt das, selber kompilieren (oder für die Bequemen, siehe Punkt 4). Leider gab es trotz Anleitung des Autors noch ein kleines Problem zu umschiffen. Aber der Reihe nach.
1. Quellen runterladen
Und hier umschiffen wir gleich das Problem, welches bei mir auftrat. Wir laden nicht wie in der Anleitung angegeben die aktuelle Release-Version (tag) 1.4.3., sondern den letzten Commit runter. Der beinhaltet nämlich einen wichtigen Fix für das Paket libxml2 mit Versionsnummern >= 2.9.0.
Download Sourcecode mod-xslt2-1.4.3 inkl. libxml2 v2.9-Fix
2. System fürs Kompilieren vorbereiten
Hier eine Empfehlung generell: Erstellt fürs Kompilieren eine extra VM (virtuelle Maschine) und installiert da Debian/Ubuntu rein. Ich nehm dann i.d.R. die Version, unter der das Paket nachher später auch laufen soll – in meinem Fall also Ubuntu 14.04 Server. Das eigentliche Einrichten und Installieren des apache2-Webservers erspar ich mir hier. Hier nur die Pakete, die fürs Kompilieren von mod-xslt notwendig sind:
sudo apt-get install devscripts equivs libpcre3-dev autotools-dev libxslt1-dev libxml2-dev libapr1-dev libgcrypt11-dev apache2-prefork-dev
Dann das runtergeladene Paket mod-xslt-master.zip auf Euer Zielsystem kopieren (oder mit wget direkt von dort runterladen) und entpacken.
wget https://github.com/ccontavalli/mod-xslt/archive/master.zip unzip mod-xslt-master.zip
3. mod-xslt als Debianpaket kompilieren
Erstellen und Installieren der Build-Abhängigkeiten:
sudo mk-build-deps -i ./mod-xslt-master/debian/control
Debian-Pakete erstellen:
cd mod-xslt-master debuild -d
Das „-d“ musste ich nehmen, da er den neuen Apache 2.4 wohl nicht richtig erkennt und man damit einen sonst auftretenden Fehler ignoriert.
Wenn der Build-Prozess abgeschlossen ist, sollten sich im Verzeichnis einige .deb-Pakete befinden.
4. Für die Bequemen
Wer den ganzen Spaß mit der VM erstellen, Ubuntu mit Apache installieren, Quellcode kompilieren und Debianpakete erstellen nicht machen will, für den hab ich hier meine kompilierten Debianpakete für Ubuntu 14.04 (ungetestet auf anderen Ubuntu/Debian-Versionen):
5. mod-xslt auf Zielsystem installieren
auf dem Zielsystem libxslt1.1 installieren:
sudo apt-get install libxslt1.1
Die Debian-Pakete aufs Zielsystem kopieren und mit
sudo dpkg -i *.deb
installieren.
Die Bequemen müssen vorher noch mein Archiv auspacken:
tar xzfv mod-xslt2_xml2.9-fixed.tgz
6. mod-xslt und XML/XSLT-Parsing aktivieren
mod-xslt im Apache2 aktivieren:
sudo a2enmod modxslt sudo service apache2 restart
im entsprechenden vHost des Apache2 folgendes eintragen, um das Filtern von .xml-Dateien durch mod-xslt zu aktivieren:
<Directory /var/www/httpdocs> AddOutputFilter mod-xslt .xml </Directory>
und Apache-Configs neu laden:
sudo service apache2 reload
Nun sollten Aufrufe von .xml-Dateien zusammen mit den zugehörigen xsl-Stylesheets automatisch zu Server-Antworten im HTML-Format führen. Für weitere Infos verweise ich hier auf die Wiki von mod-xslt.
Danke schön für diese Howto!
dpkg: dependency problems prevent configuration of libapache2-modxslt:
libapache2-modxslt depends on libmodxslt1; however:
Package libmodxslt1 is not installed.
Aber
E: Package ‚libmodxslt1‘ has no installation candidat
sudo apt-get install libxslt1.1 <- gemacht?