PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   PHP Developer Forum (https://www.php-resource.de/forum/php-developer-forum/)
-   -   Safe Mode auf Rechenzentrum (https://www.php-resource.de/forum/php-developer-forum/62959-safe-mode-auf-rechenzentrum.html)

Karl Blau 05-12-2005 22:19

Safe Mode auf Rechenzentrum
 
Hi,

ich versuche gerade ein Wiki auf einem Webserver in einem Rechenzentrum zum Laufen zu kriegen. Soweit klappt das auch alles, bis auf die Sache mit den Uploads von Images (das sind bei Wikis Dateien allgemein).

Ich bekomme eine Meldung, dass Safe Mode aktiviert ist und dazwischenfunkt.

Auf den Infoseiten des Rechenzentrums habe ich folgendes gefunden:

Für den Fall, daß die Einschränkungen des Safe Mode umgangen werden müssen (z.B. um Dateien zu schreiben o.ä.), auf Oracle-Datenbanken zugegriffen oder PHP5 genutzt werden soll, stehen auch eigenständige PHP-Script-Interpreter zur Verfügung. Solche Scripts sind dann ganz normale CGIs (mit der Endung .cgi) wie oben beschrieben. Um den PHP-Script-Interpreter zu laden, muß die erste Zeile #!/usr/machine/bin/php-cgi lauten (bzw. #!/usr/machine/bin/php5-cgi falls explizit PHP5 genutzt werden soll). Der alte Pfad (also wenn in der ersten Zeile nur #!/usr/machine/bin/php steht) funktioniert derzeit noch in gleicher Weise, wird aber aus Gründen der Kompatibilität zu anderen Script-Interpretern mit Wechsel auf PHP5 auf einen für CGIs ungeeigneten PHP-Script-Interpreter verweisen. Alte PHP-CGI-Scripts sollten daher an den neuen Pfad angepasst werden.


Was sagt mir das genau? In welche Datei muss ich wo genau #!/usr/machine/bin/php-cgi einfügen? Etwa in jede php Datei des Wikis, dass mit Safe Mode Probleme hat?

Ich habe eine Test-php Datei geschrieben, die macht immernoch Probleme:
#!/usr/machine/bin/php-cgi


+++ DATEIBEGINN +++

#!/usr/machine/bin/php
<?php

// Check for safe mode
if( ini_get('safe_mode') ){
echo('SAFE-MODE');
// Do it the safe mode way
}else{
echo('NO SAFE-MODE');
// Do it the regular way
}

define('FILE_APPEND', 1);
// define('LOCK_EX', 2); - constant defined in PHP, is 2 as well

function file_put_contents($filename, $data, $flags = 0, $f = FALSE)
{
if(($f===FALSE) && (($flags%2)==1)) $f=fopen($filename, 'a'); else if($f===FALSE) $f=fopen($filename, 'w');
if(round($flags/2)==1) while(!flock($f, LOCK_EX)) { /* lock */ }
if(is_array($data)) $data=implode('', $data);
fwrite($f, $data);
if(round($flags/2)==1) flock($f, LOCK_UN);
fclose($f);
}
$stuff = 'This is some text';
echo('Attempting to write...');
if(file_put_contents('file', $stuff) > 0) {
echo('done!<br />');
} else {
echo('failed!<br />');
}
?>

+++ DATEIENDE +++


Bin absoluter PHP-Neuling und auch in diesem Forum neu.

Würde mich über eine Antwort freuen.


Gruss, Karl

asp2php 05-12-2005 23:07

IMHO mit #!/usr/machine/bin/php-cgi kannst du nur auf der Konsole ausführen, der Webserver macht nicht mit. Ich glaube auf php.net schon mal drüber gelesen, in einer User Contributed Notes, such mal, IMHO ist auch eine Lösung dabei.

Karl Blau 05-12-2005 23:57

Ich glaub ich spinne:

ich habe den Code nochmal neu formatiert: die neue Datei sieht so aus:

<?php

// Check for safe mode
if( ini_get('safe_mode') )
{
echo('SAFE-MODE');
// Do it the safe mode way
}
else
{
echo('NO SAFE-MODE');
// Do it the regular way
}

define('FILE_APPEND', 1);
// define('LOCK_EX', 2); - constant defined in PHP, is 2 as well

function file_put_contents($filename, $data, $flags = 0, $f = FALSE)
{
if(($f===FALSE) && (($flags%2)==1)) $f=fopen($filename, 'a'); else if($f===FALSE) $f=fopen($filename, 'w');
if(round($flags/2)==1) while(!flock($f, LOCK_EX)) { /* lock */ }
if(is_array($data)) $data=implode('', $data);
fwrite($f, $data);
if(round($flags/2)==1) flock($f, LOCK_UN);
fclose($f);
}

$stuff = 'This is some text';
echo('Attempting to write...');
if(file_put_contents('file', $stuff) > 0)
{
echo('done!<br />');
}
else
{
echo('failed!<br />');
}

?>


Wenn ich diese Datei starte kommt:

./test.php: line 1: ?php: No such file or directory
./test.php: line 3: //: is a directory
./test.php: line 4: syntax error near unexpected token `'safe_mode''
./test.php: line 4: `if( ini_get('safe_mode') )'

Das ist mir echt schleierhaft. Vor allem schonmal der erste Fehler: ?php no such file or directory ??? Was soll das denn?

Es steht definitiv <!php in der ersten Zeile!


Gruss, Karl

Karl Blau 05-12-2005 23:59

ich sehe gerade, dass whitespace nicht gezeigt wird ... ich habe die einzelnen Zeilen schön eingerückt ... aber das sollte man ja dürfen

Karl


Alle Zeitangaben in WEZ +2. Es ist jetzt 01:55 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG