Thema: Delphi CGI <-> MySQL Problem

Einzelnen Beitrag anzeigen

Benutzerbild von Shin-Raziel
Shin-Raziel

Registriert seit: 24. Nov 2005
Ort: Kaiserslautern
3 Beiträge
 
Delphi 7 Enterprise
 
#1

CGI <-> MySQL Problem

  Alt 2. Apr 2007, 18:03
Datenbank: MySQL • Version: 5.0 • Zugriff über: Mittels PHP-Scripten
Hallo allerseits,

Mein Problem liegt in einem Aufruf von PHP als CGI. Meine Delphi-Applikation ruft die php-cgi.exe auf und übergibt ihr in einem String die ensprechenden Umgebungsvariablen, also Hostname, QueryString, usw.

Das Funktioniert alles ganz wunderbar. Nur streikt dann die TCP/IP Verbindung zu MySQL. PHP kann nicht auf die Datenbank zugreifen. Rufe ich den PHP Interpreter als CLI auf, so funktioniert alles, wie es soll, und die Datenbankverbindung haut hin. Aber ich will die CGI, und nicht die CLI

Das ganze wird über GetConsoleOutput realisiert (denke mal, dass diese Funktion soweit klar ist, da es viele Beispiele dafür im Netz gibt).
Delphi-Quellcode:
//...
var
CallPHP, EnvStr: string;
OutList, ErrList: TStringList;
//...
// CallPHP wird mit einem Wert belegt, der aus der Config-INI des Programms gelesen wird.
// QueryStr wird dynamisch erzeugt. Beim Testen wurde der soweit einwandfrei an PHP übergeben und ausgewertet.
//...
  EnvStr :=
  'SERVER_SOFTWARE='   + ExtractFileName(ParamStr(0)) + #0 +
  'REDIRECT_STATUS='   + 'ALLOWED' + #0 +
  'PATH_TRANSLATED='   + filePath + #0 +
  'QUERY_STRING='      + QueryStr + #0 +
  'SERVER_NAME='       + JvComputerInfoEx1.Identification.LocalComputerName + #0 +
  'GATEWAY_INTERFACE=' + 'CGI/1.0' + #0 +
  'SERVER_PROTOCOL='   + '1.1' + #0 +
  'SERVER_PORT='       + '80' + #0 +
  'REQUEST_METHOD='    + Method + #0 +
  'SCRIPT_NAME='       + ExtractFileName(filePath) + #0 +
  'REMOTE_ADDR='       + JvComputerInfoEx1.Identification.IPAddress + #0 +
  'HTTP_ACCEPT='       + 'text/html' + #0;
//...
  GetConsoleOutput(CallPHP, EnvStr, OutList, ErrList);
//...
Es funktioniert alles von Delphi aus reibungslos. Aber PHP bekommt keine Verbindung zur MySQL.
Ich bekommen immer nur die Fehlermeldung

Can't create TCP/IP socket (10106)


Ich habe nun schon herumprobiert, die Werte in der php.ini bei der Sektion [mysql] zu ändern, ohne Erfolg, Websuchen bringen mir den Fehler nur in Verbindung mit diversen kleinen Webserver-Projekten, doch wirklich einen Ansatz, was es sein könnte, hab ich noch nicht.

Fehlt da irgendetwas im EnvStr, was noch mitübergeben werden muss, wovon ich nun nichts weiß ?
Oder liegt der Fehler irgendwo in meinen PHP-Einstellungen ?

Schonmal vielen Dank im Voraus.
  Mit Zitat antworten Zitat