PHP 7

Slackwareは,3年前にリリースされた14.2が最新版で,セキュリティーパッチがときどきリリースされています.しかし,PHPは,outdatedとなってしまった,5.6.xにとどまったまま,7.xに移行する気配はなく,このWordPress他いくつかのサービスを,サポートの切れたPHPで動かし,セキュリティ上の危険にさらすことになってしまいました.

そこで,久しぶりに自力でパッケージのbuildをしてみました.PHPのbuildは,x86やAMD64ではずっとやってきていたのですが,最近はそういうめんどうな^^; ことは避けていました.

最初,AMD64時代PHP 5.6.xのbuildに自分で使っていたconfigure optionsを使いましたが,うまくいきませんでした.mysqlのサポートが変わったのが原因のようですが,いくつかオプションを追加しても解決しませんでした.

そこで,ネット検索しました.ネット検索すると,一番ヒットする情報は,PHP 5時代の役に立たないどころか有害となる情報です.

しかし,CentOS用のoptionを見つけ出し,そこからSlackwareには含まれていないrecordを外したらうまくいきました.

以下が,Slackware ARM 14.2で,PHP 7.3.10-devのbuildがうまくいき,WordPressの動作に成功したconfigure optionsです

CFLAGS="-O2" ./configure \
    --enable-mbstring \
    --enable-zip \
    --enable-bcmath \
    --enable-pcntl \
    --enable-ftp \
    --enable-exif \
    --enable-calendar \
    --enable-sysvmsg \
    --enable-sysvsem \
    --enable-sysvshm \
    --enable-wddx \
    --with-curl \
    --with-iconv \
    --with-gmp \
    --with-pspell \
    --with-gd \
    --with-jpeg-dir=/usr/lib \
    --with-png-dir=/usr/lib \
    --with-zlib-dir=/usr \
    --with-xpm-dir=/usr \
    --with-freetype-dir=/usr \
    --enable-gd-jis-conv \
    --with-openssl \
    --with-ldap \
    --with-pdo-mysql=/usr \
    --with-gettext=/usr \
    --with-zlib=/usr \
    --with-bz2=/usr \
    --with-mysqli=/usr/bin/mysql_config \
    --with-apxs2=/usr/bin/apxs \
    --build=arm-slackware-linux

そろそろSlackwareの使用も潮時かなぁと思っていましたが,これで,またしばらく続けて使うことにします.

参考にしたサイト

その後(2019/09/01)

その後もごにょごょいじって,git repositoryのはやめて,PHP 7.3.9を使用しています.PHPを利用しているパッケージは,

  • WordPress
  • PukiWiki
  • phpMyAdmin
  • phpLdapAdmin

です.WordPress以外は非公開で,自分専用です.phpMyAdminとphpLdapAdminは,新しいージョンがPHP7と不具合があったので,updateを止めていましたが,今回それらも最新安定版にできました.

configure時にunrecognized optionsとなったものは外してあります

3日分のメール消失

このBLOGを読んでくださる方にはたぶん関係なく,ほぼ,自分宛の記録です.

昨日(2019年6月4日)の夜,受信したメールを整理していたら,かなりのディレクトリー内に保存したメールが読めなくなりました.

今朝,imapデーモンの入り口になっているinetdを再起動して,imapのクライアントである,ThunderbirdとApple Mailで再度確認したところ,読めないディレクトリーはむしろ増えているようです.

何らかの原因で,imapのデータが壊れたようです.何年かに1度あります^^;

最新の保存である4日朝9時のものに復元してみました.しかし,状況は改善しなかったので,その前の1日のものに復元しました.なぜ,2日,3日にバックアップをとらなかったか悔やまれますが,職場で,同様にトラブったとき,最新のバックアップが1か月も前だったことがあったので,それよりははるかにましです^^;

今のところ,問題はないようですが,1日6時(JST)以後に,imapのメールボックスに保存(整理)したメールは完全に消失しました.

たぶん,無線クラブのメンバーの方とのやりとりと,2, 3の通販ショップからの受付・出荷メールが消失分に該当すると思います.

ほぼ回復

最近のやりとりはほとんど,GMailなので,上記の復元の後,GMailのゴミ箱からこの3日間分のメール(処理済みなのでGMail上では捨ててました)を探し出して,たぶん,ほとんど回復できたのではないかと思います.

Slackware ARM: ntpパッケージupdate時の注意

自分宛の注意事項です.

Raspberry Piは,バッテリーで駆動される時計を持っていませんから,起動時は1970年1月1日になってしまいます.

Slackware ARMは他のdistroと違って,起動スクリプトにこれをなんとかする仕組みがないので,ntpdが同期して最初に内蔵時計を更新するまで,1970年1月1日のままで,いろいろ不都合が起きます.

そこで,rc.ntpdのstart()内に,ntpdateを使ってとりあえずどこかの時間サーバーから時刻をもらってくるコマンドを書き加えています.

しかし,ntpのパッケージをupdateすると,オリジナルのntpdateコマンドの入ってないスクリプトに上書きされて,この機能が失われてしまいます.

ということで,リブートしたとき1970年1月1日になるようだったら,rc.ntpd-has-ntpdateとして保存しているスクリプトをrc.ntpdに上書きコピーすること(念のため当該スクリプトが更新されていないかも確認する).

Kernel 4.19.36ではext4(SLAB?)関係のバグ改善か(Raspberry Pi)

以前,Raspberry PiのKernelが4.14系列から4.19系列になったときupdateしたら,rsyncを使う自作バックアップスクリプトを実行すると,rsync実行中にシステムが無応答になったので,しばらくKernelを4.14系列の最終の4.14.98-v7+にとどめていました(「Kernel 4.19.xはRasPiにNGか」).

昨日,久しぶりに,4.19へのupgradeを敢行してみました(4.19.36-v7+)ところ,1度目のバックアップスクリプト実行は,トラブルなく終わりました.

まだ,1度だけですが,以前は1度で確実にトラブりましたので,改善された可能性が高いです.しばらくこのまま様子を見ます.

追記

よく理解しているわけではありませんが,rsyncによるバックアップ中slabtopで観察していると,4.19.23, 25のときは,ext4_inode_cacheのcache sizeは増える一方で制御が効いていないようでしたが,4.19.36では,増えたり減ったりしています(「アンダーコントロール」の状況^^; ).

SLAB関係のbugというよりは,ext4関係のbugなのかもしれません.動きゃいいのでこれ以上調べませんが^^;