Apache | MySQL | Keine Schreibrechte?

S

sevY

Hi zusammen,

ich nutze 10.3 und habe den internen Apache sowie die 4er Version von MySQL installiert. Mit phpMyAdmin 2.5.4 lassen sich wunderbar Tables erstellen, Inserts und Updates vollbringen.

Aber:

Nachdem ich wie ein verrückter im PhP-Code meines Adminformulars nach Fehlern gesucht habe, kam mir der Einfall, einfach mal ein „online funktionierendes“ Adminformular von unserem Server zu ziehen, die passenden Tables einzurichten und dann zu testen.

Ich hatte nämlich mit meinen sämtlichen Versuchen nie Erfolg, obwohl der Code korrekt war.

Ergeniss:

Ich kann keine Änderungen in der DB bewirken. Warum? Gibt es soetwas wie Schreibrechte oder etwas, das deaktiviert ist?

phpMyAdmin kann schreiben, meine Formulare nicht…


Vielen Dank für eure Hilfe.

Liebe Grüße

Coffeemaker
 
Mag albern klingen, aber die Angaben sind richtig, oder. Meine damit:

DB_Host
DB_User
DB_Pass

und dergleichen. Ist manchmal der Korken. Wenn mehr Probleme
bestehen, kannst Du auch gerne die eventuellen Fehlermeldungen
per Mail an mich schicken.

Gruss, Frank.

;)
 
Ja klar sind die Werte korrekt ;)

So sieht die lokale config aus… auslesen geht ja prima :) Nur schreiben halt nicht. Ich denke nicht das es an den PHPscripts liegt. Funktionierende Scripts vom Onlineserver laufen ja lokal nicht.

PHP:
<?
$db_host = "localhost";
$db_login = "root";
$db_pass = "000001";
$db_dbase = "mydb";





$handler =
@mysql_connect($db_host,$db_login,$db_pass);
@mysql_select_db($db_dbase,$handler);
?>

greetz yves
 
Soweit sogut, das mit dem Pass etc. war nicht im Sinne von "mann ist
der dumm mann" gemeint, sondern passiert mir auch gelegentlich (nach
über 5 jahren Praxis, ahemm...).

Also nächster Schritt:

Werden die Scripte generell nicht ausgeführt, will sagen, bekommst
Du im Brwoser Error 500 oder etwas in der Art serviert?

Oder erhältst Du den freundlichen Hinweis auf einen SQL-Fehler, von
wegen "this script is not allowed to bla bla" ???

Und bevor wir nu hier in eine PingPongOrgie verfallen, sollte der
Script nicht zu sensitiv sein, kannst Du ihn auch gerne mailen.

Shalom, Frank.
 
Hi,

das Script ist nicht intensiv.

Wie gesagt, einfache select * from bla where bla='bla' und dann echo geht prima. keine sql fehler.

nur wenn ich dann einen befehl wie update oder insert wähle, passiert nichts in der db.

wie gesagt, auf dem domainfactory server beim provider läuft es, hier bei mir nicht. ohne fehlermeldung. normalerweise müsste ein wert geschrieben werden… aber es läuft alles nach plan, nur die db wird nicht geändert.

weisst du wie ich das meine?

so als ob ich mit einem angespitzen bleistift auf einem blatt papier zuhause male und nichts sehe und dann mit dem gleichen bleichstift in der uni normal zeichnen kann. auf dem praktisch gleichen papier.

das papier ist hier der apacheserver/mysql bei mir bzw. in der uni.
der bleistift ist das korrekte php script.


;)

liebe grüße

yves
 
Hier mal ein Auszug aus einem Adminform das Prima im Web funktioniert und Offline leider nichts ausrichten kann.

Obwohl alles korrekt gecodet ist und auch die configs nach dem herunterladen angepasst wurden. Ausgaben gehen definitiv, nur Schreibvorgänge gehen nicht. Also echo / print ja, insert / update nein.

Der einzige der das lokal kann ist PHPMYADMIN :(

greetz coffee

PHP:
include("_config.php");

if ($action == "news_input")
{
	$date = date("d.m.y");
	if($step=="1")
	{
		@mysql_query("update $db_news set news_store='$message', date='$date'",$handler);
	}
	elseif($step=="2")
	{
		@mysql_query("update $db_news set news_deko='$message', date='$date'",$handler);
	}

  	if($was=="doit") {
    	$size = $bild_size;
    	$name = $bild_name;
    	$type = $bild_type;

    	if(eregi("(jpg|gif)$",$name))
    	{
    	    if($size<100000 AND $size!=0)
            {
            	if($step=="1")
            	{
            		chdir("../cont/img/surprise_aktuell");
                	copy($bild,"store.jpg");
                	echo "<meta http-equiv=refresh content=\"0; URL=index.php?step=2\">";
                }
                elseif($step=="2") {
                	chdir("../cont/img/surprise_aktuell");
                	copy($bild,"deko.jpg");
                	echo "<meta http-equiv=refresh content=\"0; URL=index.php\">";
                }
            }
        	else { echo "Ihre Datei ist zu gross oder gleich 0";  }
        } else { /* Ung&uuml;ltige Endung */ }
	}
}
?>
 
Falls du noch antwortest, ich lese mal morgen… ich geh schlafen :)

danke und gute nacht.


yves
 
Damit deine Scripte auch schreiben können, müssen die Verzeichnisse und Dateien auch chmod 777, bzw. 666 haben. Dann muß der Safe_Mode auf off in der php.ini da sonst andere Schreib- und Uploade-Funktionen eintreten. Und Register_Globals sollte zunächst auch off sein.

Dann schau mal in deiner User-Datenbank (phpadmin) nach ob überhaupt das Kennwort für den Root-User aktiviert ist.

Dann benötigst du noch einen User der nicht Root ist (pma). Für diesen User muß eine Extra-Datenbank angelegt werden damit das Arbeiten mit "phpmyadmin" korrekt erfolgen kann. Dieser User muß dann auch noch in der config.inc.php von "phpmyadmin" als ['controluser'] = 'pma' mit Passwort angegeben werden und darf nur Leserecht für alle Datenbanken erhalten.

Dann schau dir auch noch nachträglich in Ruhe deine php.ini an ob da vielleicht Funktionen aktiviert sind die dein Webserver nicht unterstützen kann.

Brauchst du vielleicht auch einen Encoder wie ZEND-Optimizer den du noch nicht installiert hast?

Bei 99% aller nichtfunktionierenden Machenschaften ist die Installation und Konfiguration von PHP, MySQl und Apache schuld. Wahrscheinlich hast du dir auch MySQL 4 installiert ohne vorher deine Version von PHP auf 4.3.4 zu updaten. Die neuesten Packagen aller Tools sind alle aufeinander abgestimmt. Daher muß man immer die neueste installieren wenn man nicht selbst kompilieren will.

Solltest dir also noch mal die Mühe machen und nacheinander die neuesten Module laden von: http://www.entropy.ch/

Damit erspart man sich eventuell eine Menge Ärger und Kleinarbeit.

Also ich nutze PHP mit vorgefertigten Scripts, CMS u.s.w. und alles funktioniert ohne Probleme.

MfG Rüdiger
 
Zuletzt bearbeitet:
und alles funktioniert ohne Probleme

Super. Da bei 409 mindestens phpMyAdmin läuft, wird es wohl
kaum ein AMP Problem sein. Wirf doch auch mal einen Blick auf
den Code, sechs Augen sehen ja mehr als vier. Ich knobel noch.

:)
 
Mit Code bin ich nicht so vertraut, ich vertraue da einfach auf die Programmierer.

Da ja unserer Freund die Scripts auch nicht selbst geschrieben hat, sondern diese auch nur irgendwo heruntergeladen hat wie er sagte, denke ich mal daß der Code in Ordnung ist wenn er keine Änderungen vorgenommen hat.

Ich habe auch einige Zeit dazu gebraucht meine Konfiguration meiner Tools so zu ermöglichen wie sie jetzt ist. Und da läuft wirklich alles drauf was ich mir bisher installiert habe. Wenn es dann und wann noch mal zu Problemen kommt, sind es meist falsch gesetzte Chmods oder Dateien die fehlen und manuell angelegt werden müssen. Das erfährt man dann aber rechtzeitig noch in den Readme's oder Installationsanweisungen.

Eigene PHP-Scripts habe ich bisher nicht geschrieben und auch nicht versucht.
 
Original geschrieben von Hairfeti

Da ja unserer Freund die Scripts auch nicht selbst geschrieben hat, sondern diese auch nur irgendwo heruntergeladen hat wie er sagte, denke ich mal daß der Code in Ordnung ist wenn er keine Änderungen vorgenommen hat.
&nbsp;


Den Code habe ich von meinem eigenen Webserver heruntergeladen ;)

Ich schreibe generell und komplett alle Codes selbst, dann kann ich mir sicher sein, das diese auch funktionieren und weiß im Problemfall wo die Fehler liegen.

Ich hasse vorgefertigte Scripts und CMS bzw. Adminpanels!

Es wird definitiv nicht an dem Script liegen, daher könnt ihr ruhig aufhören zu suchen.

Es sind Scripts die ich noch unter OS9 programmiert habe und auf dem Server online getestet habe. Da ich nun X nutze habe ich seit einiger Zeit das Vergnügen auch offline testen zu können. Und eben hier funktionieren die Schreibrechte nicht, die online aus meinem Webserver korrekt laufen.

Also ist es definitiv kein Scriptfehler!!!

Es liegt an der Konfiguration.

Ich habe den standard Apache von 10.3, die neueste 4er mySql Version und PhPmyAdmin 2.5.4.

Meine php.ini ist hier beigefügt, ich hab nur die endung zip angehängt, ist aber nicht gepackt :)

liebe grüße

yves

(phpmyadmin ist korrekt konfiguriert, der kann ja alles(lesen, schreiben)!)
 
Wie kriege ich die Dateien/Verzeichnisse auf chmod 777, bzw. 666 ?

ich kenn das nur via ftp-client mit flags setzen.
ist das lokal einfach appel+i und dann permissions checken?

php habe ich übrigens auch die neueste version.

also kann es ja nicht an der komposition der module liegen denke ich.

standard 10.3 build-in apache, latest stable php, latest stable mysql !

(und latest stable phpmyadmin, aber das ist ja egal)


ich bin auf eure tips gespannt :)
liebe grüße

409
 
Eine ganz blöde Frage…

Welche Login Daten gebe ich dann in Transmit ein?

localhost? oder pfad zu den htdocs?

user?
pass?

oder muss ich erst einen ftp-server aktivieren/einrichten?

liebe grüße coffee

(sorry, ich mach das sonst immer online, ich komm ja von os9 ;) )
 
Original geschrieben von 409coffeemaker
&nbsp;


Den Code habe ich von meinem eigenen Webserver heruntergeladen ;)

Ich schreibe generell und komplett alle Codes selbst, dann kann ich mir sicher sein, das diese auch funktionieren und weiß im Problemfall wo die Fehler liegen.
&nbsp;

Dann muß ich mich entschuldigen, aber bedenke daß PHP eine nicht ganz leichte Script-Sprache ist und ständig Änderungen unterzogen wird die meist nur professionellen Entwicklern bekannt sind.

Du könntest also deine Scripts für eine Version von PHP programmiert haben die jetzt gar nicht mehr aktuell ist. Das dazu, weil du gesagt hast du hältst nichts von CMS-Systemen. Genau diese sind alle immer auf dem neuesten Stand da sie ständig weiter entwickelt, verbessert und für die neueste Version von PHP getestet werden.

Aber zum Chmoden:

Das kannst du aus dem Terminal heraus tun. Dateien mit "chmod 777 /Datei" und Ordner "chmod -R 777 /Ordner". Ganze Verzeichnisse mit Inhalt mit "chmod -R 777 /Ordner/*"

Um User und Gruppe zu ändern das Gleiche mit dem Befehl "chown".

Beispiel: User olaf und die Gruppe staff

chown olaf:staff /Datei
chown -R olaf:staff /Ordner
chown -R olaf:staff /Ordner/*

MfG
 
Super Danke :)

Ich hab den Transmit grad angworfen, bei Sharing dann FTP Access aktivieren… wie simpel ;) Hätte ich gar nicht zu fragen brauchen.

Ich probier die Scripts mal aus wenn ich die richtigen Flags gesetzt habe.

Gruß Coffee
 
Ok, ich hab im Input ordner, indem die ganzen Scripts zum updaten liegen alle flags korrekt gesetzt (777), zur sicherheit direkt für alle dateien.

nix geht tut sich :(
 
Was ich noch vermute:

Deine php.ini im Verzeichnis /etc heißt php.ini.default ...

Um als Konfigurationsdatei von PHP beim Start eingelesen zu werden, muß sie aber php.ini heißen. Das bedeutet du mußt sie erst in php.ini umbenennen oder von der php.ini.default eine Kopie "php.ini" in das Verzeichnis /etc legen.

Das kann man auch am schnellsten mit dem Terminal erledigen:

cp /etc/php.ini.default /etc/php.ini

Und jetzt kannst du die php.ini bearbeiten und deine Einstellungen kommentieren oder auskommentieren (#)

pico /etc/php.ini

... und abspeichern ...

Alle Dateien im Verzeichnis /etc haben System-Rechte, sind also nur als "sudo" oder "ROOT" beschreibbar.

Die PHP-Version 4.3.3 die mit Mac OS X 10.3 Panther ausgeliefert wurde ist aber anscheinend so kompiliert worden, daß sie nur mit Standardwerten genutzt werden kann. Sie wird also den Pfad zur php.ini auch bei dir nicht finden wie es bei mir auch war. Daher habe ich mir die Version 4.3.4 von PHP installiert.

Nach dieser Installation liegt PHP im Verzeichnis /usr/local. Und dort im Verzeichnis /usr/local/lib liegt die php.ini und sie wird auch beim Start des Webservers berücksichtigt.

Überprüfen kannst du das bei dir mit einer Info.php, aber ich denke das weißt du ja wie man die erstellt, oder?
 
Ok das habe ich gemacht.

Aber immer noch keine Besserung.

Halten wir fest:


php.ini (nun)korrekt
php scripts auch korrekt

:(

Gibt es vielleicht noch etwas bei dem Mysql Server zu konfigurieren?

Liebe Grüße

Coffee
 
register_globals = Off
auf
register_globals = On stellen


Jetzt geht es.

Wie doof :(

Danke trotzdem allen :)
 
Zurück
Oben Unten