libxml2-2.9.9をCentOS6にソースインストール
篠原 隆司
覚書です。
ところどころ省いています。
実践環境で使う場合はご注意ください。
目的
PHP7.0.0からは 2.9.0 以上が良さそうです。
PHP Predefined Constants の 「Only available in Libxml」
ここにある定数を使わないなら古いバージョンでも動きます。
特徴
- ソースコードからのインストール
- 複数バージョンの共存
特定バージョンでの開発や動作確認など開発環境での用途を目的としています。
環境
実施日 | 2019-6-21 |
サーバ | さくらのVPS 2G![]() |
OS | CentOS 6.10 |
cat /etc/redhat-release
CentOS release 6.10 (Final)
rpm -qa | grep centos-release
centos-release-scl-7-4.el6.centos.noarch
centos-release-6-10.el6.centos.12.3.x86_64
centos-release-scl-rh-2-4.el6.centos.noarch
事前準備
python-devel
python-devel が入っていなければ make で次のようなエラーになります。
make[4]: ディレクトリ `/usr/local/src/libxml2-2.9.9/libxml2-2.9.9/python' に入ります
CC libxml.lo
libxml.c:14:20: error: Python.h: そのようなファイルやディレクトリはありません
libxml.c:15:24: error: fileobject.h: そのようなファイルやディレクトリはありません
In file included from libxml.c:28:
libxml_wrap.h:67: error: expected specifier-qualifier-list before ‘PyObject_HEAD
yum でインストールします。
yum install python-devel
libxml2 2.9.9
/tmp/libxml2-2.9.9.tar.gz
公式サイトからダウンロードして、/tmp にアップロード
libxml2の公式サイトのダウンロードページに行くと次のように書かれています。
Binary ports:
http://xmlsoft.org/downloads.html
RPMs for x86_64 are available directly on xmlsoft.org, the source RPM will compile on any architecture supported.
「xmlsoft.org」にftpへのリンクが張られてますのでクリックします。
いっぱい出てきますので、ブラウザの検索機能(CTRL + F)で「libxml2-2.9.9.tar.gz」で検索します。
インストール
ls -la /usr/local/src
ls -la /usr/local/lib
mkdir /usr/local/src/libxml2-2.9.9
cp /tmp/libxml2-2.9.9.tar.gz /usr/local/src/libxml2-2.9.9/libxml2-2.9.9.tar.gz
cd /usr/local/src/libxml2-2.9.9
tar xvzf libxml2-2.9.9.tar.gz
cd libxml2-2.9.9
./configure --prefix=/usr/local/lib/libxml2-2.9.9
make
make install
パスを通す
# 既に定義されてたら加える
echo $PKG_CONFIG_PATH
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/local/lib/libxml2-2.9.9/lib/pkgconfig"
# 未定義ならセットする
echo $PKG_CONFIG_PATH
export PKG_CONFIG_PATH=/usr/local/lib/libxml2-2.9.9/lib/pkgconfig
configure
phpのconfigure での指定方法
--with-libxml-dir=/usr/local/lib/libxml2-2.9.9