働きたくないゆとりの備忘録

プログラミングとかサーバーとか学んだことをいろいろ書いていきたい。。。

WordPressをPHP7にアップデートして使う際はMySQL拡張に注意

スポンサーリンク

PHP7では大幅な性能改善や機能の追加・廃止がされましたが、システムによってはアップデートすると正常に動かなくなってしまうことがあります。


WordPressも影響を受けていて、環境によっては動かなくなることがあるため対策が必要になります。


尚、ここに記載しているのはPHPをソースからインストールしている場合の方法です。
インストールについては下記ページを参照してください。
www.hack-log.net




PHP7へアップデート後にWordPressで作成したページにアクセスすると、

お使いのサーバーの PHP では WordPress に必要な MySQL 拡張を利用できないようです。

と表示されることがあります。


これはWordPressで使われていたMySQL拡張モジュールがPHP7で廃止されたためで、代わりにmysqli拡張モジュールを使用する必要があります。


mysqli拡張モジュールを導入するためには./configureするときに下記のオプションを追加します。

-with-mysqli --with-mysqli=/usr/bin/mysql_config

64bitの場合
-with-mysqli --with-mysqli=/usr/bin/mysql_config-64


mysql_configのパスが分からない場合、「mysql_config」をコマンドで入力するとヘルプとして教えてくれます。

[root@localhost ~]# mysql_config
Usage: /usr/bin/mysql_config-64 [OPTIONS]
Options:
        --cflags         [-I/usr/include/mysql -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -fPIC -g -fabi-version=2 -fno-omit-frame-pointer -fno-strict-aliasing -DMY_PTHREAD_FASTMUTEX=1]
        --cxxflags       [-I/usr/include/mysql -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -fPIC -g -fabi-version=2 -fno-omit-frame-pointer -fno-strict-aliasing -DMY_PTHREAD_FASTMUTEX=1]
        --include        [-I/usr/include/mysql]
        --libs           [-L/usr/lib64/mysql -lmysqlclient -lpthread -lm -lrt -ldl]
        --libs_r         [-L/usr/lib64/mysql -lmysqlclient_r -lpthread -lm -lrt -ldl]
        --plugindir      [/usr/lib64/mysql/plugin]
        --socket         [/var/lib/mysql/mysql.sock]
        --port           [0]
        --version        [5.6.20]
        --libmysqld-libs [-L/usr/lib64/mysql -lmysqld -lpthread -lm -lrt -lcrypt -ldl -laio]
        --variable=VAR   VAR is one of:
                pkgincludedir [/usr/include/mysql]
                pkglibdir     [/usr/lib64/mysql]
                plugindir     [/usr/lib64/mysql/plugin]


インストール後、サーバーを再起動しWordPressのページにアクセスすれば正常に閲覧出来るようになっているはずです。