サポート » バグ報告と提案 » PHP5.3.2環境で管理者画面の一部(options-general.php)で処理がコケる

  • options-general.phpにて、処理が途中でコケる不具合を発見致しました。

    ブラウザで一般設定画面(options-general.php)を開くと、左メニューのプラグインの項目まで描画された後、何も描画されませんでした。

    なお、Wordpress 2.9.2でも同様の不具合が発生しています。

    当方環境は以下の通りです。
    OS:CentOS5.4 32bit
    httpd:2.2.15
    PHP:5.3.2(memory_limitは128MBなのでメモリ不足は考えにくいです)
    MySQL:5.1.48(文字コードはutf-8)
    ブラウザ:Google Chrome 5.0.375.70
    尚、Coreserverのほうは(PHP5.2.5)問題ありませんでした。

    現在原因を調べていますが、何か有力な情報がありますと幸いです。

11件の返信を表示中 - 1 - 11件目 (全11件中)
  • 当方も同じくエラーがでて困っています。

    OS: Redhat linux ES 5.0
    httpd: 2.2.17
    PHP: 5.3.3
    MySQL: 5.1.50

    で同じ現象。
    Apacheのログは、

    一度のアクセスで(options-general.phpへの)
    [Mon Nov 15 17:54:21 2010] [notice] child pid 908 exit signal Segmentation fault (11)
    が3度でます。
    PHP5.2では動作します。

    解決しました。

    wp-includes/function.php
    「function wp_timezone_supported()」内の
    $support = true; を $support = false;に書き換えることです。

    理由
    PHP5.3で新たに加わった関数(timezone_identifiers_list)のバグのようです。
    これを直接呼び出すだけで、「Segmentation fault (core dumped)」が出るので。
    (例)php -r ‘var_dump ( timezone_identifiers_list() );’
    これをとりあえず使わないことにしたらOKという感じですね。

    早速、php.netにバグ報告しときました。
    http://bugs.php.net/bug.php?id=53320

    バグではなくて・・・

    php.ini , htaccess , date_default_timezone_set関数 など任意の方法で
    date.timezone = Asia/Tokyo となるように行儀良く指定してあげれば良いです。
    エラーが出るようにして動かしてれば、ご丁寧なwarningが出ますよ。

    faqですね

    追補。
    具体例です。

    htaccess でやるなら
    php_value date.timezone ‘Asia/Tokyo’
    です。

    php.iniに「date.timezone = “Asia/Tokyo”」を入れても症状が治まりませんでした。
    たとえば

    date_default_timezone_set(‘Asia/Tokyo’);
    var_dump ( timezone_identifiers_list() );

    というコードをPHP5.3.3で実行しても
    Segmentation fault (core dumped)
    が出ます。

    そちらは出ないのでしょうか。

    すみません、timezone_identifiers_list のことばかりみていて、Segmentation fault の部分を見逃していました。
    ちなみにうちは5.3.3で動いています。

    ところでdate_default_timezone_set(‘Asia/Tokyo’);でSegmentation faultというのはなんか、php5.3.3のインストおよびMySQLのインスト、のどこかが失敗していませんか?

    当方はMySQLとPHPの連携が失敗していてSegmentation faultに苦しんだことがあります。
    先月の話ですが。

    そうですか。ではインストール環境によって出てくるのかもしれませんね。
    当方の環境を下記に上げておきます。

    OS: Redhat Linux ES5 64bit (kernel 2.6.18-128.1.6.el5xen)
    rpm -qa | grep php (yumでのインスト−ル)
    (レポジトリ:http://wing-net.ddo.jp/wing/extras/el5/SRPMS/)
    php-xml-5.3.3-1.el5_1.wing
    php-mcrypt-5.3.3-1.el5_1.wing
    php-dba-5.3.3-1.el5_1.wing
    php-snmp-5.3.3-1.el5_1.wing
    php-embedded-5.3.3-1.el5_1.wing
    php-soap-5.3.3-1.el5_1.wing
    phpMyAdmin-3.3.5-1.el5_0.wing
    php-odbc-5.3.3-1.el5_1.wing
    php-imap-5.3.3-1.el5_1.wing
    php-cli-5.3.3-1.el5_1.wing
    php-xmlrpc-5.3.3-1.el5_1.wing
    phpPgAdmin-4.2.3-1.el5_0.wing
    php-mbstring-5.3.3-1.el5_1.wing
    php-pgsql-5.3.3-1.el5_1.wing
    php-recode-5.3.3-1.el5_1.wing
    php-devel-5.3.3-1.el5_1.wing
    php-common-5.3.3-1.el5_1.wing
    php-pdo-5.3.3-1.el5_1.wing
    php-mysql-5.3.3-1.el5_1.wing
    php-enchant-5.3.3-1.el5_1.wing
    php-pear-1.9.1-1.el5_0.wing
    php-5.3.3-1.el5_1.wing
    php-gd-5.3.3-1.el5_1.wing
    php-intl-5.3.3-1.el5_1.wing
    php-mssql-5.3.3-1.el5_1.wing
    php-bcmath-5.3.3-1.el5_1.wing
    php-pspell-5.3.3-1.el5_1.wing
    php-ldap-5.3.3-1.el5_1.wing

    rpm -qa |grep http
    httpd-2.2.17-1.el5_1.wing
    httpd-devel-2.2.17-1.el5_1.wing
    jakarta-commons-httpclient-3.0-7jpp.1
    system-config-httpd-1.3.3.3-1.el5
    httpd-manual-2.2.17-1.el5_1.wing
    httpd-tools-2.2.17-1.el5_1.wing
    httpd-devel-2.2.17-1.el5_1.wing

    /etc/php.ini
    date.timezone = “Asia/Tokyo”
    memory_limit = 64M
    ※ date.timezone = Asia/Tokyoや date.timezone = ‘Asia/Tokyo’
    でもだめでした。
    メモリ32MBではWordpress動作しませんでした。

    mysqlはmysql-5.1.50-1.el5_1.wing
    rpm -qa | grep mysql
    mysql-cluster-5.1.50-1.el5_1.wing
    mysql-bench-5.1.50-1.el5_1.wing
    mysql-embedded-devel-5.1.50-1.el5_1.wing
    mysql-devel-5.1.50-1.el5_1.wing
    mysql-embedded-5.1.45-1.el5_1.wing
    mysql-libs-5.1.50-1.el5_1.wing
    mysql-embedded-5.1.50-1.el5_1.wing
    mysql-server-5.1.50-1.el5_1.wing
    mysql-embedded-devel-5.1.50-1.el5_1.wing
    php-mysql-5.3.3-1.el5_1.wing
    mysql-5.1.50-1.el5_1.wing
    mysql-test-5.1.50-1.el5_1.wing
    mysql-5.1.50-1.el5_1.wing
    mysql-connector-odbc-5.1.5r1144-4.el5_0.wing
    mysql-libs-5.1.50-1.el5_1.wing

    64bit版だから影響あるんでしょうかねぇ。
    timezone_identifiers_list 以外のDate関数は使えるので、ソースからコンパイルしたら動くのかも知れませんね。でも基幹システムなのでそう簡単に試せません。
    そこで暫定的に、どうしようもなくなったら、とりあえずtimezone_identifiers_listを使わないように設定すればいいということかなぁと思います。

    http://bugs.php.net/bug.php?id=53320&thanks=3
    に書きましたが、ソースからコンパイルするとうまく動きました。
    phpinfo()
    で比較すると

    –with-system-tzdata

    があるとエラーが出て、ないと問題ない。ような感じです。
    しかしソースの./configureではこのオプションを選べませんね・・・。

    アップデートしていくとおかしいのかな?
    いきなりクリーンに5.3とかバイナリインストしてれば問題無いのかもしれませんね。

    てか、いずれにしてもソースからビルドするほうが無難だとは思いますね。
    yumもレポジトリによるのかしら?

    php bugsの方での回答としては、
    RedHatによってあてられたPatch(我々は反対したが)の影響ではないかということでした。
    たぶんそれだと思います。
    (–with-system-tzdataというoptionは、php.netの出しているソースにはないですからね)

    phpはかなり多くのパッケージは入っているのでyum管理したいんですけどねぇ。
    いずれにしても、このオプション抜きで、rpmrebuildして試してみます。

    この件、解決できましたのでお知らせします。
    ソースからのコンパイルインストールではなく現状維持での解決方法です(yum管理)
    Wordpress 3.2からtimezone_identifiers_listの利用は必須になったようなので、
    どうしようか悩んでいましたが解決できてよかったです。

    状況
    Redhat Linuxでyum管理していると、timezone関連の関数が使えない問題に起因しています。PHP5.3以降で問題が発生しており、timezone_identifiers_list()を呼び出すと、Segmentation faultsがでます。

    対策
    1. timezonedbの更新
    pect upgrade timezonedb
    とコマンドラインでアップデート

    2. timezonedbをphpのextensionとして読み込む
    /etc/php.d/timezone.ini を作成し
    extension=timezonedb.so
    とする。

    php -r ‘timezone_identifiers_list();’

    というコマンドラインでエラーが発生しないことを確認した上で、
    Apacheを再起動すれば、timezonedbがTimezoneで使われ、本問題が回避できるようです

11件の返信を表示中 - 1 - 11件目 (全11件中)
  • トピック「PHP5.3.2環境で管理者画面の一部(options-general.php)で処理がコケる」には新たに返信することはできません。