Apachenframework

Von in javascript

Heu­te habe ich mir die Instal­la­ti­on von Ubun­tu 9.10 ali­as “Kin­ky Kang­a­roo” “Kar­mic Koa­la” ange­tan. Beim Auf­set­zen des Apache-​Servers bin ich über etwas sehr Inter­es­san­tes gestol­pert, über das ich ger­ne berich­ten möch­te.

Ich habe es mir dies­mal sehr ein­fach gemacht und mich des Installation-​Systems Task­sel bedient. Dabei wird mit dem Befehl

sudo tasksel install lamp-server

ein Susi-​Sorglos-​Paket mit Ser­ver­ver­si­on 2.2.12 und MyS­QL 5.1installiert. Anschlie­ßend noch schnell die vhosts ein­ge­rich­tet und schon stand der Ser­ver.

Als ich aller­dings das ers­te Pro­jekt im Brow­ser öff­ne­te war mein Erstau­nen groß. Offen­sicht­lich wur­de kein ein­zi­ges refe­ren­zier­tes Javascript-​File auf­ge­ru­fen; wenn ich den Pfad zu den Datei­en manu­ell in die Adress­zei­le ein­gab, ant­wor­te­te der Ser­ver mit einem “404er”.

Zuerst dach­te ich an fal­sche Datei­rech­te und der­glei­chen, aber die übli­chen “Ver­däch­ti­gen” ver­ur­sach­ten nicht mein Pro­blem. Nament­lich han­del­te es sich um alle Datei­en im Ver­zeich­nis /​javascript. Wenn ich das Ver­zeich­nis umbe­nann­te, konn­te ich des­sen Inhalt sehr wohl im Brow­ser über die manu­el­le Pfad­an­ga­be auf­ru­fen. Sehr mys­te­ri­ös.

Erst ein Durch­su­chen der Ser­ver­kon­fi­gu­ra­ti­on brach­te mich auf eine Spur. Unter /etc/apache2/conf.d/ fand sich ein omi­nö­ser Sym­link:

javascript-common.conf -› /etc/javascript-common/javascript-common.conf

Der Inhalt der ver­link­ten Datei gab schließ­lich sehr schnell Auf­schluss über das Pro­blem:

Alias /javascript /usr/share/javascript/

Zu dumm, ich hat­te mei­nem Javascript-​Ordner einen Namen ver­ge­ben, der in der Ser­ver­kon­fi­gu­ra­ti­on wei­ter­ge­lei­tet wur­de (das hat man davon, wenn man bezeich­nen­de Namen ver­gibt). Es war klar, dass unter ange­ge­be­ner Adres­se die im Projekt-​Code refe­ren­zier­ten Files nicht zu fin­den waren. Was befin­det sich aber dann im ange­ge­be­nen Ver­zeich­nis?

4 drwxr-xr-x 2 root root 4096 2009-10-28 21:58 jquery
4 drwxr-xr-x 2 root root 4096 2009-11-02 22:12 mootools

Na das ist aber lus­tig. Ver­ste­cken sich da die bei­den Javascript-​Frameworks jQue­ry (in der aktu­el­len Ver­si­on) und Moo­tools (nicht mehr aktu­ell). (War­um eigent­lich nicht auch Pro­to­ty­pe?).

Ich ver­zich­te auf einen unqua­li­fi­zier­ten Kom­men­tar über die Sinn­haf­tig­keit die­ser Imple­men­tie­rung. Tat­sa­che ist, dass bei Unkennt­nis des Ali­as mit­un­ter nicht wenig Zeit ver­ge­hen kann, bis man die­se Hin­ter­list durch­schaut. Es mag sinn­voll sein, das Frame­work in der Ser­ver­kon­fi­gu­ra­ti­on zu ver­ste­cken, aber des­we­gen gleich einen gan­zen Ord­ner “unbrauch­bar” zu machen? Außer­dem müss­ten dann (ohne wei­te­re Ände­run­gen) alle Pro­jek­te die glei­che Ver­si­on des Frame­works ver­wen­den, und das kann gera­de bei jQue­ry pro­ble­ma­tisch sein.

Nun ja, wenn wie­der ein­mal jemand in die­se Fal­le tappt, fin­det er viel­leicht hier die Lösung. Zieht man sich für jedes Pro­jekt eine eige­ne Ver­si­on des Javascript-​Frameworks, kann man den Sym­link getrost mit

unlink javascript-common.conf

ent­fer­nen, oder man kom­men­tiert die paar Zei­len Code im genann­ten File ein­fach aus. Alter­na­tiv kann man über die Syn­ap­tic Paket­ver­wal­tung auch ein­fach die Pake­te “libjs-​jquery” und “libjs-​mootools” ent­fer­nen.

Share on Google+Share on RedditTweet about this on TwitterShare on LinkedInShare on FacebookShare on XingEmail this to someone