Странное поведение php 5.3 с apache 2.2 на Windows? - PullRequest
1 голос
/ 16 июля 2009

У меня много php-скриптов с несколькими итерациями в строках из mysql база данных, каждая итерация открывает еще одно дополнительное соединение, чтобы получить дополнительные данные, не включенные в исходный выбор. Внезапно, где-то посередине этих сценариев, соединение от Apache сбрасывается во время выполнения сценария (и чтения из базы данных mysql).

В Apache error.log показана следующая ошибка: Родитель: дочерний процесс завершен со статусом 255

Система отлично работает до 5.2.9, но не работает ни с 5.3.0, ни 5.3.1-dev, вот почему у меня проблема с php5.3.

Извините, но я не смог воспроизвести эту проблему в коротком скрипте, я даже открыл отчет об ошибке на php.net сайте этого?

Windows 7 RC Apache 2.2.11

Кто-нибудь из вас, ребята, испытывал такую ​​же проблему после обновления до php 5.3?

UPDATE:

Я мог бы выделить ошибку до:

<?
    $dbh=mysql_connect ("localhost", "root", "mysqluser") or die 
('I cannot connect to the database because');
    mysql_select_db ("bbbac_globaldata") or die( "Unable to select 
database");


    mysql_close();

?>

Закомментируйте mysql_close () и ошибки не будет.

Это ошибка PHP, которую я заполнил: http://bugs.php.net/bug.php?id=48943

UPDATE

Это ИЗВЕСТНАЯ ошибка php 5.3 с mysql_close (), когда аргумент не указан:

http://bugs.php.net/bug.php?id=48754

Ответы [ 5 ]

2 голосов
/ 16 июля 2009

Возможно, вы используете PHP 5.3 VC9. У него есть некоторые известные проблемы с Apache2.2 в Vista и Windows 7. Загрузите и установите версию, скомпилированную с VC6.

0 голосов
/ 16 июля 2009

php 5.3 включает новый mysql-драйвер (mysqlnd). Возможно, вы захотите проверить, используете ли вы этот или «старый» драйвер libmysql.

Кроме этого, возможно ли переписать сценарий, чтобы вы не открывали и не закрывали базу данных на каждой итерации? На самом деле это плохая практика, и она может быть причиной некоторого заполнения буфера.

0 голосов
/ 16 июля 2009

У меня почти такой же env. с твоим. Win7 RC с xampp 1.7.1 (Apache / 2.2.11 (Win32) DAV / 2 mod_ssl / 2.2.11 OpenSSL / 0.9.8i PHP / 5.2.9 и версия клиента MySQL: 5.0.51a и версия Mysql Server: 5.1.33 -сообщество)

Сначала я увидел точно такую ​​же проблему с php 5.2.9. в ntlogs apache служба вышла с 255 бла бла ... это был простой скрипт ... тогда я попытался использовать свою собственную оболочку mysql, которая проще, чем простой скрипт :). в тот момент была странная ситуация. как только он выходит, один раз работает. тогда я пытался везде искать эту проблему. как вы ничего не знали, я нашел. в windows xp это работало без проблем. так что я подумал, что это проблема win7. UAC уже отключен. а также я попытался взять на себя ответственность за всю папку xammp (которая содержит все apache php mysql filezillaftp). после перезагрузки все они установлены как сервис. это сработало. я не знаю почему но рекурсивно работает право собственности на папки. Я советую вам попробовать это.

0 голосов
/ 16 июля 2009

каждая итерация открывает еще одно дополнительное соединение

Я не знаю MySQL, но думаю, что вы не можете открывать соединения бесконечно.


EDIT

Я помню, у меня было странное сообщение об ошибке в файле журнала Apache, когда я использовал PostgreSQL.

Мне нужно было перезапустить Apache, когда я перезапустил серверную часть базы данных.

Вы пытались перезапустить Apache?

0 голосов
/ 16 июля 2009

Я посмотрел на ваш вопрос, потому что подумал, что это может быть похоже на то, что я видел раньше, но код ошибки оказался другим. Тем не менее, я погуглил ваше сообщение об ошибке и нашел эту ссылку: http://forums.tizag.com/showthread.php?t=4204 Похоже, что у вас есть круговая ссылка в ваших файлах (т.е. php_file1 включает php_file2, который включает php_file1).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...