ログインしていません。

返信

メッセージを書いて送信してください。
オプション
ボット判定

本当の人間が送信しようとしていることを確認します。

戻る

トピックレビュー(最新表示)

nm
2018-01-18 07:14:44

なんとか自力での解決に至ったので報告させていただきます。

原因: PHP とモジュール間のバージョン不整合による不具合。

Apache のエラーログを眺めていたところ、

PHP Warning:  PHP Startup: bz2: Unable to initialize module\nModule compiled with module API=20160303\nPHP    compiled with module API=20170718\nThese options need to match\n in Unknown on line 0
PHP Warning:  PHP Startup: curl: Unable to initialize module\nModule compiled with module API=20160303\nPHP    compiled with module API=20170718\nThese options need to match\n in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'dba.so' (tried: /usr/lib/php/modules/dba.so (/usr/lib/php/modules/dba.so: undefined symbol: spprintf), /usr/lib/php/modules/dba.so.so (/usr/lib/php/modules/dba.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'exif.so' (tried: /usr/lib/php/modules/exif.so (/usr/lib/php/modules/exif.so: undefined symbol: vspprintf), /usr/lib/php/modules/exif.so.so (/usr/lib/php/modules/exif.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
PHP Warning:  PHP Startup: gd: Unable to initialize module\nModule compiled with module API=20160303\nPHP    compiled with module API=20170718\nThese options need to match\n in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'iconv.so' (tried: /usr/lib/php/modules/iconv.so (/usr/lib/php/modules/iconv.so: undefined symbol: php_base64_decode), /usr/lib/php/modules/iconv.so.so (/usr/lib/php/modules/iconv.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'mcrypt.so' (tried: /usr/lib/php/modules/mcrypt.so (/usr/lib/php/modules/mcrypt.so: undefined symbol: spprintf), /usr/lib/php/modules/mcrypt.so.so (/usr/lib/php/modules/mcrypt.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'mysqlnd.so' (tried: /usr/lib/php/modules/mysqlnd.so (/usr/lib/php/modules/mysqlnd.so: cannot open shared object file: No such file or directory), /usr/lib/php/modules/mysqlnd.so.so (/usr/lib/php/modules/mysqlnd.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'mysqli.so' (tried: /usr/lib/php/modules/mysqli.so (/usr/lib/php/modules/mysqli.so: undefined symbol: vspprintf), /usr/lib/php/modules/mysqli.so.so (/usr/lib/php/modules/mysqli.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'pdo_mysql.so' (tried: /usr/lib/php/modules/pdo_mysql.so (/usr/lib/php/modules/pdo_mysql.so: undefined symbol: strpprintf), /usr/lib/php/modules/pdo_mysql.so.so (/usr/lib/php/modules/pdo_mysql.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'zip.so' (tried: /usr/lib/php/modules/zip.so (/usr/lib/php/modules/zip.so: undefined symbol: spprintf), /usr/lib/php/modules/zip.so.so (/usr/lib/php/modules/zip.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0

のようなログを吐いていました。そこで php に関するパッケージを調べたところ、
$ pacman -Qs php
local/drupal 8.4.4-1
    A PHP-based content management platform
local/php-apache 7.2.1-1
    Apache SAPI for PHP
local/php-geoip 1.1.1-3
    GeoIP module for PHP
local/php-imap 7.2.1-1
    imap module for PHP
local/php-intl 7.2.1-1
    intl module for PHP
local/php-mcrypt 7.1.12-1
    mcrypt module for PHP
local/php-xcache 3.2.0-2
    A PHP opcode cacher
local/php71 7.1.13-3
    A general-purpose scripting language that is especially suited to web
    development
local/php71-gd 7.1.13-3
    gd module for PHP
local/phpmyadmin 4.7.7-2
    PHP and hence web-based tool to administrate MySQL over the WWW

といった具合で、不整合を起こしているのではないかと思い至りました。そこで、

$ sudo pacman -R php-apache php-imap php-intl php-mcrypt
コマンドにて、パッケージをアンインストールしたのち、
$ sudo pacman -S php71-apache php71-imap php71-intl php71-mcrypt
コマンドにて、パッケージをインストールしました。

その後、

$ sudo systemctl restart httpd.service
コマンドにて、Apacheを再起動させたところ、正常に動作することを確認しました。

# 個人的にはこれはパッケージ依存関係のバグなのではないかと思うのですが、識者のご意見を伺いたく思います。

nm
2018-01-17 12:50:13

ご返信いただきありがとうございます。

- php および php-apache パッケージはインストールされている。
- mpm_event_module をコメントアウトし mpm_prefork_module をアンコメントしている。
- LoadModule php7_module modules/libphp7.so 行を設定している。
- AddHandler php7-script php こちらは抜け落ちていたので追記しました。
- Include conf/extra/php7_module.conf 行を設定している。
- 以上を確認後 systemctl restart httpd.service を実行している。

ことを今一度確認しましたが、やはり mysqli モジュールがロードされていないようにエラーが表示されます。

> > # Loaded Modules に列挙されていない。
> これはapacheのModulesの表示なので、関係ないように思います。

これは失礼しました。phpinfo() ではロードしているモジュールを確認する方法はないのでしょうか?

kusanaginoturugi
2018-01-17 10:12:52

https://wiki.archlinux.jp/index.php/Apa … Server#PHP
PHPの設定が以前と変っているので、そのあたりも修正はされました?

> # Loaded Modules に列挙されていない。
これはapacheのModulesの表示なので、関係ないように思います。

nm
2018-01-16 03:54:37

表題の通りなのですが、いつごろからか PHP を使ったウェブアプリケーションのいくつかでエラーが出るようになっていました。
そのうち、PostfixAdmin および phpMyAdmin のエラーによると、mysqli モジュールが読み込まれていないとの内容でした。
しかし、以下のことを確認しましたが、問題解決に至りませんでした。
このほかに確認する事項はありますでしょうか?

- php.ini の内容
extension_dir は正しく /usr/lib/php/modules/ に設定されている。
module=mysqli.so および module=pdo_mysql 行はコメントを外している。
上記内容を確認したのち、systemctl restart httpd.service を実行している。

- php -m の内容
ここでは正しく、mysqliモジュールが呼び出されている。

- phpinfo() の内容
ここではモジュールが読み込まれていない(ように見える)。
# Loaded Modules に列挙されていない。
/etc/php/php.ini は読み込まれている。
# Loaded Configuration File には /etc/php/php.ini が表示されている。

Board footer

Powered by FluxBB