Homepage selbermachen 7.852 Themen, 35.619 Beiträge

Strato Server Problem

Hardwaretester / 17 Antworten / Baumansicht Nickles

Hallo Leute :-)

ich habe für einen Bekannten eine Firmenwebsite gemacht, mit php. Zeitweise bekomme ich da folgende Meldung beim Aufruf der Seite:

Internal Server Error

The Server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator.

More Information about this error may be aviable in the server error log.


Wenn ich eine Kopie der Seite auf meinen Privatserver bei Puretec kopiere funzt alles ohne Probleme. Dieser Fehler bei Strato tritt nicht immer auf, manchmal kann ich alles mehrmals durchklicken. Dann iregdnwann rödelt der Brwoser und es passiert 30 sek nichts und es kommt die Fehlerneldung. Nachts wenn das Netz leer ist kommt dieser Fehler nicht, nur tagsüber und abends. Deshlab gehe ich davon aus, das der Strato-Server der die Seite hostet zweitweise überlastet ist. Also bei Strato angerufen und dort sagte man mir, meine Scripte wären fehlerhaft geproggt. Ich verwende keine aufwendigen Funktionen, alles simple Sachen. Ich gehe davon aus, das es Stratos Problem ist, denn wenn meine Scripte fehlerhaft wären, dann müsste der fehler ja auch Nachts kommen. Habe mich sogar mit einem Vorgesetzten der technik verbinden lassen, der sagte das dieser Internal Server Error immer auf fehlerhafte Scripte zurückzuführen sei. Was meinen die Experten dazu ?

bei Antwort benachrichtigen
GarfTermy Hardwaretester „Strato Server Problem“
Optionen

"...Please contact the server administrator...."

der sitzt beim provider und dort hast du die größten chancen auf hilfe und problemlösung... oder?

an den würde ich mich zuerst wenden.

;-)

The two basic principles of Windows system administration: For minor problems, reboot For major problems, reinstall
bei Antwort benachrichtigen
angelpage Hardwaretester „Strato Server Problem“
Optionen

Hallo,

das passiert auch zeitweilig bei anderen Hostern und ist ein wesentlicher Nachteil -neben gravierenden Sicherheitsproblemen- von PHP. Für kleinere Firmenseiten (etwa bis 200 einzelne Seiten) sind statische HTML-Seiten deshalb immer zu bevorzugen.

Während statische Seiten lediglich durch den Besucher vom Webspace abgeholt werden (Download), weil sie eben fertig sind, müssen PHP-Seiten immer erst umgerechnet werden, was zusätzliche Serverlast verursacht. Oft wird eine HTML- Seite für den Besucher aus zig PHP-Dateien zusammengerechnet ... Manche Hoster drohen deshalb bei Überlast sogar mit der Abschaltung von PHP.

Oft sind zusätzlich die kostenlosen Scripte der CMS Schuld.

bei Antwort benachrichtigen
PaoloP Hardwaretester „Strato Server Problem“
Optionen

Hast Du einen Dedicated Server oder ein Shared-Hosting-Paket ?
Klingt nach Shared-Hosting vermutlich Power Web oder Premium, der Name des Vorgesetzten würde mich übrigens interessieren.
Und ja das ist ziemlich sicher eine Überlastung des Servers.
Deine Scripte hat sich übrigens ganz sicher keiner wirklich angesehen.

Jedes mal wenn jemand "Cloud" sagt, verliert ein Engel seine Flügel.
bei Antwort benachrichtigen
Hardwaretester PaoloP „Hast Du einen Dedicated Server oder ein Shared-Hosting-Paket ? Klingt nach...“
Optionen

Also der Herr hieß B...... Ich wies nicht ob ich den Namen hier einfach nennen darf wegen Datenschutz. Es handelt sich um das Power Web Paket bei Strato - also shared hosting. Sie haben zumindestesn flüchtig ein einige Scripte geschaut, denn er sagte am Telefon das er so auf den ersten Blick keinen Fehler den Scripten finden kann er aber auch nicht alles durchschauen könne. Er beauptet das der Internal Server Error grundsätzlich durch fehlerhafte Scripte verursacht wird und Strato definitiv keine Probleme mit PHP etc hätte. Ich wies ihn darauf hin, das bei Puretc die Seite ja ohne Probs und vor allem schneller funzt. Er meinte, das die andere Einstellungen verwenden und ich wenn die mal was ändern früher oder später dort auch Probleme bekommen würde. Mich interessiert einfach, on der Internal Server Error den wirklich durch fehlerhafte Scripts verursacht wird oder ob es sich definitiv um ein server-Problem handelt. Wenn ja kann ich da mehr Druck machen. Hab mal einen Link zu einem Screenshot angehangen:

http://www.fensterscout.de/shoot/error1.jpg

bei Antwort benachrichtigen
Zaphod Hardwaretester „Strato Server Problem“
Optionen

Hoster wechseln!
HTH, Z.

bei Antwort benachrichtigen
xafford Hardwaretester „Strato Server Problem“
Optionen

Ein Server-Error kommt weder durch zu hohe Netzlast, noch durch zu wenig Rechenleistung zustande. Diese Art Fehler deutet auf einen Fehler im Script hin, der zum Sterben des PHP-Parsers führt. Es wäre hilfreich, wenn man das Script kennen würde.

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen
Hardwaretester xafford „Ein Server-Error kommt weder durch zu hohe Netzlast, noch durch zu wenig...“
Optionen

Das passiert ja unregelmässig in allen Scripten, und alle sind unterschiedlich. Ob Navigation oder Unterseiten - der internal Error kommt mal da mal da. Hier mal ein Script und wie man sieht ganz simpel:


session_start();

$glasw=$_GET['glasw'];

IF ($glasa == "") { $glasa="altdeutsch.jpg"; }

IF ($glasw == 1) { $glasa="altdeutsch.jpg"; }
IF ($glasw == 2) { $glasa="chinchilla.jpg"; }
IF ($glasw == 3) { $glasa="silvit.jpg"; }
IF ($glasw == 4) { $glasa="delta.jpg"; }
IF ($glasw == 5) { $glasa="abstrakto.jpg"; }
IF ($glasw == 6) { $glasa="barock.jpg"; }
IF ($glasw == 7) { $glasa="madera.jpg"; }
IF ($glasw == 8) { $glasa="orna523.jpg"; }
IF ($glasw == 9) { $glasa="parsol.jpg"; }
IF ($glasw == 10) { $glasa="mastercarree.jpg"; }
IF ($glasw == 11) { $glasa="florenz.jpg"; }
IF ($glasw == 12) { $glasa="messina.jpg"; }
IF ($glasw == 13) { $glasa="bari.jpg"; }
IF ($glasw == 14) { $glasa="lucca.jpg"; }
IF ($glasw == 15) { $glasa="satinato.jpg"; }
IF ($glasw == 16) { $glasa="klarglas.jpg"; }

?>

dann kommt html Text wo man Glasbilder auswählen kann die dann wie folgt übergeben werden an das gleiche Script:

...a target="_self" href="orna_fenst.php?glasw=16">Klarglas...

in dem Script wird dann das Bild eingefügt was gewählt wurde





Also alles ganz simpel.

bei Antwort benachrichtigen
Borlander Hardwaretester „Das passiert ja unregelmässig in allen Scripten, und alle sind unterschiedlich....“
Optionen

Warum machst Du das ganze nicht mit einem assoziativen Array, oder zumindest mit switch, oder allerwenigstens else-if verwenden, statt jedes mal 16 Abfragen durch zu führen...

Gruß
Borlander

bei Antwort benachrichtigen
xafford Hardwaretester „Das passiert ja unregelmässig in allen Scripten, und alle sind unterschiedlich....“
Optionen

Füge mal temporär direkt am Anfang deiner Scripte folgendes ein:

error_reporting(E_ALL);

Ich vermute, dass das Problem mit session_register() zusammen hängen könnte, dann könnte wirklich zuviel Last auf dem Server Schuld sein, oder auch Probleme mit dem Schreiben temporärer Dateien auf dem Server.

Ansonsten muss ich Borlander zustimmen, die Art der Zuweisung ist recht unglücklich. Was macht dein Script, wenn jemand es folgendermaßen aufruft:

orna_fenst.php?glasw=9999

Dann bekommst Du einen Fehler ala "Undefined Variable $glasa"

folgendes wäre eleganter:

switch(intval($_GET['glasw']))
{

case 2:
$glasa= 'chinchilla.jpg';
break;

...

default:
$glasa= 'altdeutsch.jpg';

}

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen
xafford Nachtrag zu: „Füge mal temporär direkt am Anfang deiner Scripte folgendes ein:...“
Optionen

Eigentlich müsstest Du für deinen Webspace auch an die Logdateien des Apache für deinen Virtual Host rankommen. In der Datei error.log sollte eine etwas aussagekräftigere Fehlermeldung zu finden sein.

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen
Borlander xafford „Füge mal temporär direkt am Anfang deiner Scripte folgendes ein:...“
Optionen
folgendes wäre eleganter:
switch(intval($_GET['glasw']))
{ [...] }

Ich dachte eher an sowas:
$images = array (1=>"altdeutsch.jpg", [...], 16=>"klarglas.jpg" );
$glasw = intval($_GET['glasw']);
$glasa = isset($images[$glasw] ? $images[$glasw] : $images[1];

Das spar tipperei :-)

Gruß
bor
bei Antwort benachrichtigen
xafford Borlander „ Ich dachte eher an sowas: images array 1 altdeutsch.jpg , ... , 16 klarglas.jpg...“
Optionen

Spart Tipperei, ist aber wesentlich unübersichtlicher und langsamer (Array()) ;o)

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen
Borlander xafford „Spart Tipperei, ist aber wesentlich unübersichtlicher und langsamer Array o “
Optionen
wesentlich unübersichtlicher und langsamer (Array())
Das Array würde ich natürlich Zeilenweise schreiben und nicht alles in einer Zeile ;-)

Ob die Geschwindigkeit besser ist als mit 16 IF-Abfragen müsste man mal benchen (btw.: erinnerst Du Dich noch an Deinen namaligen PHP-Bench-Wettbewerb?), flexibler und bequemer ist es aber allemal. Vor allem falls man das ganze an mehreren Stellen brauchen sollte und/oder man das ganze später mal erweitern möchte...
bei Antwort benachrichtigen
xafford Borlander „ Das Array würde ich natürlich Zeilenweise schreiben und nicht alles in einer...“
Optionen

Das mit dem unübersichtlicher entstammt auch persönlichem Gusto. Ich arbeite mit PHPEclipse und dem Code-Formatter kann ich irgendwie nicht abgewöhnen Arrays immer wieder in eine Zeile zu packen, auch wenn sie anders deklariert waren.

16 If Abfragen wären schon wirklich unelegant und ich hatte ja auch switch vorgeschlagen, schneller müssten sie aber allemal sein, da es ein reiner JNE ist der in einem Befehl abgearbeitet werden kann und weniger Speicheroperationen als bei einem Array nötig sein müssten.

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen
Olaf19 xafford „Das mit dem unübersichtlicher entstammt auch persönlichem Gusto. Ich arbeite...“
Optionen

Hallo ihr beiden, da muss ich mich auch mal einklinken...

Ich habe vor ca. 20 Jahren auf dem Atari mit Omikron Basic programmiert und hatte auch manchmal Situationen in denen ganze "Kaskaden" von IF-Abfragen nötig gewesen wären. Wenn irgend möglich, habe ich versucht, mit dem "ON X GOSUB <subroutine1>, <subroutine2>, <subroutine3>,..."-Befehl zu arbeiten, d.h. wenn die Variable X z.B. den Wert 7 annahm, wäre er zu <subroutine7>, gesprungen. Aber das war aus logischen Gründen nicht in allen Fällen einzurichten.

Bei einem späteren Upgrade von Omikron Basic gab es dann als wesentlich elegantere Lösung die CASE-Anweisung, letztlich nichts anderes als ein stark erweitertes und dabei gleichzeitig erheblich vereinfachtes IF...THEN... ELSE...ENDIF für komplexere Aufgaben. Anstelle von ELSE trat dann der Ausdruck OTHERWISE (d.h. "wenn keiner der vorbezeichneten Cases zutrifft, dann...").

Gibt es etwas Dementsprechendes auch in PHP?

CU
Olaf

Die Welt ist ein Jammertal ohne Musik. Doch zum Glueck gab es Bach, Beethoven, Haendel und Goethe (Helge Schneider)
bei Antwort benachrichtigen
Zaphod Olaf19 „Case-Anweisung?“
Optionen
Gibt es etwas Dementsprechendes auch in PHP?
Genau so - als elegantere Lösung für multiple if ... else-Kaskaden ist switch in PHP implementiert ;-).

http://www.php.net/manual/de/control-structures.switch.php

HTH, Z.
bei Antwort benachrichtigen
Olaf19 Zaphod „Case-Anweisung?“
Optionen

Hey, das macht ja richtig Appetit aufs Programmieren... ist das lange her bei mir. "elseif" als 1 Wort kannte ich allerdings nicht - nur ELSE, gefolgt von einer neuen IF-Anweisung, zweckmäßigerweise in einer neuen Zeile. Übrigens, "break" hieß damals EXIT :-)

THX
Olaf

Die Welt ist ein Jammertal ohne Musik. Doch zum Glueck gab es Bach, Beethoven, Haendel und Goethe (Helge Schneider)
bei Antwort benachrichtigen