PHP-CGI bug?

whirlwind

TDD infected, paranoid
PHP-CGI bug?

Код

PHP:
<?php


class SomeObject {
    public $_hash = Array();
    
    public function setHash($t){
        $this->_hash[] = $t;
    }
}

class TestFactory {
    private static $_instance = null;
    public $_object = null;
    
    private function __construct(){}
    
    public static function getInstance(){
        if ( self::$_instance === null )
            self::$_instance = new TestFactory();
        return self::$_instance;
    }
    
    public static function init($some){
        self::getInstance()->getObject()->setHash($some);
    }
    
    public function getObject(){
        if ( $this->_object === null )
            $this->_object = new SomeObject();
        return $this->_object;
    }

}

TestFactory::init("foo");
var_dump(TestFactory::getInstance()->_object);

?>
консоль выдает

object(SomeObject)#2 (1) {
["_hash"]=>
array(1) {
[0]=>
string(3) "foo"
}
}
apache+php модулем

object(SomeObject)#2 (1) { ["_hash"]=> array(1) { [0]=> string(3) "foo" } }
через apache+php-cgi

везде php 5.2

Ктонить может это объяснить?

ps. нерабочй вариант под Apache/1.3.37 (Unix) FrontPage/5.0.2.2623 mod_ssl/2.8.28 OpenSSL/0.9.7e-p1 бздя
'./configure' '--enable-versioning' '--with-layout=GNU' '--with-config-file-scan-dir=/usr/local/etc/php' '--disable-all' '--enable-libxml' '--with-libxml-dir=/usr/local' '--enable-reflection' '--program-prefix=' '--enable-force-cgi-redirect' '--enable-discard-path' '--with-apxs=/usr/local/sbin/apxs' '--with-regex=php' '--with-zend-vm=CALL' '--enable-zend-multibyte' '--disable-ipv6' '--prefix=/usr/local'

-~{}~ 20.04.07 18:05:

Эмм... камрады, ну попробуйте плз. у кого php как cgi. Хотелось бы верить что это кривые руки хостеров.
 

berkut

Новичок
PHP Version 5.1.1
Server API CGI
Код:
object(SomeObject)#2 (1) { ["_hash"]=> array(1) { [0]=> string(3) "foo" } }
-~{}~ 20.04.07 20:11:

вай. пхп другой, в смысле не 5.2
 

phprus

Moderator
Команда форума
PHP Version 5.2.1, но под WinXP выдает следующее:
object(SomeObject)#2 (1) {
["_hash"]=>
array(1) {
[0]=>
string(3) "foo"
}
}
Тоесть под виндой вроде-бы все работает.

К сожалению Php установленного как CGI под *nix у меня нет, так что протестировать под *nix не могу.
 

tony2001

TeaM PHPClub
>Ктонить может это объяснить?
вероятно, наложены какие-то кривые "секьюрити-патчи" или что-то подобное.
это ж бздя, у них там мэйнтэйнеры портов умнее всех..
 

svetasmirnova

маленький монстрик
тупой вопрос: кстати, где ислать php-cgi в FreeBSD? Я имею в виду, если самой собирать.
 

desperado

Новичок
на двух системах стоит gentoo и связка nginx+php-5.2.0-fcgi

на первой: null
на второй: object(SomeObject)#2 (1) { ["_hash"]=> array(1) { [0]=> string(3) "foo" } }

вторая система отличается от первой только тем, что она x86_64 и php собран на ней без --with-zend-vm \ --enable-zend-multibyte \ --enable-force-cgi-redirect
 

whirlwind

TDD infected, paranoid
desperado вторая модулем же получается, если без --enable-force-cgi-redirect. Или я ошибаюсь?
 

tony2001

TeaM PHPClub
svetasmirnova
Свет, а зачем его искать во FreeBSD?
его искать надо на php.net

-~{}~ 21.04.07 01:22:

автору топика:
давайте будем разумными людьми, CGI от модуля отличается только Server API.
соотв-но, код выполняется одинаково. а если нет, то это означает, что не только SAPI разные, соотв-но и искать надо в другом месте (а не там, где светло).
 

svetasmirnova

маленький монстрик
tony2001
Ты просто не так понял вопрос (возможно потому, что я его так задала =): я просто забыла как php-cgi собирать, так как мне нужны только cli и модуль апача =)

Впрочем на 32-bit машине баг не воспроизводится.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
FCGI:
object(SomeObject)#2 (1) { ["_hash"]=> array(1) { [0]=> string(3) "foo" } }

CLI:
[grigori@localhost http_root]$ php test.php
object(SomeObject)#2 (1) {
["_hash"]=>
array(1) {
[0]=>
string(3) "foo"
}


[grigori@localhost http_root]$ php-fcgi -v
PHP 5.2.1 (cgi-fcgi) (built: Apr 16 2007 16:02:25)
Copyright (c) 1997-2007 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies
with XCache v1.2.0, Copyright (c) 2005-2006, by mOo

Linux 32 (FC 4), PHP собирал руками
 

whirlwind

TDD infected, paranoid
Там где у нас не пашет тоже 64. Надо еще в консоли попробовать.
 

desperado

Новичок
Автор оригинала: whirlwind
desperado вторая модулем же получается, если без --enable-force-cgi-redirect. Или я ошибаюсь?
у обоих "Server API: СGI/FastCGI"

но в 5.2.1 косяка такого нет, как его нет на 5.2.0 под виндами
 
Сверху