XAMPP für Windows und die INI-Dateien

Was sollte alles noch in XAMPP rein? Was kommt definitiv bald? Was kommt so bald wie möglich, dauert nur noch etwas? Was kommt wahrscheinlich nicht rein?

XAMPP für Windows und die INI-Dateien

Postby Wiedmann » 14. April 2004 17:38

Hallo XAMPP-Team,

auf Grund der Fragen und teilweise Probleme die hier gepostet werden,, hätte ich mal eine Anregung. und manche Probleme zu vermeiden.

Liefert doch nur die zwei Dateien "php.ini" und "my.ini" mit und verschiebt die bei der Installation ins %SYSTEMROOT%-Verzeichnis.

So ist bei Problemen wenigsten klar welche Datei aktuell benutzt wird, und die Anwender wissen welche sie ändern müssen. Die Dateien im %SYSTEMROOT% werden ja in jedem Fall benutzt. (PHP-Modul, CGI oder CLI).

Gerade auch bei MySQL ist das so eine Sache:
- Wenn WinMySQLAdmin aufgerufen wird, wird die my.ini eh erstellt und die my.cnf umbenannt wenn vorhanden.
- ruft man MySQL über die Batchdatei auf gelten wieder andere Einstellungen, weil da eine my.cnf im bin-Verzeichnis von euch vorgeschrieben wird.
-Rufe ich MySQL als Dienst oder über mysqld.exe auf ist wieder die C:\my.cnf oder %SYSTEMROOT%\my.ini gültig.

Persönlich finde ich auch, dass man mit den Vorgabewerten gut leben kann und somit zwei Einstellungen in der my.ini langen (dann hat man das selbe wie wenn man die mysqld.exe ohne vorhandene my.cnf/ini aufruft):
Code: Select all
[mysqld]
basedir=C:\xampp\mysql
datadir=C:\xampp\mysql\data


erweitern kann man das ja immer noch anhand der Beispieldateien, wenn man unbedingt was ändern will.

Nur mal so als Anregung. Auch wenn damit zwei Dateien ausserhalb von xampp sind, was man aber eh nicht immer verhindern kann. Und man nimmt so auch Rücksicht auf die Gegebenheiten von Windows.
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby nemesis » 17. April 2004 13:57

Hallo Wiedmann,

wenn man die *ini Datein ins Windows-Verzeichnis beim installieren verschiebt, hat man wieder das Problem mit unterschiedlichen Versionen der Software.
Was ist wenn jemand verschiedene Versionen von PHP oder MySQL einsetzten will/muss?

mysql_installservice.bat wrote::WinNT
echo Creating an example config ...
copy bin\my.nt-cnf my.cnf
echo Installing MySQL as an Service
bin\mysqld-nt --install MySQL_4.0.18-nt --defaults-file=%cd%\bin\my.cnf
REM There are no more need to use my.cnf under C:\ :)


Die uninstall dazu:

mysql_uninstallservice.bat wrote::WinNT
echo now stopping MySQL when it runs
net stop MySQL_4.0.18-nt
echo Uninstalling MySql-Service
bin\mysqld-nt --remove MySQL_4.0.18-nt



Analog dazu läßt sich auch Apache unter verschiedenen Namen als Dienst installieren.


Gruß, nemesis
Last edited by nemesis on 19. April 2004 12:47, edited 1 time in total.
Ubuntu 8.04 | SMP P3 1.4 GHz | 6 GByte RegECC | 74 GByte Seagate 15k5 system | 3Ware 9550SXU-4LP with 4x 500 GByte Seagate ES2 Raid 10 data | StoreCase DE400 | PX-230A | Intel Pro/1000MT Dual PCI-X
User avatar
nemesis
AF Moderator
 
Posts: 999
Joined: 29. December 2002 13:14
Location: Ingolstadt

Postby Wiedmann » 17. April 2004 15:24

Was ist wenn jemand verschiedene Versionen von PHP oder MySQL einsetzten will/muss?

Geb ich dir grunsätzlich recht. Nur wird so jemand eh nicht umhinkommen sich mit den Parametern der Programme zu befassen. (zumindest sollte er das).

Wie das geht, ist dir klar und mir. Viele (Anfänger) sehen sich aber mit mehreren gleichlautenden Dateien konfrontiert und wissen dann einfach nicht in welcher sie Änderungen tätigen müssen. Oder welche wann und warum genommen wird.

Nimm mal die my.cnf:
Bei Installation als Dienst setzt ihr voraus das der Benutzer eine c:\my.cnf erstellt, die dann Winmysqladmin wieder zu %systemroot%\my.ini ändert. Macht der Benutzer jetzt da eine Änderung, und startet mysql, warum auch immer, mal über die Kommandozeile nehmt ihr die "mysql\bin\my.cnf" und die Änderungen tun aus Anfängersicht "plötzlich" nicht mehr.

Ein Kompromis wäre, für den Dienst auch "mysql\bin\my.cnf" zu nehmen. Bleibt immer noch Winmysqladmin was wieder eine my.ini erstellt....

Und bei PHP dann die php.ini im xampp\php Verzeichnis zu lassen und diese in der httpd.conf per PHPInidir vorzugeben. Dann benutzt zumindest das Modul und die CGI-Version die selbe Datei die dann nur einmal vorhanden ist. Bleibt noch die CLI-Version die so keine INI findet.

Nochmal:
Wie man Konfigurationsdateien per Parameter oder setzten von Umgebungsvariablen vorschreibt ist mir genauso wie dir klar.

Nur vielen die mit dem XAMPP in Berührung kommen halt nicht.

Der wo mehrere MYsql/Apache/PHP... - Versionen fahren will, sollte wie gesagt auch wissen wie er diese Anpassungen vornehmen muss. Im Falle von MySQL als Dienst bleibt im dazu ja nichts anderes übrig (bei der bisherigen Install-Routine).
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby nemesis » 17. April 2004 20:01

Wiedmann wrote:Nimm mal die my.cnf:
Bei Installation als Dienst setzt ihr voraus das der Benutzer eine c:\my.cnf erstellt, die dann Winmysqladmin wieder zu %systemroot%\my.ini ändert. Macht der Benutzer jetzt da eine Änderung, und startet mysql, warum auch immer, mal über die Kommandozeile nehmt ihr die "mysql\bin\my.cnf" und die Änderungen tun aus Anfängersicht "plötzlich" nicht mehr.

Ein Kompromis wäre, für den Dienst auch "mysql\bin\my.cnf" zu nehmen. Bleibt immer noch Winmysqladmin was wieder eine my.ini erstellt....

Und bei PHP dann die php.ini im xampp\php Verzeichnis zu lassen und diese in der httpd.conf per PHPInidir vorzugeben. Dann benutzt zumindest das Modul und die CGI-Version die selbe Datei die dann nur einmal vorhanden ist. Bleibt noch die CLI-Version die so keine INI findet.

Nochmal:
Wie man Konfigurationsdateien per Parameter oder setzten von Umgebungsvariablen vorschreibt ist mir genauso wie dir klar.

Nur vielen die mit dem XAMPP in Berührung kommen halt nicht.

Der wo mehrere MYsql/Apache/PHP... - Versionen fahren will, sollte wie gesagt auch wissen wie er diese Anpassungen vornehmen muss. Im Falle von MySQL als Dienst bleibt im dazu ja nichts anderes übrig (bei der bisherigen Install-Routine).


Ok, kann man nun die anderen mysql install/uninstall batches so benutzten, das keiner mehr unter C:\ rumspielen muss? Ich glaube mal du bist auch dafür.
Zu dem Problem mit Winmysqladmin... am liebsten würde ich es ja gleich ganz aus Xampp heraus lassen, da es wirklich viel mehr User iritiert als das es irgend einen Nutzten hätte...
Wegen PHP, das mit dem festlegen der ini per httpd.conf ist ne gute Idee, danke!

Gruß, nemesis
Ubuntu 8.04 | SMP P3 1.4 GHz | 6 GByte RegECC | 74 GByte Seagate 15k5 system | 3Ware 9550SXU-4LP with 4x 500 GByte Seagate ES2 Raid 10 data | StoreCase DE400 | PX-230A | Intel Pro/1000MT Dual PCI-X
User avatar
nemesis
AF Moderator
 
Posts: 999
Joined: 29. December 2002 13:14
Location: Ingolstadt

Postby kvo » 20. April 2004 14:43

Hallo Wiedmann, hallo Nemesis,

ja das mit der my.cnf (my.ini) vorher und wohin ... Eine fast unendliche Geschichte. Nach eurer Analyse ist tatsächtlich der von Nemesis beschrittene Weg der schönste (alles im xampp) und transparenste (nur eine Configdatei) und sollte auch demnächst XAMPP aufgenommen werden. Zwei kleine Fragen|Probleme bleiben:

Jemand hat ein %windir%\my.ini. Kann diese dann die my.cnf (Dienst nach Nemesis) blockieren? (Muss ich auch mal testen). Das betrifft vorallendingen jene Menschen, die MySQL installiert hatten und nun auf XAMPP umsteigen. Mein Vorschlag: Über die service_install Batch Datei prüfen, ob eine vorhanden ist, wenn ja, die als my.ini.old kopieren und die my.ini löschen. Die service_uninstall Batch schaut dann noch zusätzlich nach my.ini.old und stellt nach dem eben beschriebene Prinzip die Grundeinstellung wieder her. Das selbe sollt man dann u.U. auch wieder für ein mögliche c:\my.cnf machen, um auf der sicheren Seiten zu sein.

Problem winmysqladmin: Im Prinzip könnte die Batch zusätzlich ein Kopie der .\xampp\mysql\bin\my.cnf als %windir%\my.ini kopieren. Das löst aber leider nicht das Problem der zwei INI Dateien, die es dann zu pflegen gilt. Besser wäre es, man könnte in der "winmysqladmin.cnt"ein Default File festlegen. Wir sollten also mal schauen, ob es hier Möglichkeiten gibt. Für die "mysql_installservice.bat" könnte man also die Summe der bisherigen Vorschläge so zusammenfassen!

Vorschlag:

Code: Select all
@echo off

if "%OS%" == "Windows_NT" goto WinNT

:Win9X
echo Don't be stupid! Win9x don't know Services
echo Please use mysql_start.bat instead
goto exit

:WinNT
if exist %windir%\my.ini GOTO CopyINI
if exist c:\my.cnf GOTO CopyCNF
if not exist %windir%\my.ini GOTO MainNT
if not exist c:\my.cnf GOTO MainNT

:CopyINI
echo Safe the %windir%\my.ini as %windir%\my.ini.old!
copy %windir%\my.ini /-y %windir%\my.ini.old
del %windir%\my.ini
GOTO WinNT

:CopyCNF
echo Safe the c:\my.cnf as c:\my.cnf.old!
copy c:\my.cnf /-y c:\my.cnf.old
del c:\my.cnf
GOTO WinNT

:MainNT
echo Installing MySQL as an Service
bin\mysqld-nt --install MySQL_4.0.18-nt --defaults-file=%cd%\bin\my.cnf
copy %cd%\bin\my.cnf /-y %windir%\my.ini
echo Try to start the MySQL deamon as service ...
net start MySQL_4.0.18-nt

:exit
pause


Äquivalent wäre dann die "uninstall_service.bat". Im XAMPP selbst gäbe es dann nur noch die "my.cnf". Das winmysqladmin Problem mit der my.ini ist zwar noch nicht entgültig gelöst, winmysqladmin hätte aber zumindestens zu Beginn die selbe INI. Nein, winmysqladmin nehme ich nicht raus, das gibt nur Ärger! :P
User avatar
kvo
Apache Friends
 
Posts: 184
Joined: 24. January 2003 14:03
Location: Berlin

Postby Wiedmann » 21. April 2004 13:46

Jemand hat ein %windir%\my.ini. Kann diese dann die my.cnf (Dienst nach Nemesis) blockieren?(Muss ich auch mal testen).

Nein. Wird eine Kongigurationsdatei über "--defaults-file=#" vorgegeben wird ausschliesslich diese benutzt.

Problem winmysqladmin: Im Prinzip könnte die Batch zusätzlich ein Kopie der .\xampp\mysql\bin\my.cnf als %windir%\my.ini kopieren. Das löst aber leider nicht das Problem der zwei INI Dateien, die es dann zu pflegen gilt. Besser wäre es, man könnte in der "winmysqladmin.cnt"ein Default File festlegen. Wir sollten also mal schauen, ob es hier Möglichkeiten gibt. Für die "mysql_installservice.bat" könnte man also die Summe der bisherigen Vorschläge so zusammenfassen!

"winmysqladmin.cnt" ist die Indexdatei für die Hilfe.
Damit WinMySQLAdmin komplett funktioniert, muß der Server mit der Konfigurationsdatei %systemroot%\my.ini gestartet werden. Der Dienst muß auch MySQL heißen.

Code: Select all
:WinNT
if exist %windir%\my.ini GOTO CopyINI
if exist c:\my.cnf GOTO CopyCNF
if not exist %windir%\my.ini GOTO MainNT
if not exist c:\my.cnf GOTO MainNT


Die letzten zwei Zeilen kannst du dir sparen. Da kannst du gleich ein" GOTO MainNT" hinmachen. Oder mußt du beide "if not x and not y then" testen und fügst danach noch ein "GOTO Fehler" hinten dran. Den ":Fehler" - Block müsstest du dann noch einrichten.

Code: Select all
bin\mysqld-nt --install MySQL_4.0.18-nt --defaults-file=%cd%\bin\my.cnf
copy %cd%\bin\my.cnf /-y %windir%\my.ini
echo Try to start the MySQL deamon as service ...
net start MySQL_4.0.18-nt


Wenn du den Dienst wirklich "MySQL_4.0.18-nt" nennen willst, mußt du das auch in der my.ini/my.cnf so angeben.

Das winmysqladmin Problem mit der my.ini ist zwar noch nicht entgültig gelöst, winmysqladmin hätte aber zumindestens zu Beginn die selbe INI. Nein, winmysqladmin nehme ich nicht raus, das gibt nur Ärger! :P

Richtig. Sobald du WinMySQLAdmin einsetzt, muß du die Datei "%systemroot%\my.ini" nehmen. Da bringt es dir auch nichts wo anders eine weiter einzurichten. Es muß diese eine sein.
Es wird schon seinen Grund haben, warum in der Quelldistribution zwar Teile vom WinMySQLAdmin dabei sind, aber nicht soweit, das man ihn sich kompilieren könnte. Ist mir aufgefallen als ich mal schauen wollte ob man nicht gleich im Quelltext den Ort von der My.ini anpassen könnte. Nur ist der wohl wie gesagt gar nicht zum Kompilieren vorgesehen.

Solltest du jetzt doch auf den WinMySQLAdmin verzichten, und eine Konfig-Datei in /xampp/mysql/bin nehmen, dann nenne die auch dort "my.ini". ".cnf"-Dateien verhalten sich so seltsam im Explorer. Und bei Vorgabe mit "--defaults-file=#" kann die Datei ja eh sonst wie heissen.
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby kvo » 24. April 2004 20:19

Ja Danke Wiedmann!

Ich werde eure und auch dein Vorschlag in die nächste Release einbauen. Tatsächlich wäre eine "my.ini" (keine my.cnf oder so mehr) das Günstigste. Die Batch wird dann so, wir wir hier gemeinsam ausgeabeitet haben.

Das "winmysqladmin" keine *.dsp hat ist wirklich ärgerlich. Die Pfade in den Code Dateien zu verändern, wäre wohl ohne großen Aufwand möglich gewesen. Die "winmysqladmin.exe" selber zu kompilieren scheint aber bei MySQL nicht vorgesehen zu sein. Hmm... :cry:
User avatar
kvo
Apache Friends
 
Posts: 184
Joined: 24. January 2003 14:03
Location: Berlin

Postby Wiedmann » 16. September 2004 11:24

Hallöchen allerseits,
da wohl bald wieder eine neue XAMPP-Version ins Haus steht, muss ich doch mal wieder diesen alten Threat hervorholen und meinen "Senf" dazugeben ;-)

my.cnf/ini
a)
Da ja jetzt hauptsächlich die Konfig-Datei im Verzeichnis "\xampp\mysql\bin\" benutzt wird, wäre es nicht schlecht auch diese "my.ini" zu nennen --> manche haben doch noch ein Probelm eine ".cnf"-datei zu öffnen...

b)
In der my.ini/cnf gibt es die Einträge (2x):
socket = C:/xampp/mysql/mysql.sock

Man sollte diese auskommentieren ("#") oder durch folgendes ersetzen:
socket = MySQL

c)
Man könnte sich auch überlegen, gleich von vorneherein ein:
enable-named-pipe
in den [mysqld]-Abschnitt zu schreiben. Ich denke ein Win9x/Me dürfte sich daran nicht stören (kann das gerade nicht testen).

phpMyAdmin
d)
basierend auf Punkt b und c könnte man dann in der "config.inc.php" von phpMyAdmin folgende zwei Variablen leer lassen (sollte so in jeder Umgebung funktionieren):
$cfg['Servers'][$i]['host'] = '';
$cfg['Servers'][$i]['connect_type'] = '';

e)
Sollte man die Datei evtl. im DOS-Format haben (\r\n).

f)
bei phpMyAdmin an eine aktuelle "config.inc.php" denken.

mysql_installservice.bat
g)
anstatt diese 2 Zeilen:
if not exist %windir%\my.ini GOTO MainNT
if not exist c:\my.cnf GOTO MainNT

könnte man gleich:
GOTO MainNT
schreiben. Zumindest die 2.Zeile dürfte ja im Moment so nie ausgeführt werden.

h)
in ":CopyINI" und ":CopyCNF" könnte man "copy/del" durch "move" ersetzen.

i)
Windows NT4 kennt keinen Parameter "/-y" beim copy-Befehl.
Windows NT4 kennte keine Systemvariable "%cd%".

MySQL
j)
der Benutzer "pma" (und "testuser") hat zuviele Rechte.

k)
vielleicht schon von vorneherein weniger User anlegen:
"Jeder@localhost" und "Jeder@%" weg.
Beim "root@..." nur einer der Beiden

l)
vielleicht könnet man von den Benutzern "testuser" bei MySQL und "newuser" bei FileZilla/Mercury den Namen angleichen.

NT4/PHP
m)
zusätzlich zu Punkt h sollte man noch irgendwo anmerken, dass man unter NT4 PHP in der Version 4 laufen lassen sollte (merkt man spätestens wenn man dort phpMyAdmin mit PHP5 benutzt).

Hmm, jetzt fällt mir gerade nichts mehr ein... *g*

NACHTRAG zu Punkt c
"mysqld.exe" stört sich doch am "enable-named-pipe". Dann müsste man also je nach Inhalt von "%OS%" den "mysqld.exe" ohne oder den "mysqld-nt.exe" mit diese Option starten/als Dienst einrichten.
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Dreibuchstaben » 24. September 2004 20:58

Den Wünschen von Wiedmann kann ich nur zustimmen. Gerade weil ich immer wieder danach gefragt werde (z.B. *.cnf editieren).

Daneben gab es noch folgende Probleme:
Einsatz von PHPdocumentor - liefert fehlerhaftes Ergebnis
Aktivierung von Innodb lt. Manual - dort fehlerhaft beschrieben - es muß die Zeile "skip-innodb" auskommentiert und die anschließenden einkommentiert werden.

Und in der Wunschliste:
Eine aktuelle Wikiversion in der Installation.
Dreibuchstaben
 
Posts: 3
Joined: 13. March 2004 00:43

Postby nemesis » 25. September 2004 15:37

Dreibuchstaben wrote:Und in der Wunschliste:
Eine aktuelle Wikiversion in der Installation.

Was für ein Wiki-System? *g*
Ubuntu 8.04 | SMP P3 1.4 GHz | 6 GByte RegECC | 74 GByte Seagate 15k5 system | 3Ware 9550SXU-4LP with 4x 500 GByte Seagate ES2 Raid 10 data | StoreCase DE400 | PX-230A | Intel Pro/1000MT Dual PCI-X
User avatar
nemesis
AF Moderator
 
Posts: 999
Joined: 29. December 2002 13:14
Location: Ingolstadt

Postby Dreibuchstaben » 25. September 2004 18:09

http://de.wikipedia.org/wiki/Hauptseite

http://www.mediawiki.org/

Wird gern für eigene Erklärungen / Designs verwendet - z.B. bei Rollenspielern im Weltenbau
Dreibuchstaben
 
Posts: 3
Joined: 13. March 2004 00:43

Postby Kristian Marcroft » 26. September 2004 21:23

Hi,

und was würde das rechtfertigen?
Wieso haben wir bisher kein Forum in XAMPP?
Oder gleich mit Confixx ausgeliefert?

Diese Systeme sind so einfach zu installieren...
und jeder will was anderes...

Somit haben wir uns entschieden _keine_ Scripts, kein Forum und auch kein Wiki mit in XAMPP zu nehmen....

Sorry...

So long
KriS
User avatar
Kristian Marcroft
AF Moderator
 
Posts: 2962
Joined: 03. January 2003 12:08
Location: Diedorf


Return to XAMPP-Wunschzettel

Who is online

Users browsing this forum: No registered users and 1 guest