SNSインストール続き#3

PHPを最新にする

YaSTでアップデート。下記を追加。

# vi /etc/apache2/httpd.conf
AddType application/x-httpd-php .php .phtml
# apache2ctl restart

libphp5.soを作る

私の環境では、libphp5.soがないので、自分で作る。
昨日の日記にも残したが、参考はテクニカルイルカルテさんのページ
および、PHPソースコードからのインストールは@ITの記事も役立った。

PHPのソースをここからゲット http://www.php.net/downloads.php

# ./configure \
--prefix=/usr/local/bin \
--with-apxs2=/usr/sbin/apxs2 \
--without-sqlite \
--enable-mbstring \
--enable-zend-multibyte \
--enable-ftp \
--enable-sockets \
--with-mysql=/usr/bin/ \
--with-gd \
--with-jpeg-dir=/usr/lib64/ \
--with-png-dir=/usr/lib64/ \
--with-freetype-dir=/usr/lib64/ \
--with-zlib \
--with-openssl

<これらオプションの説明>
インストール先
apxs2の場所を指定(SuSEではここ。)インストール済みのapache2と連動させる。apache2なのでapxsでなくapxs2を使う。
SQLiteを使わない
マルチバイト関数をインストール
Zendのマルチバイトエンジンを有効
FTPプロトコルをサポート
socket(HTTPとか)をサポート
MySQLをサポート(私の環境はmysql5です。パス指定しない場合は、--without-mysqlで4.0以下向け標準APIを切り、--with-mysqliで4.1以上APIに対応させること)
DBエンジンをサポート
jpeg,png,その他をサポート
zLibをサポート
SSLHTTPSとか)をサポート

configureエラーで、xml2-configがないとな。Yastで、libxml2をアップグレード、libxml2-develを入れる。
同じく続くエラーをつぶすべく、libpng, freetypeおよびそれらのdevelをアップデートする。
だが、これらをやっても、以下のエラーで止まる。

configure: error: libjpeg.(a|so) not found.

パスの扱いがおかしいらしい。解決法は、シンボリックリンクを張り、configureのオプションを以下に変える対応。参考にしたのは、
PHPに関するこちらの書き込み

# ln -s /usr/include /opt/include
# ln -s /usr/lib64 /opt/lib
そして、オプションを以下に変更

--with-jpeg-dir=/opt
--with-png-dir=/optin

次は別のエラーが。

configure: error: Cannot find libmysqlclient under /usr.
Note that the MySQL client library is not bundled anymore!

libmysqlclient.soは、/usr/lib64にある。再度ぐぐって、LinuxQuestions.orgの書き込で解決案を見つけた。with-mysqlのパス指定の直後に

--with-libdir=lib64

を追加すると、ちゃんと通りました。

# make
# make test
# make install

実はtestでは、failedが44個でましたが、もういいや、って感じでインストール。/usr/local/binに実行形式が作られ、/usr/lib64/apache2/libphp5.soが出来ました!!
一応、installの履歴を残しておきます。

Installing PHP SAPI module: apache2handler
/usr/share/apache2/build/instdso.sh SH_LIBTOOL='/usr/lib64/apr-1/build/libtool' libphp5.la /usr/lib64/apache2
/usr/lib64/apr-1/build/libtool --mode=install cp libphp5.la /usr/lib64/apache2/
cp .libs/libphp5.so /usr/lib64/apache2/libphp5.so
cp .libs/libphp5.lai /usr/lib64/apache2/libphp5.la
libtool: install: warning: remember to run `libtool --finish /usr/local/src/php5-5.2.11-0.1.1/php-5.2.11/libs'
chmod 755 /usr/lib64/apache2/libphp5.so
activating php5
Installing PHP CLI binary: /usr/local/bin//bin/
Installing PHP CLI man page: /usr/local/bin//man/man1/
Installing build environment: /usr/local/bin//lib/php/build/
Installing header files: /usr/local/bin//include/php/
Installing helper programs: /usr/local/bin//bin/
program: phpize
program: php-config
Installing man pages: /usr/local/bin//man/man1/
page: phpize.1
page: php-config.1
Installing PEAR environment: /usr/local/bin//lib/php/

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/bin//etc/pear.conf
You may want to add: /usr/local/bin//lib/php to your php.ini include_path
Installing PDO headers: /usr/local/bin//include/php/ext/pdo/

httpd.conf書き換え

二行を追加します。

# vi /etc/apache2/httpd.conf
LoadModule php5_module /usr/lib64/apache2/libphp5.so
AddType application/x-httpd-php .php .phtml
# service apache2 restart
(省略)
Starting httpd2 (prefork) [Thu Feb 25 17:20:49 2010] [warn] module php5_module is already loaded, skipping

SELinuxに引っ掛かることなく、doneになる。上記のwarnはなんで?
localhost/~(以前から静的HPとして使っているアカウント)/test.php ←phpinfo()記載
をブラウザで見ると、やった!PHPのページが見れました。ここまで長かった。