Mar
30
2010
0

php5ダウングレード

5:45 am

先日、サーバーにインストールしていたphp-5.2.10のバグでWordPressの日付表示が0000年となったり、WP-phpMyAdminにログインできなかったりした問題に対処するため、現時点の最新バージョンのphp-5.3.2にアップグレードしましたが、日付表示は直り、WP-phpMyAdminにログインもできるようになったのですが、WP-phpMyAdminで新たなエラーが発生してしまいました。まだ、WP-phpMyAdminがphpの最新バージョンに対応していないためと思われます。
 よって、phpを5.2.10にバグのパッチを当てたうえで戻してみようと思います。

まず、index of /php5から、php-5.2.10をダウンロードして展開します。
$ cd /usr/local/lib
$ sudo wget http://museum.php.net/php5/php-5.2.10.tar.gz
$ sudo tar zxvf php-5.2.10.tar.gz

$ sudo nano /usr/local/lib/php-5.3.2/php_date.c

以下を参考に、case ‘y’: ・・・となっている行を削除(または、コメントアウト)して、変わりに
case ‘Y’: length = slprintf(buffer, 32, “%d”, (int) t->y); break;
を挿入すれば良いだけです。

I put a patch in the ‘Reproduce code’ section that ‘fixes’ it..

Reproduce code:
—————
— php-5.2.10/ext/date/php_date.c 2009-07-27 17:55:06.192343000 -0400
+++ php-5.2.10.1/ext/date/php_date.c 2009-07-27 16:44:23.297327000 -0400
@@ -798,7 +798,8 @@
/* year */
case ‘L’: length = slprintf(buffer, 32, “%d”, timelib_is_leap((int) t->y)); break;
case ‘y’: length = slprintf(buffer, 32, “%02d”, (int) t->y % 100); break;
- case ‘Y’: length = slprintf(buffer, 32, “%s%04ld”, t->y < 0 ? "-" : "", llabs(t->y)); break;
+ /* case ‘Y’: length = slprintf(buffer, 32, “%s%04ld”, t->y < 0 ? "-" : "", llabs(t->y)); break; */
+ case ‘Y’: length = slprintf(buffer, 32, “%d”, (int) t->y); break;

ここから先の手順は、php-5.3.2をインストールしたときのものと基本的には同じです。

$ cd ./php-5.3.2

./configure --prefix=/usr/local/lib/php-5.2.10 --with-apxs2=/usr/bin/apxs2 --enable-pcntl --enable-mbstring --enable-mbregex --enable-zend-multibyte --with-mysql --with-mysqli --with-mcrypt --with-gd --with-openssl --with-zlib --with-pgsql --with-pear=/usr/local/lib/php-5.2.10

$ sudo su
# make
# maketest
testの結果は、以下のとおり特に問題はなかったようです。
Thank you for helping to make PHP better.

# make install
すると、以下のようにエラーになります。

Installing PHP SAPI module:       apache2handler
/usr/share/apache2/build/instdso.sh SH_LIBTOOL='/usr/share/apr-1.0/build/libtool' libphp5.la /usr/lib/apache2/modules
/usr/share/apr-1.0/build/libtool --mode=install cp libphp5.la /usr/lib/apache2/modules/
libtool: install: cp .libs/libphp5.so /usr/lib/apache2/modules/libphp5.so
libtool: install: cp .libs/libphp5.lai /usr/lib/apache2/modules/libphp5.la
libtool: install: warning: remember to run `libtool --finish /usr/local/lib/php-5.2.10/libs'
chmod 644 /usr/lib/apache2/modules/libphp5.so
[activating module `php5' in /etc/apache2/httpd.conf]
Installing PHP CLI binary:        /usr/local/lib/php-5.2.10/bin/
Installing PHP CLI man page:      /usr/local/lib/php-5.2.10/man/man1/
Installing build environment:     /usr/local/lib/php-5.2.10/lib/php/build/
Installing header files:          /usr/local/lib/php-5.2.10/include/php/
Installing helper programs:       /usr/local/lib/php-5.2.10/bin/
  program: phpize
  program: php-config
Installing man pages:             /usr/local/lib/php-5.2.10/man/man1/
  page: phpize.1
  page: php-config.1
Installing PEAR environment:      /usr/local/lib/php-5.2.10/
Warning: Cannot use a scalar value as an array in phar://install-pear-nozlib.phar/PEAR/ChannelFile.php on line 1391
Warning: Cannot use a scalar value as an array in phar://install-pear-nozlib.phar/PEAR/ChannelFile.php on line 1396
Warning: Cannot use a scalar value as an array in phar://install-pear-nozlib.phar/PEAR/ChannelFile.php on line 1400
Warning: Cannot use a scalar value as an array in phar://install-pear-nozlib.phar/PEAR/ChannelFile.php on line 1391
Warning: Cannot use a scalar value as an array in phar://install-pear-nozlib.phar/PEAR/ChannelFile.php on line 1396
Warning: Cannot use a scalar value as an array in phar://install-pear-nozlib.phar/PEAR/ChannelFile.php on line 1400
Warning: Cannot use a scalar value as an array in phar://install-pear-nozlib.phar/PEAR/ChannelFile.php on line 1391
Warning: Cannot use a scalar value as an array in phar://install-pear-nozlib.phar/PEAR/ChannelFile.php on line 1396
Warning: Cannot use a scalar value as an array in phar://install-pear-nozlib.phar/PEAR/ChannelFile.php on line 1400
Warning: Cannot use a scalar value as an array in phar://install-pear-nozlib.phar/PEAR/ChannelFile.php on line 1391
Warning: Cannot use a scalar value as an array in phar://install-pear-nozlib.phar/PEAR/ChannelFile.php on line 1396
Warning: Cannot use a scalar value as an array in phar://install-pear-nozlib.phar/PEAR/ChannelFile.php on line 1400
Warning: Cannot use a scalar value as an array in phar://install-pear-nozlib.phar/PEAR/ChannelFile.php on line 1391
Warning: Cannot use a scalar value as an array in phar://install-pear-nozlib.phar/PEAR/ChannelFile.php on line 1396
Warning: Cannot use a scalar value as an array in phar://install-pear-nozlib.phar/PEAR/ChannelFile.php on line 1400
Warning: Cannot use a scalar value as an array in phar://install-pear-nozlib.phar/PEAR/ChannelFile.php on line 1391
Warning: Cannot use a scalar value as an array in phar://install-pear-nozlib.phar/PEAR/ChannelFile.php on line 1396
Warning: Cannot use a scalar value as an array in phar://install-pear-nozlib.phar/PEAR/ChannelFile.php on line 1400
Warning: Cannot use a scalar value as an array in phar://install-pear-nozlib.phar/PEAR/ChannelFile.php on line 1391
Warning: Cannot use a scalar value as an array in phar://install-pear-nozlib.phar/PEAR/ChannelFile.php on line 1396
Warning: Cannot use a scalar value as an array in phar://install-pear-nozlib.phar/PEAR/ChannelFile.php on line 1400
[PEAR] Archive_Tar    - installed: 1.3.3
[PEAR] Console_Getopt - installed: 1.2.3
[PEAR] Structures_Graph- installed: 1.0.2
[PEAR] XML_Util       - installed: 1.2.1
[PEAR] PEAR           - installed: 1.8.0
Wrote PEAR system config file at: /usr/local/lib/php-5.2.10/etc/pear.conf
You may want to add: /usr/local/lib/php-5.2.10 to your php.ini include_path
Installing PDO headers:          /usr/local/lib/php-5.2.10/include/php/ext/pdo/

以下のようにhttpd.confを編集し、保存します。
# nano /etc/apache2/httpd.conf

#dummy
LoadModule hoge hoge.so

再度 # make install を実行
結果、Warningは消えました。

root@UbuntuServer:/usr/local/lib/php-5.2.10# make install
Installing PHP SAPI module:       apache2handler
/usr/share/apache2/build/instdso.sh SH_LIBTOOL='/usr/share/apr-1.0/build/libtool' libphp5.la /usr/lib/apache2/modules
/usr/share/apr-1.0/build/libtool --mode=install cp libphp5.la /usr/lib/apache2/modules/
libtool: install: cp .libs/libphp5.so /usr/lib/apache2/modules/libphp5.so
libtool: install: cp .libs/libphp5.lai /usr/lib/apache2/modules/libphp5.la
libtool: install: warning: remember to run `libtool --finish /usr/local/lib/php-5.2.10/libs'
chmod 644 /usr/lib/apache2/modules/libphp5.so
[activating module `php5' in /etc/apache2/httpd.conf]
Installing PHP CLI binary:        /usr/local/lib/php-5.2.10/bin/
Installing PHP CLI man page:      /usr/local/lib/php-5.2.10/man/man1/
Installing build environment:     /usr/local/lib/php-5.2.10/lib/php/build/
Installing header files:          /usr/local/lib/php-5.2.10/include/php/
Installing helper programs:       /usr/local/lib/php-5.2.10/bin/
  program: phpize
  program: php-config
Installing man pages:             /usr/local/lib/php-5.2.10/man/man1/
  page: phpize.1
  page: php-config.1
Installing PEAR environment:      /usr/local/lib/php-5.2.10/
[PEAR] Archive_Tar    - already installed: 1.3.3
[PEAR] Console_Getopt - already installed: 1.2.3
[PEAR] Structures_Graph- already installed: 1.0.2
[PEAR] XML_Util       - already installed: 1.2.1
[PEAR] PEAR           - already installed: 1.8.0
Wrote PEAR system config file at: /usr/local/lib/php-5.2.10/etc/pear.conf
You may want to add: /usr/local/lib/php-5.2.10 to your php.ini include_path
Installing PDO headers:          /usr/local/lib/php-5.2.10/include/php/ext/pdo/

相変わらずPEARのconfigを直せとか言われてますが、後でやることにしてとりあえず放置。

次に、
# nano /etc/apache2/httpd.conf 
で以下のように、全行をコメントアウトし、保存します。

#dummy
#LoadModule hoge hoge.so
#LoadModule php5_module        /usr/lib/apache2/modules/libphp5.so

apache2を再起動します。
# /etc/init.d/apache2 restart

phpinfo()で確認します。
5.2.10に戻りました。

WordPressでWP-phpMyAdminもちゃんとログインできました。

Mar
21
2010
0

Cookies must be enabled past this point.

21:47 pm

自宅サーバのUbuntuServer9.10に構築したWordPressのphpMyAdminで表題のエラーにより、ログインできません。
クッキー認証に失敗しているようです。
右はFireFoxですが、GoogleChromeもだめです。
Ubuntu 9.10でのFireFoxもだめです。
Cookieが有効になっていないわけではないのだけど・・・・。

不思議なことにWindowsVistaでのSafariでは、このように問題なくログインできます。

ブラウザの設定か、
サーバーのアンチウィルスソフトやファイヤーウォールの影響か、
phpやApacheの設定の問題か、
何か足りないモジュールでもあるのか、
わかりません。

WordPressのログインでも「ログイン情報を記憶」にチェックを入れると先に進めなくなってしまう。
たぶん、同じ原因。

とりあえず、サーバーにインストールしているアンチウィルスソフトのClamAVを停止して、トライしてみます。
$ sudo /etc/init.d/clamav-freshclam stop
結果はダメ。ClamAVのせいではないようです。

$ sudo nano /etc/php5/apache2/php.ini で
php.iniのoutput_bufferingをonにしてみたがダメ

$ sudo aptitude remove clamav でclamavをリムーブしてみました。

hbirds@UbuntuServer:/$ sudo aptitude remove clamav
[sudo] password for hbirds:
Reading package lists... Done
Building dependency tree
Reading state information... Done
Reading extended state information
Initializing package states... Done
The following packages will be REMOVED:
  clamav clamav-base{u} clamav-freshclam{u} libclamav6{u} libtommath0{u}
0 packages upgraded, 0 newly installed, 5 to remove and 35 not upgraded.
Need to get 0B of archives. After unpacking 26.9MB will be freed.
Do you want to continue? [Y/n/?] Y
Writing extended state information... Done
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
	LANGUAGE = (unset),
	LC_ALL = (unset),
	LANG = "ja.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
(Reading database ... 77732 files and directories currently installed.)
Removing clamav ...
Removing clamav-freshclam ...
 * Stopping ClamAV virus database updater freshclam                                                                                        [ OK ]
Removing clamav-base ...
Removing libclamav6 ...
Removing libtommath0 ...
Processing triggers for man-db ...
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
	LANGUAGE = (unset),
	LC_ALL = (unset),
	LANG = "ja.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
/usr/bin/mandb: can't set the locale; make sure $LC_* and $LANG are correct
Processing triggers for libc-bin ...
ldconfig deferred processing now taking place
Reading package lists... Done
Building dependency tree
Reading state information... Done
Reading extended state information
Initializing package states... Done
Writing extended state information... Done

結果はやはりダメ。

Solved!
解決しました!
原因は、phpのバグでした。
サーバーのWordpressの投稿をよく見ると、全部の投稿日付が0000年となっていました。
#48276 date(‘Y’) returns 0000
#49079 date calls for year (Y) returns 0000
キャッシュは時間と密接な関係があるので、日付が全部0000年になってしまっては、キャッシュのしようがないということなのでしょう。
PPC固有の問題のようです。
サーバーのphpは、5.2.10なので、しっかりバグにハマってしまいました。

phpを5.3.2にバージョンアップすれば、解消すると思われたので、なんとかやってみました。
結果は、予想通り。0000年は、正常になりました。
しかし、今度は、WP-phpMyAdminが最新のphpに対応していないようで、新たなエラーが発生しています。


最終的には、phpを5.2.10にバグの修正を行ったうえでダウングレードして対処しました。

Mar
08
2009
0

PHP_Speedy_WP プラグイン

20:36 pm

PHP_Speedy_WP プラグインを入れてみました。
基本的に、JavascriptとかCSSを圧縮して転送量を減らしているようですが、回線速度が遅い場合やJavaを多用している場合は、有効かもしれないけど・・・。
どの程度高速化されるか、しばらく様子見。
直感的には、劇的に速くなったことはないような感じです。あまり変わらないという感じかな。

Mar
07
2009
0

Zend Optimizer

21:41 pm

Zend Optimizer をインストールしてみました。
Zend Optimizer は、phpコードを最適化しphp実行速度を高速化するphp追加モジュールです。最近、WordPressが重くなってきたので少しでも高速化しようと思い導入してみました。

以下、導入手順です。

1.Zend Optimizerのダウンロード
 使っているサーバーの環境(OS,PHPのバージョン)に合った、Zend Optimizer をダウンロードし、解凍します。
 Xreaの場合は、Linux PHP Version 5.2.5 なので、ダウンロードしたファイルから /5_2_x_comp/ZendOptimizer.soをサーバーのドキュメントルートよりも上の領域にアップロードします。

2.php.ini のアップロード
テキストエディターで以下を書いて、/wordpress に以下をアップします。
 ******はユーザー名です。

## ZendOptimizerを使う
zend_extension="/virtual/******/public_html/5_2_x_comp/ZendOptimizer.so"
zend_optimizer.optimization_level=15

以下のようにphpinfo()を実行してみれば、インストールされたことを確認できます。

<?php
phpinfo();
?>

zendoptimizerwith Zend Optimizer v3.3.0となっていますのでインストールされてます。

  

Written by hbirds in: WPカスタマイズ | Tags: , , , ,

www.hbirds.net