PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : apache gecrasht, jetzt mysql/php fehler



Molok
16.01.2003, 22:12
Auf unserem Server hats heute den Apache 2 gecrasht. Nun das haben wir auch wieder hinbekommen.

Seitdem haben wir aber n Problem mit php scripten auf dem Server.
Z.b. bei Corenews und anderen
http://www.netzgames.net

haben wir solche fehler



Warning: main(config.) [function.main]: failed to create stream: No such file or directory in /var/www/html/web/netzgames/corenews2/shownews.php on line 7

Fatal error: main() [function.main]: Failed opening required 'config.' (include_path='.:/usr/local/lib/php') in /var/www/html/web/netzgames/corenews2/shownews.php on line 7


was könnte das sein ?

martin
17.01.2003, 01:13
arbeitet php 4.3.0 mit dem apache2 korrekt zusammen? die vorherigen php versionen taten das nicht vernünftig.

ich hab mit dieses 'corenews' gerade mal angesehen, das ist ziemlich unsauber geschrieben.
ich würds nicht verwenden...

ich denke, der fehler entsteht dadurch, dass du 'register_globals' in der php.ini auf 'Off' stehen hast.
das ist richtig so und sollte eigentlich aus sicherheitsgründen auch nicht geändert werden, aber 'corenews' benötigt diese option.



$extension = explode(".", $PHP_SELF);
$ext_count = count($extension);
$extension = "." . $extension[$ext_count-1];

require("config".$extension);
require_once("coresql".$extension);



$PHP_SELF steht sonst nicht zur verfügung. deshalb kann die dateiendung nicht bestimmt werden und daduch entsteht der fehler beim einbinden der dateien. die variable $extension hat keinen wert.

ersetz mal die ersten drei zeilen:



$extension = explode(".", $PHP_SELF);
$ext_count = count($extension);
$extension = "." . $extension[$ext_count-1];


durch



$extension = '.php';


und probier obs läuft.

aber selbst wenn, wird es da sicher an andere stelle noch probleme geben.
du müsstest 'register_globals' in der php.ini auf 'On' setzen (und den apache dann neu starten).
nur kann ich dir das nicht empfehlen. es wäre besser, wenn du deine scripte anpassen würdest, denn alle sauber geschriebenen scripte laufen auch so - müssen sie sogar, in zukunft wird es diese option nichtmehr geben.

Molok
17.01.2003, 08:13
gottlob gibt es das vb-germany board.
@martin big thx *lob* *anbet* *vergöttert*

Das war genau das richtige.

Molok
17.01.2003, 08:19
ok zu früh gefreut.

Irgendwas scheint da noch nicht ganz zu klappen


Warning: setlocale() [function.setlocale]: Passing locale category name as string is deprecated. Use the LC_* -constants instead. in /var/www/html/web/gtaworld/mainfile.php on line 532

martin
17.01.2003, 10:09
das ist ok.

die warnung besagt nur, dass die methode mit der setlocale() dort verwendet wird veraltet ist (und in zukunft wegfällt) und nicht länger verwendet werden soll.

informationen zur anwendung von setlocale() findest du dort:

http://de.php.net/manual/de/function.setlocale.php

wenn du damit nichts anfangen kannst, kopier mal die in der fehlermeldung angegebene zeile, und zwei, drei zeilen drüber und drunter, hier rein.

Molok
17.01.2003, 10:56
ich wurschtel mich mit PHP zwar so durch, aber für mehr reichts eben auch nicht :p



function formatTimestamp($time) {
global $datetime, $locale;
setlocale ("LC_TIME", "$locale"); */Das ist Zeile 532
ereg ("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2}) ([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2})", $time, $datetime);
$datetime = strftime(""._DATESTRING."", mktime($datetime[4],$datetime[5],$datetime[6],$datetime[2],$datetime[3],$datetime[1]));
$datetime = ucfirst($datetime);
return($datetime);
}

martin
17.01.2003, 12:03
ersetz die zeile mal durch


setlocale (LC_TIME, "$locale");


LC_TIME ist ein konstante, da dürfen keine " " herum sonst wäre das ein string. deshalb die fehlermeldung nehme ich an.
um das $locale sollten denke ich auch keine " " stehen, das sollte aber nicht das problem sein. im zweifelsfall kannst dus da aber auch mal ohne probieren wenn es nicht funktionieren sollte.

alternativ kannst du auch einfach


setlocale (LC_TIME, 'de_DE');

schreiben.