phpbar.de logo

Mailinglisten-Archive

[php] Can't create IP socket - =?iso-8859-1?Q?Erg=E4nzungen?=

[php] Can't create IP socket - =?iso-8859-1?Q?Erg=E4nzungen?=

Ulf Wendel ulf_(at)_redsys.de
Mon, 06 Mar 2000 12:16:04 +0000


Hallo,

gelegentlich blitzen MySQL Fehlermeldugen unter Windowssystemen auf den
verschiedenen PHP Listen auf, die oft nur mit einem unvollständigen
WinSocket Hinweis pariert werden. Da ich selbst Opfer einer dieser
Meldungen bin - diesmal unter NT - habe ich mich auf die Suche begeben.

Verschiedene MySQL/PHP Kombinationen liefern unter Windows (NT, 95, 98)
eine der folgenden Fehlermeldungen:

mysql_connect()  -> MySQL Connection Failed: Can't create IP socket
(10106)
mysql_pconnect() -> Can't create IP socket (10106)

Diese Texte entstammen direkt der MySQL API, wie man an einem Code
Snippet aus dem PHP Source (functions/mysql.c - hier Version 3.0.14)
sehen kann:

if MYSQL_VERSION_ID > 32199 /* this lets us set the port number */
  mysql_init(mysql);
  if
(mysql_real_connect(mysql,host,user,passwd,NULL,port,socket,0)==NULL) {
#else
  if (mysql_connect(mysql,host,user,passwd)==NULL) {
#endif
    php3_error(E_WARNING,"MySQL Connection Failed:
%s\n",mysql_error(mysql));
    efree(hashed_details);
    efree(mysql);
    RETURN_FALSE;
  }

MySQL stolpert an dieser Stelle über WinSocket Probleme. Diese haben mit
hoher Wahrscheinlichkeit eine der folgenden Ursachen:

- Versionskonflikte
- Unzureichende Benutzerrechte
(- fehlerhafte oder fehlende TCP/IP Dienste)

+++ bekannte Versionskonflikte

MySQL benötigt eine aktuelle WinSocket Variante. Win95 und NT kennen von
Haus aus nur ältere Versionen (V1.1). Win95 benötigt deshalb ein Update
(aktuell ist V2.2), NT zumindest Service Pack 3. Im Archiv der
englischen Liste hat Werner Stuerenburg hilfreiche Links verwewigt:
http://marc.theaimsgroup.com/?l=php3-general&m=93453273914198&w=2

+++ Ergänzung

Mein NT war etwas hartnäckiger. Trotz SP6a und WinSocket 2.0 streikte
es. Eine Rückfrage bei den MySQL Developern ergab, daß fehlende
Benutzerrechte ebenfalls die Meldung verursachen können. Die Theorie
wird gestützt durch die Beobachtung, daß PHP keine Probleme hat sich an
MySQL zu connecten, wenn es auf der Kommandozeile aufgerufen wird,
jedoch als CGI scheitert.

c:\php3.0.15> php -q test.php3 
mit test.php3: <?php echo mysql_connect("localhost:3306", "test", "");
?>
---> 1

Im Browser http://localhost/test.php3 als CGI:
---> Can't create IP socket (irgendeine Nummer) 

Bei mir streikt der Roxen, während der Apache problemlos seinen Dienst
verrichtet.

+++ Fragen

Weiß jemand ob man den Roxen unter NT überreden kann im CGI Modul unter
NT die Option "Run script as..." freizugeben. Hierzu müßte man etwas
equivalentes zu "start as root" machen, also den Roxen mit Administrator
Rechten starten. Wie wird dies gemacht?

Danke!

Ulf


php::bar PHP Wiki   -   Listenarchive