Hallo Ihrs
Ich habe da ein Problem was mich zweifeln lässt ob die Maßnahme wie ich es angehe die richtige ist...
Aber der Reihe nach.
1. Ich habe mehrere Domains bei einem Provider gehostet.
2.Die Domains leigen alle im selben Webspace und haben alle einem eindeutigen Ordnernamen.
Der absolute Pfad ist also immer derselbe (Bsp.: /mnt/webspace/user123/),
es wird im Document_root lediglich der Ordnername hinzugefügt wenn man sich in einer Domainumgebung befindet (Bsp.: /mnt/webspace/user123/test1.de/).
Nun haben alle Domains den gleichen Inhalt, die Webseiten sehen vom Erscheinungsbild also alle gleich aus.
Lediglich der Content und die Bilder sind unterschiedlich, da diese aus einer gemeinsamen DB per anderslautenden Konstanten die pro Domainaufruf gesetzt, ausgelesen werden.
Da die Dateien nun alle den selben Inhalt haben, habe ich eine Domain als Testumgebung für Änderungen oder Neuerungen erkoren.
Hier lege ich neue Dateien an, ändere bestehende Dateien und Teste diese bevor ich sie auf die anderen Domains (noch per FilleZilla- FTP) aufspiele.
Nun, um mir etwas Arbeit abzunehmen, habe ich mir gedacht eine Art Uploadscript zu schreiben welches geänderte oder neue Dateien einliest und auf die anderen Domains, die ich individuell auswähle, aufspielt.
Ich habe mir also eine Funktion geschrieben die genau das erfüllen soll.
Leider und nun komme ich zu meinem Problem, klappt das Schreiben der Dateien in die anderen Domainordner nicht.
Meine Frage ist nun a) geht das überhaupt von einem Domainordner zum anderen Dateien per fgets() zu schreiben und b) falls nein wäre es besser so etwas mit PHP-FTP zu realisieren und wenn ja wie ?
Hier mal der Code meiner Funktion:
Wie gesagt das Einlesen klappt hervorragend (das kann ich testen), nur bei Öffnen der Datei die beschrieben werden soll gibs Probleme (auch wenn die Dateien vorhanden und testweise mit den Rechten 777 ausgestattet sind).
Nehme ich allerdings eine Datei aus dem Wurzelverzeichnis (also $_SERVER["DOCUMENT_ROOT"]) wo die Klasse ausgeführt wird dann klappt das.
Vieleicht hat ja von euch einer mal ein ähnliches Problem gehabt und weiß nen Lösungsansatz.
Vieleicht habe ich mich aber auch etwas unglücklich ausgedrückt...fragt also ruhig nach wenn etwas unklar ist.
Wäre dankbar für jede Anregung....
MfG Mad
Ich habe da ein Problem was mich zweifeln lässt ob die Maßnahme wie ich es angehe die richtige ist...
Aber der Reihe nach.
1. Ich habe mehrere Domains bei einem Provider gehostet.
2.Die Domains leigen alle im selben Webspace und haben alle einem eindeutigen Ordnernamen.
Der absolute Pfad ist also immer derselbe (Bsp.: /mnt/webspace/user123/),
es wird im Document_root lediglich der Ordnername hinzugefügt wenn man sich in einer Domainumgebung befindet (Bsp.: /mnt/webspace/user123/test1.de/).
Nun haben alle Domains den gleichen Inhalt, die Webseiten sehen vom Erscheinungsbild also alle gleich aus.
Lediglich der Content und die Bilder sind unterschiedlich, da diese aus einer gemeinsamen DB per anderslautenden Konstanten die pro Domainaufruf gesetzt, ausgelesen werden.
Da die Dateien nun alle den selben Inhalt haben, habe ich eine Domain als Testumgebung für Änderungen oder Neuerungen erkoren.
Hier lege ich neue Dateien an, ändere bestehende Dateien und Teste diese bevor ich sie auf die anderen Domains (noch per FilleZilla- FTP) aufspiele.
Nun, um mir etwas Arbeit abzunehmen, habe ich mir gedacht eine Art Uploadscript zu schreiben welches geänderte oder neue Dateien einliest und auf die anderen Domains, die ich individuell auswähle, aufspielt.
Ich habe mir also eine Funktion geschrieben die genau das erfüllen soll.
Leider und nun komme ich zu meinem Problem, klappt das Schreiben der Dateien in die anderen Domainordner nicht.
Meine Frage ist nun a) geht das überhaupt von einem Domainordner zum anderen Dateien per fgets() zu schreiben und b) falls nein wäre es besser so etwas mit PHP-FTP zu realisieren und wenn ja wie ?
Hier mal der Code meiner Funktion:
PHP Code:
public static function uploadAll() {
$url = "mein absoluter Server-Pfad (Ordner der Entwicklungsumgebung ausgeklammert)";
$dir = ClassUpload::getDirectory(); // Liest die Domainordner ein
$file = ClassUpload::getFiles(); // Liest die Dateien ein
$uploadUrl = $url . "Ordner der Entwicklungsumgebung";
// Dateien zum Upload einlesen/schreiben
foreach($dir as $key => $var) {
foreach($file as $k => $v) {
// Einlesen
$updateFile = $uploadUrl.$v["file"];
$fileArray = fopen($updateFile,'r') or die ("Cannot read file.");
while (!feof($fileArray)) {
$zeile[]= fgets($fileArray,1024);
}
fclose($fileArray);
// Zeilenanzahl ermitteln
$zeileCount=count($zeile);
// Downloadordner-,file festlegen
$downloadFile = $var["portal"].$v["file"];
// File zum Beschreiben öffnen
$fd = fopen($downloadFile,"w+");
// In Datei schreiben
if(file_exists($fd)) {
for($i=0;$i<$zeileCount;$i++) {
fputs($fd, $zeile[$i]."");
}
echo "<br />File found"; // Zum Testen ob Datei vorhanden
} else {
echo "<br />File not found!"; // Datei nicht vorhanden
}
fclose($fd);
}
}
}
Nehme ich allerdings eine Datei aus dem Wurzelverzeichnis (also $_SERVER["DOCUMENT_ROOT"]) wo die Klasse ausgeführt wird dann klappt das.
Vieleicht hat ja von euch einer mal ein ähnliches Problem gehabt und weiß nen Lösungsansatz.
Vieleicht habe ich mich aber auch etwas unglücklich ausgedrückt...fragt also ruhig nach wenn etwas unklar ist.
Wäre dankbar für jede Anregung....
MfG Mad
Comment