php5ダウングレード
先日、サーバーにインストールしていた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
Related Posts
No Comments »
RSS feed for comments on this post. TrackBack URL
Leave a comment
You must be logged in to post a comment.

