Archivlink: javarea.de Forum > Sitecheck > GB-Installation
Vollständigen Link anzeigen: javarea.de Forum > Sitecheck > GB-Installation
Pages: [1]
| geschrieben von zippy am 14.04.2006 - 19:46 |
Holadschi alle,
diesmal geht es nicht um das Gästebuch von voriger Woche, sondern um dessen Installation. Ich konnte das nur auf drei Servern verschiedenen Charakters ausprobieren. Deshalb heute die BESONDERE Bitte:
Es wäre ganz lieb, wenn jemand die Installation testet. Geht also nicht um das Script selbst, sondern um dessen Usability.
Die Dateien häng ich als Zip an.
Nachtrag Ostersonntag: Hab ne neue Version geuploadet. Einige der Antworten treffen also auf das aktuelle Script nicht mehr zu.
|
| geschrieben von Danny am 15.04.2006 - 00:57 |
Hallo zippy,
hab das Script lokal getestet und da ein paar Anmerkungen.
Wie ich es sehe muss man nur die index.php aufrugen und es installiert sich von selbst. Ansich eine schöne Idee nur gibts da ein paar Haken, die mich etwas stören.
Erstens, dass man selbst die index.php allein der MySQL editieren muss. Wegen den FTP Daten sogar noch die "versteckte" install.php . Ich als "User des Scriptes" schaue eher nach einer config.php und such mich nicht in der index.php rum.
Was ich vorschlagen würde ist eine externe Konfigruationsdatei, in der die relevanten Daten gespeichert werden. Wenn das GB noch nicht installiert wurde, kann z.B. über eine Variable (isInstalled = false) die in der config.php steht abgefragt werden, öffnet sich ein Formular über das ich MySQL Daten und Co eingebe. So muss sich der User nicht durch das eigentliche Script wühlen,
So entfällt auch soetwas:
| PHP-Quelltext | 1:
2:
3:
|
<?
$newcomment->installit();//Kann entfernt werden, wenn das GB funzt
?>
|
Du glaubst nicht wirklich das ein User sich bis Zeile 924 im Code durchwühlt um den Comment zu lesen?
Bin mir auch nicht genau im Klaren wozu du die FTP Daten benötigst, wie ich das sehe nur für ein chmod in der data/install.php ?
Warum nicht die PHP Funktion
| PHP-Quelltext | 1:
2:
3:
|
<?
bool chmod ( string filename, int mode )
?>
|
http://www.php.net/manual/en/function.chmod.php
sollte doch selbes erledigen?
Also nochmal kurz zusammengefasst ^^ :
1. Konfigurationsformular
2. externe config Datei
3. chmod()
Bye Danny |
| geschrieben von zippy am 15.04.2006 - 10:29 |
Hallo Danny,
herzlichen Dank für den Test!
Folgendes gibt bei zwei von drei von mir getesteten Servern eine Fehlermeldung:
"Warning: chmod() [function.chmod]: Operation not permitted in /srv/www/............./LMguestbook/data/install.php on line 81"
Genau das war der Grund, warum ich auf die FTP-Funktionen zurückgegriffen habe. Diese werden ja bloß benötigt, wenn das chmod nicht funzt. Bei Dateien geht es problemlos, aber eben nicht bei Ordnern.
Deshalb steht dort (derzeit):
| PHP-Quelltext | 1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
|
<?
if (!(@chmod("userpics",0777)))
{
$connectionid = ftp_connect("localhost");
$loginnow =@ftp_login($connectionid,$ftpusername,$ftppassword);
if (!$loginnow)->eigene Fehlermeldung und Ermunterung
@ftp_chdir ($connectionid, "/".$rootpathftp."/");
$chmodit="CHMOD 0777 userpics";
$changeattributes=@ftp_site($connectionid, $chmodit);
if (!$changeattributes)-> eigene Fehlermeldung und Ermunterung
}
?>
|
Die UserInnen werden also erst, wenn das chmod nicht funzt, ermuntert, die FTP-Daten in die install.php einzutragen. Wenn Du eine Idee hast, wie man ohne FTP-Funktionen die Rechte für Ordner chmodden kann, wenn der Server "chmod" für Ordner nicht erlaubt, bin ich sehr dankbar. In meinem Micro-CMS (für welches ich demnächst zum Test ersuchen werde) erhalten zB alle UserInnen und Redakteure EIGENE Datenordner. Da würde ich auch lieber mit CHMOD auskommen, aber es funzt halt so selten. Vielleicht hab ich ja ein Brett vorm Kopf...
Weiters:
Tatsächlich war die config BIS GESTERN eine eigene PHP, um es den Leuten leichter zu machen. Weil aber die guestbook-php (=index) immer im gleichen Ordner liegen muss, wie die template, kann es natürlich passieren, dass sie in ein anderes Verzeichnis verfrachtet werden muss, zB, um sie in ein CMS zu integrieren. Damit gibt es aber ZUMINDEST eine Variable, die man in die haupt-php(index.php bzw. umbenannt, wenn schon eine solche existiert) eintragen muss, nämlich den include-path der config.php
Bis gestern lautete die function configit also ganz einfach:
| PHP-Quelltext | 1:
2:
3:
4:
5:
6:
|
<?
function configit()
{
include ("data/config.php");
}
?>
|
Wenn man die index.php aber verschiebt und umbenennt, dann könnte dort aber stehen müssen:
| PHP-Quelltext | 1:
2:
3:
4:
5:
6:
|
<?
function configit()
{
include ("../../modules/LMguestbook/data/config.php");
}
?>
|
Der include-path MUSS also in die hauptdatei eingetragen werden, weil diese sonst nicht "weiß", woher sie die config.php holen soll! Deshalb hab ich gleich die ganze config.php wieder in die Funktion der Hauptdatei verfrachtet. Für ne bessere Lösung wäre ich dankbar.
Das mit der function installit(), die man in Zeile (900+) entfernen kann, ist auch ein Relikt. Es reicht, die Installationsdatei install.php zu entfernen, weil diese in der function installit mittels if (file_exists...) eingebunden wird.
Ein Konfigurationsformular ist tatsächlich geplant! Dieses sollte die config.php schreiben! Ich will aber vorher das script "glätten", damit es auf möglichst vielen Servern funzt und möglichst wenig Ansprüche an die Webmaster stellt, und nicht immer mehrere Dateien umschreiben zu müssen, wenn ich was ändere....
Dieses Formular wird also erst in der Version 1.0 vorliegen.
In dieser wird auch Dein Name in der "Thanks-to"-Liste stehen, wenn Du erlaubst.

//Doppelpost zusammengefügt
Nachtag: Das chmod auf Ordner funktioniert bei diesen Servern auch dann nicht, wenn ich die Ordner durch das Script erstellen lasse. Es ist mir ein Rätsel, warum. Wahrscheinlich ist bei diesen Servern der Superuser Besitzer, oder was weiß ich.
Nachtrag2:
"Warning: mkdir(userpics) [function.mkdir]: Permission denied in /srv/www/......../LMguestbook/data/install.php on line 81"
...geht, wie gesagt, auch nicht.
Nachtrag3:
Tschuldigung. Hab irrtümlich auf "zitieren", statt auf "editieen" geklickst....
|
| geschrieben von zippy am 15.04.2006 - 15:29 |
Ach Danny, das ist vielleicht eine Arbeit....

Wusste ja, warum ich mich bisher vor so ner Formulareingabe drückte. Ich sitz seit drei Stunden an der Erstellung der admin.php, weil es sooooo viele Variablen sind, die man damit per Post übermittelt, und hab noch nocht mal das Formular geschafft. Gerade erst die write-Funktion, die aus den geposteten Variablen die config.php neu schreibt.
Auch mit c&p bzw. der Ersetzfunktion zieht sich das unendlich. Dafür nenne ich die neue Version nicht 0.8.1, wie ich es vorhatte, sondern gleich 0.9....

|
| geschrieben von Danny am 15.04.2006 - 21:02 |
mhh warum so kompliziert?
du erstellst ein Array wo du die Variablennamen und zb den Namen oder Beschreibung noch also so z.B:
| PHP-Quelltext | 1:
2:
3:
4:
5:
6:
7:
8:
|
<?
$ConfigArray = array(
array('var'=>'mysql_user','name'=>'MySQL Benutzername','description'=>'keine Ahnung'),
array('var'=>'mysql_pass','name'=>'MySQL Benutzerpasswort','description'=>'keine Ahnung'),
array('var'=>'mysql_host','name'=>'MySQL Host','description'=>'keine Ahnung'),
/* ..... viele mehr ..... */
);
?>
|
Dein Formular gibst du dann einfach so aus:
| PHP-Quelltext | 1:
2:
3:
4:
5:
6:
|
<?
foreach($ConfigArray as $Key=>$Value)
{
echo '<tr><td>'.$Value['name'].'</td><td><input type="text" name="'.$Value['var'].'" /></td></tr>';
}
?>
|
Ähnlich dann auch beim Eintragen, überprüfen ob der POST oder GET Wert gesucht (also im Array gefordert wird, sonst kann man ja alles in die config schreiben lassen) wird und wenn ja einfach mit der Variable und dem Namen in die config.php schreiben.
So brauchste nur einmal den Array erstellen ...
Bzgl. des Angebots wg. Thanks To Liste, nehm ich gerne an ;)
Bye Danny |
| geschrieben von zippy am 16.04.2006 - 02:23 |
Das ist lieb!
:-)
Da war ich aber schon fertig....
Außerdem wirds durch das Array nicht wesentlich kürzer, wenn ich es richtig verstehe. Es sind wirklich viele Einstellungen möglich, und ich habe versucht, die in einer (neuen) admin.php übersichtlich darzubieten.
Zur Installation:Man muss jetzt die Rechte für den Ordner händisch auf 777 (bei den meisten Servern) setzen, und für die config.php auf 660. Meinst Du, dass man das den Leuten zutrauen kann?
Jetzt geht es so:
1.)Datei entpacken
2.)Dateien raufladen.
3.)Rechte für userpics=>777 und config.php=>660
4.)Wenn noch keine Angaben für Datenbank angegeben, wird man sofort auf die admin.php umgeleitet.
5.)Das Grundpasswort ist "littlemonster"
6.)Dort stehen zig Felder. Einfach den Bereich anklixen, den man braucht. Zuerst "Installation". Und natürlich "New Password"...
7.) Die komplette config.php wird neu geschrieben.
Problem: Auf strengen Servern funzt kein chmod der upgeloadeten config.php und des Bilderordners. Man muss also zumindest die config.php per FTP-Client chmodden. Bevor die nicht gechmoddet ist, läßt sie sich nicht zum Schreiben öffnen.
Wenn man aber ohnedies die config.php chmodden muss, kann man das auch gleich mit dem userpics-folder tun. In der Version 1.0 ist vielleicht eine Option, die config.php vom script erzeugen zu lassen. Dann gehts wieder per Interface. Ist mir aber für heute zu viel..

Kannst Du als Mod dieses zip gegen das alte austauschen, damit niemand mehr das alte lädt...?
Danke nochmal für Deine Mühe.
Nachtrag: Der Tipp mit dem Array ist wirklich toll. Allerdings stehen in der admin.php verschiedenste Variable,, mal mit html-Möglichkeit, mal nur mit 0 ode Zahl, mal mit Textarea, mal mit textinput. Das Array hätte zwar den Vorteil, auch für die function getpostvars verwendbar zu sein, ist mir aber zu anstrengend, wo eh schon alles drin steht.
In der admin.php wird nicht mal geaddslashed, weil sich Admins wohl kaum ihre eigene Seite hacken werden...
Und den Knopf zum "Anhang ändern" hab ich Dummi mittlerweile auch schon selber gefunden.

|
| geschrieben von Danny am 16.04.2006 - 10:43 |
Gefällt mir sehr gut wie du es gelöst hast 
Nur leider klappt das aufklappen der Konfigurationsfelder nicht mit dem Firefox
Bye Danny |
| geschrieben von zippy am 16.04.2006 - 16:52 |
hab das in den Javascript-Bereich geschrien, und dort hat mir ein bishher für mich unsichtbarer Moderator geholfen. Ein neues zip gipts aber frühestens, wenn ich meinen gestrigen Rausch ausgeschlafen habe.
Das LM-Guestbook ist aber nur eine Vorhut für das LM-CMS. Damit übe ich Installationsroutinen, und so.
Vielleicht bist du so lieb, auch mal das cms zu testen. Ich arbeite echt hart daran, dieses auf die Bytegernze von Javarea zusamman zu schnipselln.
|
| geschrieben von Danny am 16.04.2006 - 17:50 |
Das CMS teste ich auch gerne, kein Problem...
Achja hatte ich beim letzten Posting wohl vergessen zu erwähnen. Dass der User selbst chmod Rechte setzt ist eigentlich nicht unüblich für ein Script, sollte also, sofern in der Installationsanleitung gut beschrieben, auch von den meisten Usern zu bewerkstelligen sein.
Du kannst das ja in deiner Konfigurationsoberfläche überprüfen und gegebenfalls eine Warnung ausgeben.
Bye Danny
|
| geschrieben von zippy am 25.04.2006 - 21:56 |
Mittlerweile geht alles leichter!
Die Überprüfung der Attribute ist zwar noch nicht drin, aber dafür die Version 0.9.9 fertig. Ich lade sie mal rauf und ersuche um Löschung der älteren...

|
|