Apache v1.3.34 Webserver für die FritzBox!

fr@nk-pcn

hi,

Ich hab hier ne Knoppix Live CD v 6.0.1 ohne ADRIANE. Nur verfügt die LiveCD nicht über OpenSSL & ModSSL und wenn doch weiß ich nichts davon. Oder reicht es wenn die Box beide Module hat?
nö, du brauchst schon openssl im knoppix. daraufhin muss ich mich allerdings fast wiederholen (#495):
Code:
su # für super user (sudo ist ubuntu-spezifisch)
apt-get update # quellen updaten
apt-get install openssl # openssl installieren(geht auch mit synaptic;))
ist sehr änlich, weil knoppix auch auf debian aufgebaut ist. ich empfehle jedoch trotzdem ubuntu. desktop und netbook edition haben auf jedem fall eine live-option!
und ich brauch ich noch die zusätzlichen Module für meinen Apachen. Weiß nicht ob OpenSSL [Quelle]bei mit drauf ist, gehe von 99%ig aus nicht.
prüfen mit:
Code:
# ./apache -l
Compiled-in modules:
  http_core.c
  mod_env.c
  mod_log_config.c
  mod_mime.c
  mod_negotiation.c
  mod_status.c
  mod_include.c
  mod_autoindex.c
  mod_dir.c
  mod_cgi.c
  mod_asis.c
  mod_imap.c
  mod_actions.c
  mod_userdir.c
  mod_alias.c
  mod_access.c
  mod_auth.c
  mod_setenvif.c
  mod_ssl.c
mod_ssl.c muss mitdabei sein. wenn nicht der fall, brauchst du diese version, sonnt hast du keine chance

leider ist alles das, was ich hier versuche kurz zu beschreiben, im forum ziemlich verstreut - deswegen bin ich momentan dabei, auf meiner homepage ne zusammenfassende und möglichst vollständige beschreibung zu entwerfen - dies dauert allerdings noch.... falls jemand übrigens helfen will, soll er mich per pm kontaktieren;)

@blackboy

hi,

Wenn ich es richtig sehe, läuft die Schleife endlos, wenn das Laufwerk (besser die 'apache' Datei) nicht gefunden werden.
Wie geht's besser?
richtig! man könnte einen timeout, eine fehlermeldung im webinterface, eine email an den admin oder änliches einbauen. eine weitere erklärung würde meiner meinung nach den rahmen diesen threads sprengen. außerdem ist es denke ich zu viel des guten: im normalfall muss ja das laufwerk nach einer gewissen zeit erreichbar sein. der andere fall tritt wirklich (im normalfall) sehr selten auf.


gruß an alle
 
Wie kann ich den Apache restarte, ohne gleich die ganze FB rebooten zu müssen?

Sorry für die dumme Frage, aber ich komme echt nicht weiter.
Code:
/var/media/ftp/USB2-0-FlashDisk-01/apache/apache restart -f /var/media/ftp/USB2-0-FlashDisk-01/apache/conf/apache.conf

geht schonmal (wie vieles andere) nicht.
Habe wirklich vieles probiert, aber bestenfalls kam noch ein
Code:
[crit] (125)Address already in use: make_sock: could not bind to port 85

Bevor ich hier weiter experimentiere und google, kann mir vielleicht jemand einen Tip geben?
 
Wie kann ich den Apache restarte, ohne gleich die ganze FB rebooten zu müssen?

ist einfacher, als du denkst:

Code:
# killall apache # alle prozesse für apache beenden
# /var/media/ftp/USB2-0-FlashDisk-01/apache/apache -f /var/media/ftp/USB2-0-FlashDisk-01/apache/conf/apache.conf # apache neustarten

gruß
 
SSL/ HTTPS Portfreigabe?

So! Ist schon mal feini dank Radislav. Ubuntu und nen passenden Apache (modssl) hab ich mir gezogen. Die drei Zertifikat- Dateien stehen dank Doranus auch schon. Bisher habe ich den Apache- Port auf 85 und weitergeleitet auf dem Remote- Port 80.

Code:
forwardrules = "udp 0.0.0.0:5060 0.0.0.0:5060", 
               "tcp 0.0.0.0:80 0.0.0.0:85 0 # Apache-Server";

Die AVM- Fernwartung habe ich auf den 5XY gelegt um 443 frei zu haben.

Soll ich nun einfach die ar7.cfg wie folgt ergänzen oder was währe da richtig? Sind UDP und TCP erforderlich oder reicht TCP?

Code:
forwardrules = "udp 0.0.0.0:5060 0.0.0.0:5060", 
               "tcp 0.0.0.0:80 0.0.0.0:85 0 # Apache-Server HTTP",
               "tcp 0.0.0.0:443 0.0.0.0:443 0 # Apache-Server HTTPS";

in der apache.conf hab ich das

Code:
Port 85
BindAddress *

<IfDefine SSL>
Listen 85
Listen 443
</IfDefine>

<VirtualHost _default_:443>
. . .

Also wenn das mal erfolgreich läuft, werd ich mich mal ransetzen und mit Corparation mit Radislav aus den Schnipzeln nen Step by Step- HowTo für die Allgemeinheit verfassen.
 
Zuletzt bearbeitet:
Code:
forwardrules = "udp 0.0.0.0:5060 0.0.0.0:5060", 
               "tcp 0.0.0.0:80 0.0.0.0:85 0 # Apache-Server HTTP",
               "tcp 0.0.0.0:443 0.0.0.0:443 0 # Apache-Server HTTPS";
ganau richtig! was sagt denn er erste test?
Also wenn das mal erfolgreich läuft, werd ich mich mal ransetzen und mit Corparation mit Radislav aus den Schnipzeln nen Step by Step- HowTo für die Allgemeinheit verfassen.
ich freu mich schon auf die hilfe;)
 
erster Test

@ Radislav

ein Test hat noch nicht statt gefunden. Ich vermisse noch PHP in der modssl- Version und habe erstmal das cgi-bin Verzeichniss aus meiner bestehenden Version reinkopiert in der Hoffnung das PHP dann auch funzt. Ich habe noch 2 anstengende Arbeitstage vor mir. Am Wochenende werde ich nen ersten Testlauf machen und schauen wie sich das ganze verhält und dann posten was läuft oder nicht läuft.
 
@ Radislav Ich vermisse noch PHP in der modssl- Version und habe erstmal das cgi-bin Verzeichniss aus meiner bestehenden Version reinkopiert in der Hoffnung das PHP dann auch funzt.
genau richtig! dazu fehlt noch die alte deklaration von php-cgi aus der "alten" apache.conf. so wird es dann 100pro funktionieren;)
 
Apache ModSSL: can't resolve

@Radislav /all

Nun habe ich mir mal die Zeit genommen habe den Apache (modssl) auf meiner 7270 installiert. Drei Zertifikat- Dateien mit Ubuntu erstellt.
Code:
openssl genrsa -out server.key 1024
openssl req -new -key server.key -out server.csr # mit Passwort
openssl req -new -x509 -days 1460 -key server.key -out server.crt # keine Passwortabfrage :confused:

Der Apache ist erfolgreich gestartet mit folgender Ausgabe
Code:
[Fri Jun 26 22:42:18 2009] [notice] Apache/1.3.41 (Unix) mod_ssl/2.8.31 OpenSSL/0.9.8i configured -- resuming normal operations
[Fri Jun 26 22:42:18 2009] [notice] Accept mutex: sysvsem (Default: sysvsem)

Bei Aufruf per https://192.168.178.1:443/ der Website erscheint in der Log- Datei:

Code:
/var/media/ftp/Corsair-VoyagerGT-01/apache/bin/apache: can't resolve symbol '__fpcmp_parts_f'
[Sat Jun 27 03:38:37 2009] [error] mod_ssl: SSL handshake failed: HTTP spoken on HTTPS port; trying to send HTML error page (OpenSSL library error follows)
[Sat Jun 27 03:38:37 2009] [error] OpenSSL: error:1407609C:SSL routines:SSL23_GET_CLIENT_HELLO:http request [Hint: speaking HTTP to HTTPS port!?]

Über den normalen Port 80 ist die Seite ereichbar.

Edit, apache.conf im Anhang, Edit 2: Kernel und Apcheversion..


Code:
Linux version 2.6.19.2 (2173) (gcc version 3.4.6) #2 Wed Feb 18 15:14:11 CET 2009
Server version: Apache/1.3.41 (Unix)
Server built:   Dec 16 2008 14:50:25

-l liefert:
Code:
Compiled-in modules:
  http_core.c
  mod_env.c
  mod_log_config.c
  mod_mime.c
  mod_negotiation.c
  mod_status.c
  mod_include.c
  mod_autoindex.c
  mod_dir.c
  mod_cgi.c
  mod_asis.c
  mod_imap.c
  mod_actions.c
  mod_userdir.c
  mod_alias.c
  mod_access.c
  mod_auth.c
  mod_setenvif.c
  mod_ssl.c
[COLOR="Red"]suexec: disabled; invalid wrapper apache-1.3.41-modssl/bin/suexec[/COLOR]

Über Port 443 erscheint kein HTML- Dokument im Browser.
Hat jemand ne Idee?
 

Anhänge

  • apache_conf.zip
    15.6 KB · Aufrufe: 25
Zuletzt bearbeitet:
@fr@nk-pcn:

gestern habe ich die falschen dns-einstellungen vermutet, heute fehlt mir allerding apache.conf :D

Nachtrag:

habe per diff-tool deine conf mit meiner vergliechen - ist bis auf einige namen, wie z.b. device name genau gleich!
ich habe allerdings eine unstimmigkeit gefunden: laut dem eintrag oben hast du die freigabe auf port 85, in der conf steht aber port 82! fallst kein tippfehler im forum, muss du es einheitlich halten!

hm... wird aber nicht wirklich unser problem lösen.... prüf bitte jetzt, ob wenigstens http://fritz.box:85/ geht und poste die ergebnisse.

ansonsten sieht es auf dem ersten blick nach einer fehlenden bibliothek. poste auch deine kernel version und apache version(unten ist meine ausgabe zum vergleich):
Code:
# cat /proc/version
Linux version 2.6.13.1-ohio (2176) (gcc-Version 3.4.6) #1 Mon Feb 16 13:02:19 CET 2009
# ./apache -v
Server version: Apache/1.3.41 (Unix)
Server built:   Dec 16 2008 14:50:25

Nachtrag 2

hm, ich habe leider keine lösung dafür: kann nur vermuten, dass es bei deiner fritzbox irgendwelche bibliotheken fehlen. somit müssen wir andere um hilfe bitten!

Nachtrag 3

leider habe ich immer noch keine lösung - ich vermute immernoch dass es an der firmware der box liegt... meine kernel-version ist
2.6.13.1-ohio

ich denke, dass freetz helfen könnte. hast du die möglichkeit und zeit es auszuprobieren?

p.s. kann denn wirklich keine anderer versuchen zu helfen?

gruß
Radislav
 
Zuletzt bearbeitet:
hä? hab alles auf denn usb speicher geladen nur irgenwie läuft nix. Kann mir wer helfen?
 
Erstens sind Doppel-Postings nicht erwünscht, wie Du sicher schon in der Forenregeln gelesen hast.

Ansonsten kann ich Dir nur zwei Tips geben.
Entweder: Laß es sein.
Oder: Lesen lernen.
 
mal eine Frage:

intern läuft alles 1a !

sobald ich in die ar7.cfg den Portforward eintrage:

Code:
"tcp 0.0.0.0:80 0.0.0.0:85 0 # Apache!";

danach abspeicher und

ar7cfgchange ausführe, bekommeich immer folgende Fehlermeldung:

Code:
ar7cfgchanged
/etc/init.d/rc.net: line 1: websrv: not found

Jemand eine Idee ? Von extern immer noch nicht auch nach reboot erreichbar !
 
Die ganzen Einträge stehen so drin:

Code:
                        forwardrules = "tcp 0.0.0.0:21 0.0.0.0:21 0",
                                       "tcp 0.0.0.0:443 0.0.0.0:443 0",
                                       "tcp 0.0.0.0:80 0.0.0.0:85 0";

Letzteres hat auch nicht gezogen mit:

Code:
/etc/init.d/rc.net reload

Hab mir Vor ca 5 Stunden (ja, so lange kämpfe ich mit der S** schon !) :mad: eine neue FW gebacken. Hab jetzt eine FRITZ!Box Fon WLAN 7270 Speedport W920V Labor-Version 54.04.98-15220 drauf. VDSL und alles laufen Top. Nur eben nicht dieser bekloppte Port nach außen hin ! In der neuen FW Bekomme ich dogar 2 meldungen nach ar7cfgchanged:

Code:
/etc/init.d/rc.net: line 1: websrv: not found
Sep 24 20:19:49 multid[2010]: DEBUG: upnpdev_start_usb

Das kann doch alles nicht war sein ! Gruml...... :blonk:
 
sehr kommisch...

du kannst noch die komplette box recovern und ar7.cfg nochmal händisch anpassen - villeicht hast du unabsichtlich was an der falschen stelle verändert (z.b. windows-kodierung der ar7.cfg) vergiss dabei nicht deine debug.cfg zu sichern!

gruß
 
steuer php script

hallo ich hab apache auf meiner fritzbox installiert

jetzt hab ich einen steuerscript ins verzeichniss kopiert, doch die befehle zum steuern kommen nicht am pollin net io an

was mach ich falsch

der script:

PHP:
<html>
<head>
<title>Steuerung</title>
</head>
<body bgcolor="#00FF00">
<body>

<?php 

// Server
$host="192.168.10.33";
$port = 50290;
$mypass = "PASSWORT";

if(empty($_POST['pass'])) $pass=""; else $pass=$_POST['pass'];

if($pass==$mypass) { echo "<form action=\"index.php\" method=\"post\">
<input type=\"hidden\" name=\"pass\" value=\"$pass\">
<input type=\"submit\" name=\"abfrage\" value=\"      Statusabfrage       \"><br>
<input type=\"submit\" name=\"digout1an\" value=\"1\">
<input type=\"submit\" name=\"digout1aus\" value=\"aus\"><br>
<input type=\"submit\" name=\"digout2an\" value=\"2\">
<input type=\"submit\" name=\"digout2aus\" value=\"aus\"><br>
<input type=\"submit\" name=\"digout3an\" value=\"3\">
<input type=\"submit\" name=\"digout3aus\" value=\"aus\"><br>
<input type=\"submit\" name=\"digout4an\" value=\"4\">
<input type=\"submit\" name=\"digout4aus\" value=\"aus\"><br>
<input type=\"submit\" name=\"digout5an\" value=\"5\">
<input type=\"submit\" name=\"digout5aus\" value=\"aus\"><br>
<input type=\"submit\" name=\"digout6an\" value=\"6\">
<input type=\"submit\" name=\"digout6aus\" value=\"aus\"><br>
<input type=\"submit\" name=\"digout7an\" value=\"7\">
<input type=\"submit\" name=\"digout7aus\" value=\"aus\"><br>
<input type=\"submit\" name=\"digout8an\" value=\"8\">
<input type=\"submit\" name=\"digout8aus\" value=\"aus\"><br>";

if (!empty($_POST['digout1an']))
{
echo "<br> Digitalout1 setzen ";
$ergebnis = digitaloutsetzen($host, $port,1,1);
echo $ergebnis."<br>" ; 
}
if (!empty($_POST['digout1aus']))
{
echo "<br> Digitalout1 loeschen ";
$ergebnis = digitaloutsetzen($host, $port,1,0);
echo $ergebnis."<br>" ; 
}
if (!empty($_POST['digout2an']))
{
echo "<br> Digitalout2 setzen ";
$ergebnis = digitaloutsetzen($host, $port,2,1);
echo $ergebnis."<br>" ; 
}
if (!empty($_POST['digout2aus']))
{
echo "<br> Digitalout2 setzen ";
$ergebnis = digitaloutsetzen($host, $port,2,0);
echo $ergebnis."<br>" ; 
}
if (!empty($_POST['digout3an']))
{
echo "<br> Digitalout3 setzen ";
$ergebnis = digitaloutsetzen($host, $port,3,1);
echo $ergebnis."<br>" ; 
}
if (!empty($_POST['digout3aus']))
{
echo "<br> Digitalout3 loeschen ";
$ergebnis = digitaloutsetzen($host, $port,3,0);
echo $ergebnis."<br>" ; 
}
if (!empty($_POST['digout4an']))
{
echo "<br> Digitalout4 setzen ";
$ergebnis = digitaloutsetzen($host, $port,4,1);
echo $ergebnis."<br>" ; 
}
if (!empty($_POST['digout4aus']))
{
echo "<br> Digitalout4 loeschen ";
$ergebnis = digitaloutsetzen($host, $port,4,0);
echo $ergebnis."<br>" ; 
}
if (!empty($_POST['digout5an']))
{
echo "<br> Digitalout5 setzen ";
$ergebnis = digitaloutsetzen($host, $port,5,1);
echo $ergebnis."<br>" ; 
}
if (!empty($_POST['digout5aus']))
{
echo "<br> Digitalout5 loeschen ";
$ergebnis = digitaloutsetzen($host, $port,5,0);
echo $ergebnis."<br>" ; 
}
if (!empty($_POST['digout6an']))
{
echo "<br> Digitalout6 setzen ";
$ergebnis = digitaloutsetzen($host, $port,6,1);
echo $ergebnis."<br>" ; 
}
if (!empty($_POST['digout6aus']))
{
echo "<br> Digitalout6 loeschen ";
$ergebnis = digitaloutsetzen($host, $port,6,0);
echo $ergebnis."<br>" ; 
}
if (!empty($_POST['digout7an']))
{
echo "<br> Digitalout7 setzen ";
$ergebnis = digitaloutsetzen($host, $port,7,1);
echo $ergebnis."<br>" ; 
}
if (!empty($_POST['digout7aus']))
{
echo "<br> Digitalout7 loeschen ";
$ergebnis = digitaloutsetzen($host, $port,7,0);
echo $ergebnis."<br>" ; 
}
if (!empty($_POST['digout8an']))
{
echo "<br> Digitalout8 setzen ";
$ergebnis = digitaloutsetzen($host, $port,8,1);
echo $ergebnis."<br>" ; 
}
if (!empty($_POST['digout8aus']))
{
echo "<br> Digitalout8 loeschen ";
$ergebnis = digitaloutsetzen($host, $port,8,0);
echo $ergebnis."<br>" ; 
}

if (!empty($_POST['abfrage']))
{
// Status anzeigen
echo "<br>";
$ergebnis = liesstatusdigout($host, $port);
$ergebnis = zeigstatusdigout($ergebnis);
$ergebnis = zeigstatusdigin ($host, $port);
$ergebnis = zeigstatusanalogin ($host, $port);
?>
Serverantwort: <b><?php echo $ergebnis; ?></b>
<?php
}

 } else echo "<form action=\"index.php\" method=\"post\">
<input type=\"password\" name=\"pass\" value=\"$pass\"><BR>
<br>
<input type=\"submit\" value=\"Login\">";
 ?>
 
</form>
</body>
</html>

<?php

function Befehlanport ($h, $p, $b) {
// create socket
$socket = socket_create(AF_INET, SOCK_STREAM, 0) or die("Socket kann nicht erzeugt werden\n");
// connect to server
$result = socket_connect($socket, $h, $p) or die("Serververbindung nicht möglich\n");
// Befehl senden
$Befehl = $b;
socket_write($socket, $Befehl, strlen($Befehl)) or die("Befehl konnte nicht gesendet werden\n");
// Antwort empfangen
$result = socket_read ($socket, 1024) or die("Keine Antwort empfangen\n");
// close socket
socket_close($socket);
$result = trim($result);
//$result = substr($result, 0, strlen($result)-1);
return $result;
}


function digitaloutsetzen($h, $p,$nr,$wert){
$b = "SETPORT ".$nr.".".$wert." \n\r";
echo $b;
$ergebnis = Befehlanport ($h, $p, $b);
return $ergebnis;
}

function liesstatusdigout ($h, $p){
$ergebnis = Befehlanport($h, $p, "GETSTATUS \n\r");
return $ergebnis;
} 

function liesstatusdigin ($h, $p, $nr){
$ergebnis = Befehlanport ($h, $p, "GETPORT ".$nr." \n\r");
return $ergebnis;
} 

function liesstatusanalogin ($h, $p, $nr){
$ergebnis = Befehlanport ($h, $p, "GETADC ".$nr." \n\r");
return $ergebnis;
} 


function Statusvonportdigout($p, $e){
$ze=substr($e,$p,1);
if ($ze == "1" )
  {
   return "an";
   }
  else
  { 
   return "aus";
  }   
}


function Statusvonportdigin ($e){
if ($e == "1")
  {
   return "an";
  }
else
  {
   return "aus";
  }
}      

function Zeigstatusdigin ($h, $p){
for ($i=1;$i<=4;$i++ ){
 $ergebnis = liesstatusdigin($h, $p, $i);
 $status = statusvonportdigin ($ergebnis);
 if ($status == "aus") 
 {
  echo "<font color ='#ff0000'>";
 }
 else
 {
  echo "<font color = '#00ff00'>";
 }
 echo "Digtaler Eingang ".$i." ".$status."<br>";
 echo "<font color = '#000000'>";
 }
 return "ok";
}

function Zeigstatusdigout($e){
for ($i=1;$i<=8; $i++ ){
$status = statusvonportdigout($i,$e);
if ($status == "aus") 
{
echo "<font color ='#ff0000'>";
}
else
{
echo "<font color = '#00ff00'>";
}
echo "Digitaler Ausgang ".$i." ".$status."<br>";
}
echo "<font color = '#000000'>";
return "ok"; 

} 

function Zeigstatusanalogin ($h, $p){
for ($i=1;$i<=4;$i++ ){
 $ergebnis = liesstatusanalogin($h, $p, $i);
 $ergebnis = 0.0048828*$ergebnis;
 echo "Analoger Eingang ".$i." ".$ergebnis."<br>";
 } 
return "ok";
}


?>
 
@pyro90:

Kann es sein, dass Du Dir da etwas aus dem Netz kopiert hast, von dem Du garnicht weisst, was es macht? Sorry, aber den Eindruck habe ich ...

Was möchtest Du denn überhaupt erreichen?
 
so ist es

mit diesem script möchte ich die 8 Digitalen Ausgänge des Pollin avr net io ansteuern

Wenn ich jetzt einen eingang schalten möchte kommt am pollin net io leider kein befehl an

ich vermute es liegt an der apache oder php ini

hab davon nur leider garkeine ahnug

php versteh ich ein bisschen leider hab ich nur kein plan von apache und php


könnte vielleicht jemand posten was ich ändern müsste

ich bin am verzweifeln (=
 
Hallo,

ich hatte also richtig vermutet ...

Ich weiß zwar nicht, was ein "Pollin avr net io" ist, aber hier geht's darum, den Apache Webserver auf der Fritzbox zu installieren. Für andere Hardware solltest Du ein eigenes Thema eröffnen.
 
okay wenns denn sein muss, ich dachte aber es passt hier sehr gut rein ....

da ich diese version von apache auf der fritz.box laufen habe
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.