Installation Konfiguration XAMPP, Apache, Django, Python?

Probleme bei der Installation?
Antworten
OldShurehand
User
Beiträge: 3
Registriert: Montag 6. Oktober 2014, 11:01

Hallo liebe Forengemeinde,

ich bin etwas in die Jahre gekommen aber NOCH nicht tot!

Ich wollte ein kleines Projekt starten, um mich mit Webtechnologien auseinanderzusetzen.
Nach längerem Recherchieren PHP oder Python dachte ich, dass Python die bessere
Sprache ist. Nun bin ich mir nicht so sicher, ob meine Entscheidung die Richtige war.
Nach vielen investierten Stunden habe ich XAMPP,Apache,Django,Python nicht zum Laufen gebracht.
Trotz Tutorials und Beschreibungen aus dem I-Net. Sicher sind auch meine sehr bescheidenen
Englischkenntnisse mit für den Mißerfolg verantwortlich gewesen. Bevor ich aber völlig aufgebe und
es vielleicht dann doch mit PHP versuche, wollte ich hier in diesem Forum noch einen letzten Versuch
wagen, ob man es doch nicht zum Laufen bringen kann, und die Python-Gemeinde erweitern. :D

Was ist das Ziel:

XAMPP; Apache; MySQL; Django; Python:

Ich möchte auf meinem Windows-Rechner ein Webserver (Apache) einrichten und darauf soll dann ein Web-Python-Programm laufen, welches ich von einem 2ten Rechner über einen Browser aufrufen kann.
Die Seite soll mit Daten aus MySQL gefüttert und als HTML-Seite auf den Browser angezeigt werden.
...Wenn das System jemals zum Laufen gebracht werden sollte.

System: Window7 64bit


Was bisher geschah:
- Zuerst Python 3.4 installiert.

Ich habe XAMPP Control Panel v3.2.1 installiert. Wobei ich nicht weiß, welche Apache-Version hier mitinstalliert wird (ist das irgendwo ersichtlich?). Danach sollte man (wenn ich’s recht verstanden habe) die „mod_wsgi.so“-Datei in das Verzeichnis „modules“ kopieren. Soweit ich verstanden hatte ist die mod_wsgi.so von der installierten Apache-Version abhängig. Da ich diese nicht kannte habe ich sämtlich zur Verfügung stehende Versionen ausprobiert, die hier zu finden waren:

http://www.lfd.uci.edu/~gohlke/pythonlibs/ansi47vi/

Nachdem alle Dateien ausprobiert wurden, hat Apache endlich folgende Datei akzeptiert (ansonsten hat er mir immer Fehlermeldungen gebracht):

mod_wsgi-3.5.ap24.win32-py3.4.zip

Warum findet man keine Dokumentation dazu? Wie auch immer,… Danach habe ich die httpd.config aus: c:/PROGRAMMIERUNG/ xampp /apache/conf/ um folgende Zeile erweitert:

LoadModule wsgi_module modules/mod_wsgi.so

Das war so weit Ok und der Indianer ließ sich wieder starten. Dann fand ich noch den Hinweis, dass folgendes hinzugefügt werden muss:

Alias /media/ "c:/programmierung/xampp/htdocs/mysite/media"

<Directory c:/programming/xampp/htdocs/mysite>
#Order deny, allow
Allow from all
</Directory>

WSGIScriptAlias / "c:/ programmierung /xampp/htdocs/mysite/mod.wsgi"

Wobei ich gestehen muss, dass ich nicht weiß, welche Bedeutung diesem Abschnitt zukommt und was genau als Pfadangabe hier angegeben werden soll/muss. Ich habe diesen Teil nicht verstanden.
Die Zeile "Order deny, allow" musste ich auskommentieren, da es sonst immer den Fehler beim Versuch Apache zu starten bringt:

11:25:42 [Apache] This may be due to a blocked port, missing dependencies,
11:25:42 [Apache] improper privileges, a crash, or a shutdown by another method.
11:25:42 [Apache] Press the Logs button to view error logs and check
11:25:42 [Apache] the Windows Event Viewer for more clues
11:25:42 [Apache] If you need more help, copy and post this
11:25:42 [Apache] entire log window on the forums

Nun bin ich mit meinem Latein am Ende. Wer kann hier weiterhelfen?
Ich weiß nicht, ob ich alles richtig gemacht habe. Muss noch vorher ein Dienst
gestartet werden oder ähnliches?

Achja, Django habe ich im Verzeichnis:

C:\PROGRAMMIERUNG\Python34\Lib\site-packages\django

in der Version 1.7 liegen.


Vielen Dank an alle Mithelfenden

- OldShurehand

PS:
Was vielleicht noch wichtig wäre die Umgebungsvariablen, die
ich angelget habe:

C:\PROGRAMMIERUNG\Python34;
C:\PROGRAMMIERUNG\Python34\python.exe;
C:\PROGRAMMIERUNG\Python34\Scripts\;
C:\PROGRAMMIERUNG\Python34\Lib\site-packages\django\bin;
Zuletzt geändert von OldShurehand am Montag 6. Oktober 2014, 14:08, insgesamt 1-mal geändert.
OldShurehand
User
Beiträge: 3
Registriert: Montag 6. Oktober 2014, 11:01

doppelt :roll:
BlackJack

@OldShurehand: Im Pfad für `WSGIScriptAlias` sind Leerzeichen enthalten die da wohl nicht hinein gehören.

Die Version bekommt man unter anderem heraus in dem man das Apache-Programm mit der Option ``-v`` aufruft:

Code: Alles auswählen

$ apache2 -v
Server version: Apache/2.2.22 (Debian)
Server built:   Jul 22 2014 14:37:02
Für Windows-Benutzer eventuell einfacher: eine Webseite auf dem Server aufrufen die es nicht gibt. Die Apache-Version steht dann normalerweise unten auf der Fehlerseite die dann ausgeliefert wird.

Dokumentation wozu? Unter der angegeben URL findet man für Windows kompilierte Python-Module weil sich da jemand die Mühe macht die für Windows zu übersetzen und ins Netz zu stellen. Wenn man etwas über die Module wissen möchte muss man auf der jeweiligen Homepage nachsehen. Und im Fall von Apache-Modulen auch beim Apache-Projekt.

Zur Apache-Konfiguration: Der ``Alias`` sagt das der Server alle URLs deren Pfad mit ``/media/`` beginnt das angegebene Verzeichnis als Basis nehmen soll. Wenn Du also in ``c:/programmierung/xampp/htdocs/mysite/media/`` beispielsweise eine Bilddatei ``cute_kitten.jpg`` ablegst, dann solltest Du die im Browser über ``http://localhost/media/cute_kitten.jpg`` anzeigen lassen können.

``WSGIScriptAlias`` ist so ähnlich nur dass man damit die den Pfad für eine WSGI-Webanwendung setzt. In diesem Fall auf ``/`` als kann man die Anwendung über ``http://localhost/`` ansprechen. Alles was im Pfad danach kommt (ausgenommen Aliase die man vorher angelegt hat) wird an die Webanwendung übergeben und die entscheidet dann was daraufhin ausgeliefert wird. Die ``mod.wsgi``-Datei muss dabei das enthalten was eine WSGI-Datei so enthalten sollte. Ich vermute mal ganz stark da gibt es in der Django-Dokumentation ein Beispiel.

Bei den Umgebungsvariablen handelt es sich wohl um *eine* nehme ich mal an (``PATH``) und da sind nicht wirklich Zeilenumbrüche in dem Wert. Der ``…/python.exe``-Pfad gehört da nicht hinein.
OldShurehand
User
Beiträge: 3
Registriert: Montag 6. Oktober 2014, 11:01

Hallo BlackJack,

danke für Deine Rückmeldung, das ist sehr nett von Dir.
Also ich schreibe mal unter Deine Hinweise meine Kommentaren darunter...
BlackJack hat geschrieben:@OldShurehand: Im Pfad für `WSGIScriptAlias` sind Leerzeichen enthalten die da wohl nicht hinein gehören.

Die Version bekommt man unter anderem heraus in dem man das Apache-Programm mit der Option ``-v`` aufruft:

Code: Alles auswählen

$ apache2 -v
Server version: Apache/2.2.22 (Debian)
Server built:   Jul 22 2014 14:37:02
Für Windows-Benutzer eventuell einfacher: eine Webseite auf dem Server aufrufen die es nicht gibt. Die Apache-Version steht dann normalerweise unten auf der Fehlerseite die dann ausgeliefert wird.
Entschuldigung, die Leerzeichen sind nur falsch gepostet worden aber in Real nicht
vorhanden.
Ja, ich habe eine Seite angelegt, um zu sehen ob diese aufrufbar ist:

C:\PROGRAMMIERUNG\xampp\htdocs\mysite\media\Test.html

In Browser ==> http://localhost/media/Test.html

Wollte sehen, ob eine simple Html-Seite über Apache aufgerufen werden kann.
Ging nicht, dafür kam aber immerhin die Fehlermeldung aus der die Apache-Version ersichtlich
war:



Objekt nicht gefunden

Error 404


localhost
Apache/2.4.10 (Win32) OpenSSL/1.0.1i mod_wsgi/3.5 Python/3.4.1 PHP/5.5.15


Jetzt sehe ich, dass es 2.4.10 ist :D

Nun ja ein kleiner Erfolg immerhin... Dank Deiner Hilfe!

das Wort localhost ist eine Url, wenn man darauf klickt erhält man ein "Hello World!" scheint
Plain-Text, ohne HTML-Codierung zu sein.
Dokumentation wozu? Unter der angegeben URL findet man für Windows kompilierte Python-Module weil sich da jemand die Mühe macht die für Windows zu übersetzen und ins Netz zu stellen. Wenn man etwas über die Module wissen möchte muss man auf der jeweiligen Homepage nachsehen. Und im Fall von Apache-Modulen auch beim Apache-Projekt.
Damit ein solcher Schimmelkäse wie ich auch zurecht kommt. :?
Zur Apache-Konfiguration: Der ``Alias`` sagt das der Server alle URLs deren Pfad mit ``/media/`` beginnt das angegebene Verzeichnis als Basis nehmen soll. Wenn Du also in ``c:/programmierung/xampp/htdocs/mysite/media/`` beispielsweise eine Bilddatei ``cute_kitten.jpg`` ablegst, dann solltest Du die im Browser über ``http://localhost/media/cute_kitten.jpg`` anzeigen lassen können.
Das ist super erklärt, dass hab sogar ich nun verstanden!!
Habe es mit einem Bild auch versucht (ist aber egal denke ich) trotzdem behauptet der
Browser, dass er das Objekt nicht gefunden hat. :K
``WSGIScriptAlias`` ist so ähnlich nur dass man damit die den Pfad für eine WSGI-Webanwendung setzt. In diesem Fall auf ``/`` als kann man die Anwendung über ``http://localhost/`` ansprechen. Alles was im Pfad danach kommt (ausgenommen Aliase die man vorher angelegt hat) wird an die Webanwendung übergeben und die entscheidet dann was daraufhin ausgeliefert wird. Die ``mod.wsgi``-Datei muss dabei das enthalten was eine WSGI-Datei so enthalten sollte. Ich vermute mal ganz stark da gibt es in der Django-Dokumentation ein Beispiel.
Werde versuchen mich da noch zu vertiefen. Hoffentlich klappts...
Vielleicht noch ne blöde Frage.. Braucht man Django überhaupt oder kann man
darauf verzichten? Wie ich gesehen habe, bietet es nur eine zusätzliche Admin
Funktion für Gruppen und Userverwaltung (was ich nicht zwingend benötige)
oder bietet es noch mehr?
Bei den Umgebungsvariablen handelt es sich wohl um *eine* nehme ich mal an (``PATH``) und da sind nicht wirklich Zeilenumbrüche in dem Wert. Der ``…/python.exe``-Pfad gehört da nicht hinein.
Das ist korrekt, es geht um "PATH". Die Zeilenumbrüche habe ich hier nur im Posting eingefügt,
damit es besser lesbar wird. In Wirklichkeit sind keine Ubrüche vorhanden.

".../python.exe" kann ich entfernen. Aber ich denke, der dient dazu, dass man in der Konsole
einfach python eintippen kann und dieses gestartet wird, ohne vorher in das Python/bin Verzeichnis
wechseln zu müssen (vielleicht irre ich mich da aber auch).

Danke für Deine Bemühungen, die Du Dir gemacht hast! Ein kleinen Schritt
sind wir weiter aber den großen Wurm haben wir noch nicht fangen können.

Ich gebe mir noch 1-2 Tage, um das Ganze zum Laufen zu bringen
und wenn das nix wird, dann sollte ich vielleicht mal was mit PHP versuchen.
Aber grundsätzlich eine banale html-Seite aufzurufen hat ja noch nix mit
Python zu tun und hier hakt es ja schon.

WEITERE IDEEN UND VORSCHLÄGE ZUR PROBLEMLÖSUNG SIND IMMER WILLKOMMEN!

Bis bald!!!

OldShurehand
Benutzeravatar
/me
User
Beiträge: 3556
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

OldShurehand hat geschrieben:".../python.exe" kann ich entfernen. Aber ich denke, der dient dazu, dass man in der Konsole
einfach python eintippen kann und dieses gestartet wird, ohne vorher in das Python/bin Verzeichnis
wechseln zu müssen (vielleicht irre ich mich da aber auch).
Du irrst dich. In die Pfadangabe gehören nur die Pfade zu den ausführbaren Dateien, nicht aber eine Referenz auf die Datei selber.
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

btw. ich würde Apache und MySQL erstmal hinten liegen lassen und mit dem Django Entwicklungsserver spielen. Funktioniert direkt und man kann das Tutorial durcharbeiten. Außerdem ist es viel angenehmer, beim Programmieren, damit zu testen.

Wenn es das richtige ist, kann man immer noch eine fertiges Projekt mit Apache laufen lassen.

Außerdem würde ich ein Apache setup niemals unter Windows probieren :shock:
Sicherlich geht das, aber wozu, wenn 90% aller Websever im Netz mit Linux laufen. Oder willst du später ernsthaft einen Windows Server mieten?

Also wenn, dann eine VM mit Linux und dort loslegen. Ich nutzte dazu LinuxMint in VirtualBox.

Ansonsten, vielleicht mal meine Anleitung auf Uberspace probieren: http://www.jensdiemer.de/de/Blog/2014/0 ... tallieren/

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
/me
User
Beiträge: 3556
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

jens hat geschrieben:Außerdem würde ich ein Apache setup niemals unter Windows probieren :shock:
Na ja, ich habe das hier auch am Laufen, aber wirklich schön ist es nicht. Vor allem kann mod_wsgi keinen Daemon-Mode.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

jens hat geschrieben:btw. ich würde Apache und MySQL erstmal hinten liegen lassen und mit dem Django Entwicklungsserver spielen. Funktioniert direkt und man kann das Tutorial durcharbeiten. Außerdem ist es viel angenehmer, beim Programmieren, damit zu testen.
Da stimme ich völlig zu. XAMPP ist meiner meinung nach ein Relikt von PHP-Zeiten als man zum entwickeln unbedingt einen Apache-Server gebraucht hat, weil man mit ``mod_php`` gearbeitet hat. Aber moderne Frameworks haben zum Entwickeln eigentlich immer ihren Webserver dabei.

Ähnliches gilt auch für MySQL, das braucht man zum entwickeln ebensowenig. Da kann man genausogut auch SQLite nehmen, damit kostet das Aufsetzen der Datenbank keine Zeit mehr und später kann man immer noch auf eine ordentliche Datenbank, also PostgreSQL, migrieren wenn SQLite nicht mehr reichen sollte.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten