No log handling enabled - turning on stderr logging Cannot find module (IP-MIB): At line 0 in (none) Cannot find module (IF-MIB): At line 0 in (none) Cannot find module (TCP-MIB): At line 0 in (none) Cannot find module (UDP-MIB): At line 0 in (none) Cannot find module (HOST-RESOURCES-MIB): At line 0 in (none) Cannot find module (SNMPv2-MIB): At line 0 in (none) Cannot find module (SNMPv2-SMI): At line 0 in (none) Cannot find module (NOTIFICATION-LOG-MIB): At line 0 in (none) Cannot find module (UCD-SNMP-MIB): At line 0 in (none) Cannot find module (UCD-DEMO-MIB): At line 0 in (none) Cannot find module (SNMP-TARGET-MIB): At line 0 in (none) Cannot find module (NET-SNMP-AGENT-MIB): At line 0 in (none) Cannot find module (HOST-RESOURCES-TYPES): At line 0 in (none) Cannot find module (LM-SENSORS-MIB): At line 0 in (none) Cannot find module (IPV6-ICMP-MIB): At line 0 in (none) Cannot find module (IPV6-MIB): At line 0 in (none) Cannot find module (IPV6-TCP-MIB): At line 0 in (none) Cannot find module (IPV6-UDP-MIB): At line 0 in (none) Cannot find module (SNMP-VIEW-BASED-ACM-MIB): At line 0 in (none) Cannot find module (SNMP-COMMUNITY-MIB): At line 0 in (none) Cannot find module (UCD-DLMOD-MIB): At line 0 in (none) Cannot find module (SNMP-FRAMEWORK-MIB): At line 0 in (none) Cannot find module (SNMP-MPD-MIB): At line 0 in (none) Cannot find module (SNMP-USER-BASED-SM-MIB): At line 0 in (none) Cannot find module (SNMP-NOTIFICATION-MIB): At line 0 in (none) Cannot find module (SNMPv2-TM): At line 0 in (none)
# yum install net-snmp
pear upgrade -a PEAR-1.3.6 pear upgrade -a PEAR
pear upgrade -a PEAR-1.3.6 pear upgrade Archive_Tar pear upgrade Structures_Graph pear upgrade PEAR pear channel-update pear.php.net pear upgrade-all
PEAR_ErrorのバックトレースをOFFにする方法。
require_once 'PEAR.php'; $isSkiptrace = &PEAR::getStaticProperty('PEAR_Error', 'skiptrace'); $isSkiptrace = true;
# pear search ajax 等で以下のエラーが出る場合
XML error at line 1, check URL Invalid return payload: enable debugging to examine incoming payload
# pear upgrade PEAR # pear channel-update pear.php.net
シェルが使えれば「pear list」で表示されます。
レンタルサーバ等で何がインストールされているかわからない場合は、以下のように。
改行コードの問題で、ブラウザでは正常に表示されなくても、ソースみればわかります。
<? echo "<pre>"; passthru("pear list"); echo "</pre>"; ?>
新しいバージョンになり、従来とは違う動作をする場合、古いバージョンをインストールする方法。
例:PEAR::Pager
# pear uninstall Pager # pear install http://pear.php.net/get/Pager-2.2.7.tgz
http://www.zend.com/ にPostgreSQLを用いたユーザーセッションハンドラのソースがありました。
パッケージ名 | バージョン | メリット | デメリット |
PEAR::Pager | v2.2.6 (2005-03-14) | 実装が簡単。 リンクも自動で作成してくれる。 PEARのマニュアル中に日本語解説がある。 | totalItemsプロパティに総件数を入れる事で、実際のデータとは分離できる。 よって、DB_Pagerは不要。 |
PEAR::DB_Pager | v0.7 (2005-03-14) | ページ番号しか管理しないため、大量のデータでも実装しだいで、高速に表示できる。 | リンクを自分で作成するため、若干面倒。 日本語解説がない。 |
pear install Pager
pear install DB_Pager
PHPのtimestamp型はUnix Timeなので、1970年1月1日から2038年1月19日GMTしか扱えません。
それ以上の日付を扱いたい場合、pearのDateクラスがあります。
デフォルトはISO形式("YYYY-MM-DD HH:MM:SS")なのでそれを標準とすると、他DBとの連携、移植も楽に行えます。
pear install Date
<? require_once("Date.php"); $oDate = new Date("1969-01-01"); echo $oDate->getDate() . "\n"; echo $oDate->getDate(DATE_FORMAT_ISO_BASIC) . "\n"; echo $oDate->getDate(DATE_FORMAT_ISO_EXTENDED) . "\n"; echo $oDate->getDate(DATE_FORMAT_ISO_EXTENDED_MICROTIME) . "\n"; echo $oDate->getDate(DATE_FORMAT_TIMESTAMP) . "\n"; //echo $oDate->getDate(DATE_FORMAT_UNIXTIME) . "\n"; // 1970年以前なのでエラー ?>実行結果:
php -q test.php 1969-01-01 00:00:00 19690101T000000Z 1969-01-01T00:00:00Z 1969-01-01T00:00:0.000000Z 19690101000000
<? require_once('Date/Calc.php'); // 3100年 12月 5日は何曜日? $dow = Date_Calc::dayOfWeek(5, 12, 3100); echo "dow: $dow<br>\n"; // dow: 3(日:0 月:1 火:2 水:3 木:4 金:5 土:6) ?>
モジュールテスト自動化ツール
pear install phpunit