カテゴリー: 技術系memo

  • WordPressでアップデートするとhash_algos() がエラーになる

    PHPをPHP7.3に上げたところ、Wordpressのアップデートで、下記のエラーが表示された。

    Fatal error: Uncaught Error: Call to undefined function hash_algos() in /usr/xxxxxx/xxxxxx/wp-admin/includes/file.php:1166 Stack trace: #0 
    

    該当ファイルのエラーになったソースコードをみると下記のようになっていた。

            if ( ! function_exists( 'sodium_crypto_sign_verify_detached' ) || ! in_\
    array( 'sha384', array_map( 'strtolower', hash_algos() ) ) ) {
    

    「hash_alogs()」でエラーになっているようだ。調べてみたら、php73-hash-7.3.X がインストールされていなかった。FreeBSDでパッケージから、php73-hashをインストールして、apacheを再起動した。

    # pkg install php73-hash
    Updating FreeBSD repository catalogue...
    FreeBSD repository is up to date.
    All repositories are up to date.
    The following 1 package(s) will be affected (of 0 checked):
    
    New packages to be INSTALLED:
    	php73-hash: 7.3.8
    
    Number of packages to be installed: 1
    
    152 KiB to be downloaded.
    
    Proceed with this action? [y/N]: y
    [1/1] Fetching php73-hash-7.3.8.txz: 100%  152 KiB 155.8kB/s    00:01    
    Checking integrity... done (0 conflicting)
    [1/1] Installing php73-hash-7.3.8...
    [1/1] Extracting php73-hash-7.3.8: 100%
    Message from php73-hash-7.3.8:
    
    This file has been added to automatically load the installed extension:
    /usr/local/etc/php/ext-20-hash.ini
    

    すぐにWordpressのアップデートを試すと、「別の更新が進行中です。」と出てしまうことがある。これは、前のアップデートによるロックが発生しているため。15分経てば、DBのロックが解除されるので、時間が立ってから試す。

  • WordPressで、xml_parser_create()のエラーが発生した

    PHPをPHP5.6からPHP7.3に上げたところ、Wordpressで以下のエラーが発生した。

    Fatal error: Uncaught Error: Call to undefined function xml_parser_create()
    

    PHPのオプションで、xmlに関するモジュールがインストールされていないことが原因だった。FreeBSDでパッケージからインストールしているので、下記のようにpkgコマンドでインストール。その後、Apacheを再起動し、無事にエラーは解消。

    pkg install php73-xml-7.3.8 
    
  • php56からphp73にあげたら、pukiwikiのRSSリーダーでエラー

    PHP5.6からPHP7.3にアップデートしたところ、pukiwikiでエラーが発生。このエラーの前に、pukiwikiはPHP7対応版の1.5.2にバージョンアップした。アップグレード用のパッチを当てたが、それでも下記のエラーが発生した。

    Parse error: syntax error, unexpected 'new' (T_NEW) in /usr/xxxxxx/xxxxxx/wiki/plugin/rssreader.inc.php on line 56
    

    エラーを調べてみると、PHP7では「NEWで生成されたオブジェクトは参照として代入できない」ので、エラーになっていることが判明。とりあえず、動作するようにしたかったので、参照渡しをやめるようにコードを変更した。

    変更した記述は、下記。

       //変更前
       //$r =& new XML_RSS($rdf);
       //変更後 =& を = に変更。エラー原因の参照渡しをやめている。
       $r = new XML_RSS($rdf);
    

    参考

    https://www.shirokuma-systems.com/seisaku/wordpress/284.html
    https://www.slideshare.net/yohgaki/php56php70

  • VAIO Pro PK のUSB PD充電を試してみた

    VAIO Pro PKを触る機会があったので、USB PDの充電を試してみた。

    実験結果

    • バッテリー残量:75%以上のとき
      • PD対応のAC(DC7.0V/最大3.0A) ・・・ 充電される
      • PD対応なしのAC(DC5.0V/最大2.0A) ・・・ 充電されない
      • PD対応なしのモバイルバッテリ(DC5.0V/最大2.0A) ・・・ 充電されない
    • バッテリー残量:50%以上のとき
      • PD対応のAC(DC7.0V/最大3.0A) ・・・ 充電される
      • PD対応なしのAC(DC5.0V/最大2.0A) ・・・ 充電されない
      • PD対応なしのモバイルバッテリ(DC5.0V/最大2.0A) ・・・ 充電されない
    • バッテリー残量:30%以上のとき
      • PD対応のAC(DC7.0V/最大3.0A) ・・・ 充電される
      • PD対応なしのAC(DC5.0V/最大2.0A) ・・・ 充電されない
      • PD対応なしのモバイルバッテリ(DC5.0V/最大2.0A) ・・・ 充電されない

    設定で、定電圧でも充電できるようにUSB PDの設定も変更したが充電できず。たぶん、電源供給側に問題があると思われる。なので、古いモバイルバッテリーやACアダプタでは充電することができないと考えられる。緊急時の充電を考えるならば、持ち歩く周辺機器もUSB PD対応しているものにそろえたほうがよさそうだ。

    充電に成功したUSB PD対応のACアダプタは、ソフトバンクのSB-AC20-TCPD。なお、SB-AC17-TCQCでは充電できなかった。使用したモバイルバッテリーは、初期型のニャンボー。

    VAIO Pro PKは、画面が広いのと、キーボードサイズがフルサイズなので、画面サイズが要求されるような作業には向いている。全体的に、薄いし、軽いし、モバイル性もあるのがよい。あとは、USB PDでの充電の幅が広がったらよかった。

  • Windows Server 2019と Version 1903 の違い

    メモとして。

    Windows Server 2019とWindows Server Version 1903の違いは、主にサポート期間。Windows Server 2019は、LTSCなので、ロングタイムサポートのバージョン。Windows Server Version1903は、半期チャネルのモデルなので、サポート期間が18か月。半期チャネルでの適用により、新機能が追加されていくバージョン。

    • Windows Server 2019: LTSC サポート期間が長い
    • Windows Server Version 1903: 半期チャネルバージョン、サポートが18か月。アップデートで新機能が半年ごとに提供される

    開発などではなく、安定してサーバとして利用する場合は、LTSCのWindows Server 2019を選択する。

    参考: https://docs.microsoft.com/ja-jp/windows-server/get-started/whats-new-in-windows-server

  • G Suiteで削除したユーザが作成したスケジュールが変更できない

    G Suiteで、削除したユーザが作成したGoogleカレンダーのスケジュールが変更できない。参加有無の回答もできない。これは、Googleがいうところの「カレンダーの予定の孤立」。

    「カレンダーの予定の孤立」は、G Suite上のユーザを削除するとき、Googleカレンダーの情報を他のユーザに移管せずに、削除した場合に発生する。Googleカレンダーの情報を移管した場合は、新しいオーナーがいるので、孤立はしない。

    カレンダーの予定の孤立を防ぐ
    https://support.google.com/a/answer/7400733?hl=ja

    この状態になると、スケジュールは削除しかできない。また、会議室などのリソースも開放されない。会議室などのリソースを開放するためには、スケジュールされた参加者全員がスケジュールを削除しないかぎり、リソースの開放が行われない。

  • VScodeのMarkdownでのコメントアウトの記述

    VScodeのMarkdownでも、コメントアウトの記述ができた。

    プレビューおよび、Markdown:PDFでも、コメントアウトされた記述については、表示されないことを確認。Markdownのコメントアウトは、HTMLと同じ方法で可能(下記を参照)。

    
    
  • SQLiteはVACUUMの実行が必要

    SQLiteは、INSERT、DELETEが多い場合、DBの断片化が多くなる。自動では、断片化した後の不要領域を解放しないため、定期なVACUUMコマンドの実行が必要。VACUUMによって不要領域のメンテナンスをしないと、性能に影響がでる。

  • Acronis 12.5のデフォルトDBはSQLite

    Acronis 12.5をインストールしたときに、バックアップ情報を保存する先のDBは、SQLite。ファイルサイズに上限はないが、サイズが増えれば増えるほど、性能には難あり。

    Acronis12.5は、バックアップの情報がよく管理サーバ上で記録されていなかったりする。バックアップのタスクが増えれば増えるほど、不安定なことがあるので、SQLiteがボトルネックになっている可能性が高い。大規模導入なら、他DBMSを選んだほうがよい。

    参考: https://kb.acronis.com/node/60767

  • VSCodeのCisco用のコマンドモード

    Visual Studio CodeにCiscoのシンタックスを解釈できるようにするExtension。下記のエクステンションのページからインストールボタンを押して、インストールする。

    vscode-cisco-syntax
    https://marketplace.visualstudio.com/items?itemName=jamiewoodio.cisco

    インストール後は、言語モードの選択で「cisco」と指定する。そうすると、Ciscoのシンタックスで色付けなどをしてくれる。

    コンフィグをみるときのサポートくらいに使える。コンフィグに対して、完全には、色がつかないが、ある程度つくだけでも、可読性はあがる。コンソールの作業履歴もモード指定すれば、シンタックスで色をつけてくれるのでよい。