PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Apache Server



Crash-Override
21.07.2004, 09:47
Ok, ich wollt so ne Art Home Server Einrichten und hab mir Apache runtergeladen und fachgemäß installiert. Aber was muss ich noch tun?

Ich hab Windows XP auf dem Rechner und seit der Installation unten neben der Uhr Apache-Monitoring. Da steht der Server ist online. Aber ich kapier nicht wie man
a) Was hochläd
b) Erweiterungen like PHP installiert
c) hochgeladene Sachen anzeigt...

Bitte helft mir. Hab so was noch nie gemacht.

Chocwise
21.07.2004, 12:11
Original geschrieben von Crash-Override
Ok, ich wollt so ne Art Home Server Einrichten und hab mir Apache runtergeladen und fachgemäß installiert. Aber was muss ich noch tun?

Ich hab Windows XP auf dem Rechner und seit der Installation unten neben der Uhr Apache-Monitoring. Da steht der Server ist online. Aber ich kapier nicht wie man
a) Was hochläd
b) Erweiterungen like PHP installiert
c) hochgeladene Sachen anzeigt...

Bitte helft mir. Hab so was noch nie gemacht.
Hochgeladene Sachen anzeigen? O_o
Was hochladen? °_O
Warum hab ich bloß das Gefühl das du absolut keine Ahnung hast, was du dir da installiert hast? :D

Nuja, jeder fängt mal klein an. ;)

zu a) Du brauchst nichts hochladen. Du brauchst nur Dateien die über deinen Apacheserver erreichbar sein sollen, in den DocumentRoot werfen. Wo sich dein DocumentRoot befindet, musst du in der entspr. Direktive aus der Apachekonfigurationsdatei (httpd.conf) entnehmen.

zu b)
http://www.dynamic-webpages.de/php/install.windows.php
Have Phun.

zu c) Kukuk, ich bin dein Apache =:3 (http://localhost/)

Crash-Override
21.07.2004, 17:39
Hey, das klappt Prima!
Mit hochladen meint ich Datein, Webseiten etc. Hab's aber schon geschaft...
Aber jetzt hab ich eine neue Frage.
Wie sehen andere Leute dann die "hochgeladenen" Dateien?
Ich dachte erst http://MEINE_IP, aber dann komm ich (nach Passworteingabe) zu den Konfigurations eintellungen meines Routers....

edit:
PHP-Installation

If you would like to use PHP as a module in Apache 2.0, be sure to move php4ts.dll for PHP 4, or php5ts.dll for PHP 5, to winnt/system32 (for Windows NT/2000) or windows/system32 (for Windows XP), overwriting any older file. You need to insert these two lines to your Apache httpd.conf configuration file to set up the PHP-Module for Apache 2.0:

Wo finde ich die httpd.conf Datei? Ich find sie net und die Windoof Suche auch net.... mist

edit2:
Schon gefunden die Datei aber wenn ich in sie

LoadModule php4_module "c:/php/sapi/php4apache2.dll"
AddType application/x-httpd-php .php

schreib will Apache net mehr starten...
Also guck ich ins PHP Verzeichniss und da gibt es nur die
php4ts.dll
Datei im Hauptverzeichniss (C:\PHP)...
und keinen sapi - Ordner....
Wenn ich aber:

LoadModule php4_module "c:/php/php4ts.dll"
AddType application/x-httpd-php .php

reinschreibe geht das genausowenig....

mitaki
21.07.2004, 19:31
LoadModule php4_module "c:/php/sapi/php4apache2.dll"
AddType application/x-httpd-php .phpSuch in der httpd.conf die LoadModule Liste und füge die erste Zeile darunter ein.
Dann suchst du nach Zeilen mit >AddType<, darunter fügst du die zweite Zeile ein.


und keinen sapi - Ordner....Bei PHP4? Entweder hast du den Installer (pöse) verwendet oder ein kaputtes ZIP Archiv.
PHP5, von dem ich momentan noch abrate, hat die php5apache2.dll allerdings tatsächlich im PHP Hauptverzeichnis (5.0.0).

Crash-Override
21.07.2004, 19:42
Ja hab den Installer verwendet.
Aber da es jetzt immer noch net geht...

-PHP runterschmeißen
-neu downloaden
-Manuel einrichten

Chocwise
21.07.2004, 23:43
Original geschrieben von Crash-Override
Hey, das klappt Prima!
Mit hochladen meint ich Datein, Webseiten etc. Hab's aber schon geschaft...
Aber jetzt hab ich eine neue Frage.
Wie sehen andere Leute dann die "hochgeladenen" Dateien?
Ich dachte erst http://MEINE_IP, aber dann komm ich (nach Passworteingabe) zu den Konfigurations eintellungen meines Routers....

Du musst den Port 80 auf die LAN-IP deines Rechners forwarden.
Das geht bei meinem SMC-Router z.B. über:
"NAT"->"Virtual Server"-> Private IP: IP deines Rechners im lokalen Netzwerk | Service Port: 80 | Type: TCP | Enabled: [X]

Ahja, schalt die Remoteadministration deines Routers am besten ab, wo du schon dabei bist. ;)
Es sei denn du denkst dir was dabei sie aktiviert zu lassen, aber aus welchem Grund sollte man diese Sicherheitslücke, dass irgendjemand aus dem Internet sich per Bruteforce an der Routeradministration zu schaffen macht, offen lassen wo das doch so leicht zu fixen ist. ;)

Crash-Override
22.07.2004, 00:33
Juhuu!!!
Es funzt.... (Apache 2.0 + PHP 4.3.1)!!!

http://www.multimediaxis.de/images/smilies/old/sm_12.gif

_____________________________________
Ok, das mit dem Router hab ich noch net hinbekommen, aber notfalls benutz ich's halt als Testumgebung für meien PHP-Dateien...

Bei mir gibt es da auch NAT aber dann kommt ne Auswahl...

Network Addrsss Translation

O Ohne
O Nur SUA //Markiert [Details Bearbeiten]
O Vollständig [Details Bearbeiten]

Wenn ich auf Nur SUA [Details bearbeiten klicke]
kommt:

http://www.ystart.net/upload/20040721/1090427549.jpg

Bitte sagt mir was ich tun soll kenn mich mit dem Router net aus...
(ist übrigens dieser Zyxel Router von AOL...)

Chocwise
22.07.2004, 02:17
Trag unter Nummer 5 ein:
Erste Port Nr.: 80
Letzte Port Nr.: 80
IP Adresse: 192.168.1.33

Ich geh dabei davon aus das dein Rechner die Netzwerk-IP 192.168.1.33 hat.

Grundsätzlich wäre es von der Sicherheit her am besten wenn dein Router keine unangeforderten Daten an deinen Rechner weitergibt, allerdings funktionieren so nun mal keine Server hinter einem Router, denn wenn jemand deinen Server besuchen will, muss er natürlich eine von dir nicht angeforderte Anfrage an deinen Rechner richten können. Wenn dein Router allerdings nicht weiß an welchen angeschlossenen Rechner er nun diese Anfrage leiten soll, verschluckt er sie.

Um das zu umgehen, gibt es NAT. Damit kann man Anfragen die sich an bestimmte Ports richten zu einem am Router angeschlossenen Rechner durchschleusen damit er diesen Port bedienen kann.

Nur falls du auch auf einem anderen Rechner einen Webserver laufen lassen willst:
Wenn jetzt allerdings auch auf einem anderen Rechner der am Router angeschlossenen ist, auch ein Webserver laufen soll, kann man natürlich keine an Port 80 gerichtete Anfragen mehr an ihn durchleiten da ja bereits diese Anfragen schon an den Rechner mit der IP 192.168.1.33 weitergegeben werden.
In dem Fall musst du beim Webserver des 2. Rechners den Port an dem er hängt, in der httpd.conf ändern und diesen Port auf den 2. Rechner weiterleiten lassen vom Router.


So, hab mal reichlich Informationen hier reingepackt, vielleicht verstehst du nun die Funktionsweise des NAT-Systems besser. ;)

wrtlprnft
22.07.2004, 02:48
Wenn du grad dabei bist, könntest du mir dann vielleicht bei einem ähnlichen Problem von mir helfen?

Bei meinem Router kommt, wenn ich auf "PORTS" klicke, folgendes:
http://wrtlprnft.de/Bildschirmphoto7.png
192.168.0.2 ist die lokale IP vom Serverrechner.
Ich hab auch schon versucht, die Checkbox unten zu aktivieren, allerdings ohne Ergebnis...
Gibts da noch ne Einstellung, die ich aktivieren muss? In meinem Menu gibts folgende Punkte:
SYSTEM
LAN
PORTS
STATIC ROUTE
CONTENT FILTER
unter Static Route kommt dann sowas (http://wrtlprnft.de/Bildschirmphoto8.png). Bei Klick auf "Edit" sowas (http://wrtlprnft.de/Bildschirmphoto9.png).
Unter "LAN" ist dann noch sowas (http://wrtlprnft.de/Bildschirmphoto10.png)...

Ich hoffe, dass das mein Router überhaupt kann...

Chocwise
22.07.2004, 03:15
Was ist nun genau dein Problem?
Das der Server nicht erreichbar ist oder das er nicht anpingbar ist?

Ersteres glaub ich nicht, denn ich erreiche ihn wenn ich deine im Forum geloggte IP verfolge.

Zum Pingproblem weiß ich leider nichts. Wenn du per Script allerdings checken willst ob dein Server läuft, kannst du das auch ohne Ping regeln.
Schau dir diesen Codeschnipsel an und mach was draus. ;)


<?php
$host = "servername.dyndns.org";
$port = "80";

$socket = fsockopen($host, $port, &$errno, &$errstr, 1);

if(!$socket){
echo"offline";
}else{
echo"online";
}
?>

wrtlprnft
22.07.2004, 03:24
Wie Bitte? Mein Server ist zu erreichen? Ich krieg den über meine IP nicht... Liegt das vielleicht daran, dass ich von einem anderen Zugang zugreifen müsste?

Das mit dem Ping ist mir klar, trotzdem danke für den Tipp:D

Jetzt ist mein Server erstmal offline, der muss noch geschützt werden (Das Zeug, das nicht jeder sehen soll)...

Chocwise
22.07.2004, 03:56
Original geschrieben von wrtlprnft
...Jetzt ist mein Server erstmal offline, der muss noch geschützt werden (Das Zeug, das nicht jeder sehen soll)...
Warte etwas, ich poste gleich (wenn ich etwas mehr Zeit habe) eine Lösung die mit vHosts arbeitet. ;)

Wegen dem Problem das du deinen eigenen Server nicht erreichst, kann ich leider nichts sagen, könnte aber sein das es mit der vHost-Lösung mit gefixt wird. ;)

UPDATE:
http://forum.rpg-ring.com/forum/showthread.php?s=&threadid=37889
Schau's dir mal an. ;)

wrtlprnft
22.07.2004, 19:26
Hat sich nix getan:(

meine Domain ist jetzt wrtlprnft.ath.cx. Kannst du drauf zugreifen? Bei mir tut sich immer noch nix...
In meiner httpd.con steht jetzt (am Schluss):
<VirtualHost *>
ServerName *
DocumentRoot "/opt/lampp/htdocs/404"
</VirtualHost>
<VirtualHost *>
ServerName wrtlprnft.atx.ch
ServerAlias localhost 192.168.0.2
DocumentRoot "/opt/lampp/htdocs"
</VirtualHost>Subdomains hab ich mir noch keine gemacht.

Unter der Adresse oder meiner IP meldet sich immer mein Router...

mitaki
22.07.2004, 20:03
Nun, ein weit verbreiteter Fehler bei Anfängern und Profis ist das vergessen des Apache neustarts.

Die Seite wrtlprnft.ath.cx ist von mir aus zu erreichen, es erscheint dabei eine Passworteingabeaufforderung für "Privat".

Die Server Signatur passt auch mit der Lampp Version zusammen, die du zu verwenden scheinst.

wrtlprnft
22.07.2004, 20:10
Jetzt ist mein Apache neugestartet (Nochmal).

Eigentlich müsstest du den Text "Das wird einmal ein öffentlicher Bereich" sehen...

mitaki
22.07.2004, 20:23
Ich komme zu dir durch, jedoch nur für eine "Bad Request" Fehlermeldung, hier offenbaren sich bei mir leider Wissenslücken.

Eventuell liegt es aber hiermit zusammen:
ServerName wrtlprnft.atx.chdu hast dich am Ende vertippt, nicht "ch" sondern "cx".

wrtlprnft
22.07.2004, 20:27
Versuchs bitte jetzt nochmal...
Den Tippfehler hatte ich schon ausgebessert, aber ich hab nochmal was versucht.

mitaki
22.07.2004, 20:34
Nein, tut mir leid, noch immer der "Bad Request"-Fehler, damit bin ich dann leider am Ende meiner Kenntnisse.

Chocwise
22.07.2004, 22:17
Original geschrieben von mitaki
Nein, tut mir leid, noch immer der "Bad Request"-Fehler, damit bin ich dann leider am Ende meiner Kenntnisse.
Hier eine Vermutung bei der ich zu 80 % sicher bin das es den Fehler beschreibt:
Dein Apache läuft scheinbar im SSL-Modus.
Das wäre soweit nicht schlimm, man könnte deinen Server zwar nicht per http:// erreichen, allerdings über https:// wenn dein Router bzw. Firewall nicht den SSL-Port blockieren würde.

Du hast nun also 3 Möglichkeiten:
1.: Du schaltest den SSL-Modus in dem dein Apache läuft aus. Frag mich aber nicht wie das geht, ich war nie in der Verlegenheit das tun zu müssen
2.: Du änderst den Port an dem dein Apache im SSL-Modus lauscht, auf 80.
Dazu musst du nach der Direktive "DEF_SSL Listen" in der Apachekonfigurationsdatei suchen und ihren Wert auf 80 ändern (DEF_SSL Listen 80). Vermutlich steht dort derzeit "DEF_SSL Listen 443" oder die Direktive ist nicht gesetzt.
3.: Du leitest den SSL Port von dem ich glaube das es 443 ist in deinem Router auf deinen Rechner, bzw. schaltest diesen Port in deinen IP-Tables frei (benutzt ja Linux. ;)).
In dem Moment dürfte dein Server über die Adresse https://wrtlprnft.ath.cx/ erreichbar sein.

Ich persönlich wäre für Möglichkeit 1, denn dann brauchst du nicht diese unpopulären https://-Adressen benutzen. ;)
Allerdings musst du dafür deine httpd.conf selbst unter die Lupe nehmen und a bisserl per Google recherchieren, ich hab kaum Erfahrung mit SSL. ;)

wrtlprnft
22.07.2004, 22:31
Methode 3: Nope. Unter dem umgeleiteten SSL-Port Passiert nix...
Methode 2: DEF_SSL Listen 80, direkt eingetragen unter Listen 80 (Was schon da stand) gibt beim Neustarten ein
Syntax error on line 218 of /opt/lampp/etc/httpd.conf:
Invalid command 'DEF_SSL', perhaps mis-spelled or defined by
\ a module not included in the server configurationMethode 1: Muss ich mal schau, ob ich das schaffe...

EDIT: /opt/lampp/lampp stopssl:D Bringt aber bei meinem Prob auch nix...

Nochmal meine Konfigurationsänderungen, falls das was bringt:
<VirtualHost *>
ServerName *
DocumentRoot "/opt/lampp/htdocs/404"
</VirtualHost>
<VirtualHost *>
ServerName localhost
ServerAlias 192.168.0.2
DocumentRoot "/opt/lampp/htdocs"
</VirtualHost>
<VirtualHost *>
ServerName wrtlprnft.ath.cx
DocumentRoot "/opt/lampp/htdocs/public"
</VirtualHost>