Connect :
Uptime :
Secondary
18 Days
13 Hour
13 Min.
自鯖のWEBサーバ基板をバージョンアップする為に検証していたのだが、
MariaDB-10.2.8とPHP-7.1.9でmysqliのビルドエラーが発生した。
自鯖環境の本番機はパッケージ管理と自作プラグインを噛ませる都合で、
ソースコードからビルドしているのだが、上記のエラーが発生して敢無く撃沈したので備忘録。
最終的には、MariaDB-10.1.26とPHP-7.1.9の組み合わせにした。
直接の原因かわからないが、MariaDB v10.1とv10.2では、
ソースビルド時に必要となるheaderを格納しているディレクトリの構成が変わってた。
今まではinclude直下にファイルが置かれていたのだが、
include/server配下に変更となり、PHPビルド時に参照出来なかった模様。
もちろん、PHP側はwith-mysqli、with-pdo-mysql辺りをちゃんと指定しているが駄目だった (´・ω:;.:…
/usr/local/src/php-7.1.9/ext/mysqli/mysqli.c:34 から include されたファイル中:
/usr/local/src/php-7.1.9/ext/mysqli/php_mysqli_structs.h:63:23: error: my_global.h: そのようなファイルやディレクトリはありません
/usr/local/src/php-7.1.9/ext/mysqli/php_mysqli_structs.h:79:20: error: my_sys.h: そのようなファイルやディレクトリはありません
/usr/local/src/php-7.1.9/ext/mysqli/php_mysqli_structs.h:82:21: error: my_list.h: そのようなファイルやディレクトリはありません
/usr/local/src/php-7.1.9/ext/mysqli/php_mysqli_structs.h:83:22: error: m_string.h: そのようなファイルやディレクトリはありません
/usr/local/src/php-7.1.9/ext/mysqli/php_mysqli_structs.h:86:21: error: m_ctype.h: そのようなファイルやディレクトリはありません
/usr/local/src/php-7.1.9/ext/mysqli/mysqli.c: In function ‘zm_info_mysqli’:
/usr/local/src/php-7.1.9/ext/mysqli/mysqli.c:985: error: ‘MYSQL_SERVER_VERSION’ undeclared (first use in this function)
/usr/local/src/php-7.1.9/ext/mysqli/mysqli.c:985: error: (Each undeclared identifier is reported only once
/usr/local/src/php-7.1.9/ext/mysqli/mysqli.c:985: error: for each function it appears in.)
|
/usr/local/src/php-7.1.9/include/../main/php_config.h:2193:1: 警告: ここが以前の宣言がある位置です
/usr/local/src/php-7.1.9/ext/mysqli/mysqli.c: In function ‘zm_info_mysqli’:
/usr/local/src/php-7.1.9/ext/mysqli/mysqli.c:985: error: ‘MYSQL_SERVER_VERSION’ undeclared (first use in this function)
/usr/local/src/php-7.1.9/ext/mysqli/mysqli.c:985: error: (Each undeclared identifier is reported only once
/usr/local/src/php-7.1.9/ext/mysqli/mysqli.c:985: error: for each function it appears in.)
|
MariaDB、PHPのビルドは正常に完了し、ApacheとのPHP連携も出来たのだが、
PHP経由でMariaDBに接続しようとするとエラーになった。
少なくとも、DigiLoogが稼働しているWordPress環境では真っ白エラーになったり、
真っ白エラーを全て解決しても画面描写出来なかった。
Makefile改造時と同じく、PHPからMariaDBに接続する箇所でエラーになった。
結構頑張ってみたが、mysqliの知見が無く断念。
………
という事で結果は「諦めた」のだが、何時かはMariaDBのバージョンを上げる必要があるので、
時間ある時に再チャレンジしてみたい所。
ただ、現在開発しているMariaDB v10.3とPHP v7.2で直る可能性もあるので、
ひとまず経過観察しようと思う。
表題そのまんまなのだが、自分は躓いたので備忘録 (´・ω・`)
“ns-lab BB”では、数台の自宅サーバがopenSUSEで稼働しているのだが、
Leap42.3にアップデートした所、logrotateが指定時間通りに処理出来なくなり、
『なんでcronで設定しても、指定通りに動かないんだろう…』と頭を悩ませていた。
色々と試行錯誤していた所「logrotate の daily 指定」のみ指定通りに動いて居ない事が判明。
デバッグをさらに進めた所、logrotatedのdaily設定のみ「systemd.timer」に移行している事がわかった。
なぜか「timers.target.wants」の中にlogrotateがdaily指定で設定されていた。
weaklyなどdaily以外については、今まで通りrun-cronsで処理されていた。
ちなみに、別途裏で走らせているスクリプトの兼ね合いで、logrotateは32分開始にずらしてある。
時間指定方法などはコチラを見ると、例文含めて載っているのでわかりやすい。