Форум

/ домой \ \ темы /



Тема: Can`t create TCP/IP socket (10106)

02/06/2007 20:50 Devgru:
Ошибка ((Can`t create TCP/IP socket (10106))) пишется в код страницы, когда я пытаюсь из файла, который выбран в качестве файла ошибки (в настройках сервера), вызвать команды mysql_connect и mysql_select_db.
В качестве PHP-интерпритатора использую php-win.exe от PHP 5.2.2. (с версией php-cgi всё аналогично)
При использовании php5isapi.dll выдаётся
“Fatal error: Call to undefined function mysql_connect() in E:\X-Docs\HTML\1\error.php on line 19”
Макс, в Вашем сервере нельзя вызвать функции mysql из файла ошибки в принципе или это я где-то ошибся?
02/06/2007 21:46 Max:
Можно, почему нельзя, -- файл ошибки обрабатывается точно также как любая другая страница, а на возможность интерпретатора использовать определенные функции сервер принципиально повлиять не может.

Использовать нужно php-cgi.exe или php5isapi.dll

Возможно у вас не верный адрес SQL сервера, а при использование php5isapi.dll в настройках PHP не прописан модуль для mysql. Может на компьютере несколько php.ini файлов, и в разных случаях используются разные.

Или не нравятся сообщения об ошибках? Все сообщения об ошибках CGI сервер выводит, и это должно помочь вэб-мастеру их исправить. В настройках PHP можно отключить их вывод.
02/06/2007 22:14 Devgru:
Нет, Макс, сообщения-то нравятся :-) Они милые…

Файл ошибки лежит в (адрес корня)\error.php
Он осуществляет эти команды - и падает :-)
Причём если просто вызвать этот файл (localhost/error.php) — доступ к базе есть, команды срабатывают.
Аналогично и с любым другим файлом — команды работают.
А если я напишу localhost/afsafasf (разумеется, несуществующий адрес) то начало страницы будет таким же, а вот доступа к базе — уже не будет. Выдаётся та же ошибка.
Я проверил несколько раз. Уже не знаю что и делать.
02/06/2007 22:20 Devgru:

03/06/2007 01:42 Devgru:
Ещё раз всё перепроверил, перешёл на php-cgi.exe окончательно.
Всё равно, ошибка есть. Исключительно при попытке обращения к несуществующему файлу/каталогу.
Что не так может быть?
03/06/2007 02:02 Max:
Отличие при запуске файла ошибки только в том, что есть переменная окружения PATH_INFO в которой лежит исходный запрос.
03/06/2007 03:30 Devgru:
Изображаю всё что есть.
Содержимое error.php

<?php
echo(`<html>`);
$db = mysql_connect(`localhost`,`root`,`!qualify`);
foreach($_SERVER as $v=>$a){echo ("$v - $a <br />");};
echo(`</html>`);
?>

Результат вызова localhost/error.php
(devgru.by.ru/res1.txt)
(devgru.by.ru/res1.htm)
Файл весит 2769 байт

Результат вызова localhost/er
(devgru.by.ru/res2.txt)
(devgru.by.ru/res2.htm)
Файл весит 665 байт

Меня, если честно, эта ошибка заинтересовала. Надеюсь, разберёмся с ней. :-)
04/06/2007 02:29 Devgru:
Так что же, Макс?
Вы видите, разница действительно есть. И я Вас не обманываю. В чём же дело?
04/06/2007 10:29 Max:
В программе ошибки нет. Сервер на внутренние функции влиять не может.
Запускается все одним и тем же кодом. Отличие только в переменной PATH_INFO и если это критично для PHP -- ошибка в нем.
Можете попробовать в php.ini прописать полные пути к DLL-модулям.
04/06/2007 18:56 Devgru:
Будет сделано. По выполнении отрапортую :-)
04/06/2007 19:45 Devgru:
Прописывал. Толку — ноль. PHP так и так видит библиотеку, иначе бы он выдал ошибку о невозможности её подгрузить.

Пользователь: Пароль: Новый пользователь:   Запомнить пароль: