python で ocr マイナンバーカードは画像に工夫が必要

1)python インストール

Windows PowerShellもあるけど、ディレクトリの移動も不自由したのでコマンドプロンプトで

C:\Users\ユーザ>python

インストールされていない場合は、Microsoft store が起動してインストールをうながされる。
あるいは下記を参照してインストール
https://www.python.jp/install/windows/install.html

コマンドプロンプトでインストールの確認
C:\Users\ユーザ>python
Python 3.11.1 (tags/v3.11.1:a7a450f, Dec 6 2022, 19:58:39) [MSC v.1934 64 bit (AMD64)] on win32
Type “help”, “copyright”, “credits” or “license” for more information.
>>>exit()

exit() でコマンドプロンプトへ戻る。

2)Tesseract インストール

https://github.com/UB-Mannheim/tesseract/wiki

japanese 4箇所チェック

下記にインストールされる

C:\Program Files\Tesseract-OCR

3)PyOCR のインストール

コマンドプロンプトで

C:\Users\ユーザ>pip install pyocr
C:\Users\ユーザ>pip list //インストールできたか確認

4)macだけど python の実行方法がわかる

https://plog.shinmaiblog.com/pyocr-tesseract/
python3 main.py

5)PySimpleGUIインストール

https://qiita.com/ku_a_i/items/20004800adc78fa94a0b

コマンドプロンプトで

C:\Users\ユーザ>pip install PySimpleGUI

6)ocr.py というファイルにしてコマンドから実行

https://qiita.com/ku_a_i/items/20004800adc78fa94a0b

上記のコードを参考にして、さくらエディタで「ocr.py」を保存

保存場所 C:\Users\ユーザ

コマンドプロンプトで保存場所へ移動

C:\Users\ユーザ>cd C:\Users\ユーザ

コマンドプロンプトで実行

C:\Users\ユーザ>python ocr.py

エラーが出る
Traceback (most recent call last):
File “C:\Users\MTGP\ocr0.py”, line 29, in <module>
txt_pyocr = tool.image_to_string(img_con , lang=’jpn’, builder=builder)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “C:\Users\MTGP\AppData\Local\Programs\Python\Python311\Lib\site-packages\pyocr\tesseract.py”, line 372, in image_to_string
raise TesseractError(status, errors)
pyocr.error.TesseractError: (1, b’Error opening data file C:\\Program Files\\Tesseract-OCR\tessdata/jpn.traineddata\r\nPlease make sure the TESSDATA_PREFIX environment variable is set to your “tessdata” directory.\r\nFailed loading language \’jpn\’\r\nTesseract couldn\’t load any languages!\r\nCould not initialize tesseract.\r\n’)

パスの書き方が違っていた
<誤>
TESSERACT_PATH = ‘C:\Program Files\Tesseract-OCR’ #インストールしたTesseract-OCRのpath
TESSDATA_PATH = ‘C:\xProgram Files\Tesseract-OCR\tessdata’ #tessdataのpath
<正>
TESSERACT_PATH = ‘C:\\Program Files\\Tesseract-OCR’ #インストールしたTesseract-OCRのpath
TESSDATA_PATH = ‘C:\\Program Files\\Tesseract-OCR\\tessdata’ #tessdataのpath

個人番号については、QRコードで入力というのも手だけど。操作や手数は増やしたくないな。

 

違うパソコン、余計な部分を白にした画像でやった結果 かなりいい。

sendmail, smtp, 結局ホスト名とドメイン同じで、フォームメールの gmail 迷惑メールフォルダ入りを回避

問い合わせページにアクセスが増えているのに、メールフォームの利用がない。

SMTP にすることで、迷惑メール判定を軽減できるかと思い試してみた。

https://www.synck.com/downloads/cgi-perl/mailformpro/feature_1477934393.html

  • sendmail
  • SMTPS
  • SMTP

それぞれ試したが、gmail では、3つとも迷惑メールフォルダに入ってしまう。
ホスト名が、「v2002.coreserver.jp」でドメイン名と合わない。「アカウント.v2002.coreserver.jp」のメールアドレスにしてみたが、「Received-SPF: none 」となって、やはり迷惑メールフォルダに。

sendmail、smtp のヘッダーを見比べても大きな差はないので、ホスト名とドメインが同じサーバで、sendmail のcgiから送信したら、問題なく受信できた。SMTP神話よりホスト名の一致が必須。

  • コアサーバでは、デフォルトのホスト名で spf がきかない
  • さくらインターネットでは、デフォルトのホスト名にSPFはつくけど DKIM は使えない。(試してはいない)

以前、SSLが自由に使えない時にデフォルトのホスト名をよく使っていたのを思い出す。

メールフォームをちゃんとしたいときには、VPSで独自のサーバを構築する方法になる。

一般的に万能なのは、Google WorkSpace で独自ドメインを利用することだろうけれども、DNSの記述が汚く見えるので、私がまだ知らない世界では使えないかもしれない。

Problem: problem with installed package awscli-1.23.10-2.el9.noarch

アップデートに失敗して、ほかの更新も邪魔してしまうので解決策をさがした。
丁寧なやり取りと、早い解決策の提示。ありがとう。

Last metadata expiration check: 2:30:22 ago on Thu Aug 3 06:26:03 2023.
Error:
Problem: problem with installed package awscli-1.23.10-2.el9.noarch
– package awscli-1.23.10-2.el9.noarch requires (python3.9dist(rsa) < 4.9 with python3.9dist(rsa) >= 3.1.2), but none of the providers can be installed
– cannot install both python3-rsa-4.9-2.el9.noarch and python3-rsa-4.8-1.el9.noarch
– cannot install the best update candidate for package python3-rsa-4.8-1.el9.noarch
(try to add ‘–allowerasing’ to command line to replace conflicting packages or ‘–skip-broken’ to skip uninstallable packages or ‘–nobest’ to use not only best candidate packages)

 

最後のメタデータ有効期限チェック: 2023 年 8 月 3 日木曜日 06:26:03 の 2:30:22 前。
エラー:
問題: インストールされているパッケージ awscli-1.23.10-2.el9.noarch に問題があります
– パッケージ awscli-1.23.10-2.el9.noarch には (python3.9dist(rsa) < 4.9 with python3.9dist(rsa) >= 3.1.2) が必要ですが、どのプロバイダーもインストールできません
– python3-rsa-4.9-2.el9.noarch と python3-rsa-4.8-1.el9.noarch の両方をインストールすることはできません
– パッケージ python3-rsa-4.8-1.el9.noarch の最適な更新候補をインストールできません
(競合するパッケージを置き換える場合はコマンドラインに「–allowerasing」を追加するか、アンインストール可能なパッケージをスキップする場合は「–skip-broken」を、最適な候補パッケージだけを使用しない場合は「–nobest」を追加してみてください)

 

参照ページ

https://forum.virtualmin.com/t/package-update-failes-python3-rsa/121815

解決策・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

Fixed with command dnf update –best –allowerasing I did remove awscli-1.23.10-2.el9.noarch. I don’t use AWS so it should be ok. Steve

コマンド dnf update –best –allowerasing で修正し、awscli-1.23.10-2.el9.noarch を削除しました。 AWSは使っていないので大丈夫だと思います。 スティーブ

・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

[root@マシン ~]# dnf update –best –allowerasing
メタデータの期限切れの最終確認: 0:13:35 前の 2023年08月03日 10時03分42秒 に実施しました。
依存関係が解決しました。
==================================================================================================================================================================================
パッケージ アーキテクチャー バージョン リポジトリー サイズ
==================================================================================================================================================================================
アップグレード:
python3-rsa noarch 4.9-2.el9 epel 59 k
依存関係パッケージの削除:
awscli noarch 1.23.10-2.el9 @epel 8.5 M

トランザクションの概要
==================================================================================================================================================================================
アップグレード 1 パッケージ
削除 1 パッケージ

ダウンロードサイズの合計: 59 k
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
python3-rsa-4.9-2.el9.noarch.rpm 184 kB/s | 59 kB 00:00
———————————————————————————————————————————————————————————-
合計 53 kB/s | 59 kB 00:01
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
準備 : 1/1
アップグレード中 : python3-rsa-4.9-2.el9.noarch 1/3
削除 : awscli-1.23.10-2.el9.noarch 2/3
整理 : python3-rsa-4.8-1.el9.noarch 3/3
scriptletの実行中: python3-rsa-4.8-1.el9.noarch 3/3
検証 : python3-rsa-4.9-2.el9.noarch 1/3
検証 : python3-rsa-4.8-1.el9.noarch 2/3
検証 : awscli-1.23.10-2.el9.noarch 3/3

アップグレード済み:
python3-rsa-4.9-2.el9.noarch
削除しました:
awscli-1.23.10-2.el9.noarch

完了しました!
[root@マシン ~]#

さくらインターネットの支払いがGMOあおぞらネット銀行のデビッドカードでOK。だけどクセあり

さくらインターネットのレンタルサーバ、スタンダードプランの支払いにGMOあおぞらネット銀行のデビッドカードを設定できて、支払いにも成功したのだけれども、少しクセがあるのでメモ。

  • スタンダードプランは、クレジットカードの年払いにしている
  • カードの情報に、GMOあおぞらネット銀行のデビッドカードを設定
  • さくらインターネットの請求日は、請求月の 10日。例:例6月10日
  • 支払いは月末。:例6月30日
  • 契約者のページには、請求書の情報が10日すぎに表示される。「未」という赤い文字が悲しい。
  • 例:6月27日にデビッドカードから引き落としがある。
  • さくらインターネットの契約者ページの支払いは「未」のまま
  • 例:6月30日 さくらインターネットの契約者ページの支払いは「済」となる

つまり、デビッドカードの場合には、月末の支払日より前に残高を請求額以上にしておかないといけないということ。

クレジットカードの与信ということになると思うのだけれども、デビッドカードの場合には、こういった癖があるということ。

最近、いくつかの銀行口座を作った。
申請時に覚えがないけれども、大手は普通のキャッシュカードとデビッドカードの2つ。
新興のネット銀行は、キャッシュカードとデビッドカードが1つになったカードが1つ送られてきた。
オプションでクレジットカードの希望はあった。

550 5.7.1 header are not accepted. 迷惑メール判定が厳しくなったのでメールフォームを改修

2023年6月現在

Gmail については、返信先のアドレスが、送信元のドメインと異なると、「550 5.7.1 header are not accepted.」として、配送されずにエラーメールが返ってくる。

表題とは少し異なるがレンタルサーバから悲鳴も上がっている。

https://help.sakura.ad.jp/notification/440-2/

https://www.value-domain.com/information/detail/?no=20230607-2

  • SPF が正しく記載できていること
  • 逆引き できること
  • DKIM が記述されていること (これがクリアできてると「重要」のフォルダに入る?)
  • 送信元のドメインと、送信者、返信先のドメインが同じこと

ということで、サイトの「お問い合わせ」メールフォームのプログラムについて改修する。

フォームメールのプログラム改造

  1. 閲覧者がサイトのメールフォームを利用
    問い合わせに返信してもらえるように、メールアドレスを記入して送信
  2. サイト運営者にメールとして問い合わせが届く
    このとき通常は、相手のメールアドレスが返信先になっている。
    この状況が、Gmailは「よろしくない」としてエラーとして処理するようになった。
    受信側が Gmailと無関係であればエラーは出ないが、受信側が Gmail そのものだったり、転送に Gmailがあるとエラーメールが返ってくる。
  3. フォームメールのプログラムを改造
    サイト運営者に届く際のメールアドレスをサイトのドメインと同じものにした。
    問い合わせの担当者は「返信」という操作はできなくなる。
  4. 実装してみて
    ・Gmail できれいに受信できた。
    ・メールアドレスを入力させないフォームで、迷惑メールとして受信していたメールが、
    「重要」フォルダに入る厚遇を受けた。(SPF、逆引き、DKIM対応のメールアドレス。)
    ・サイト運営者に届くメールも今までより早く着信している気がする。

Gmail 側の対策

独自ドメインのメールは、知る限り多くの場面で「迷惑メールフォルダ」に入ってしまう。

  • Gmail アプリで、「迷惑メールではない」というボタンを押す。
    学習させていかないといけない。
    2023.06.16追記、アプリで迷惑メールフォルダへいけない。ChromeでログインしてGmailを使う。
  • ブラウザでGoogleにログイン、Gmail で「迷惑メールフォルダ」をチェックする。
  • Gmail をメールアプリのPOP3で利用している場合は、IMAPにして「迷惑メールフォルダ」へアクセスしやすくする。

つい最近までは使っていたのだけれども、Gmail を有料で使う Google Work Space についてはどうなっているかは不明です。

mac mini 2018 増設した実メモリを認識させるコマンド操作を chat GPT に教えてもらった

mac mini 2018 を後からユーザーがメモリ増設したときには、やはりコマンド操作が必要なようだ。

「mac mini 2018 実メモリを認識させれるコマンド」と、chat GPTに尋ねる。

Mac mini 2018で実行することができるコマンドは、以下の通りです。

ターミナルを開きます。
「sudo nvram boot-args=”maxmem={RAM容量}」を入力します。{RAM容量}は、Mac mini 2018に搭載されているRAMの容量をMB単位で指定します。例えば、16GBのRAMを搭載している場合は、「sudo nvram boot-args=”maxmem=16384」を入力します。
コマンドを実行するには、管理者パスワードを入力する必要があります。

これで、Mac mini 2018が実際に搭載しているRAM容量が認識されるようになります。ただし、これによってMac miniの性能が向上するわけではありません。また、RAM容量を超える量を指定すると、システムが安定しなくなる可能性があるため、注意が必要です。

sudo nvram boot-args="maxmem=32768"

Mac mini 2018で実行することができるコマンドは、以下の通りです。

ターミナルを開きます。
「top -l 1 | grep PhysMem」を入力します。
コマンドを実行すると、現在の実メモリ使用量が表示されます。

また、以下のコマンドを実行することで、詳細なメモリ使用状況を確認することもできます。

ターミナルを開きます。
「vm_stat」を入力します。
コマンドを実行すると、メモリ使用量に関する詳細な情報が表示されます。

これらのコマンドを使うことで、Mac mini 2018が実際に搭載しているRAM容量や、現在のメモリ使用状況を調べることができます。

変化があった。
ドックにある主要なアプリを全部起動させても、ファンが忙しく回ることはない。
4年間も性能を活かせていなかったのが悔しい。

2023.05.13 追記 ==========

しばらく使ったが、8Gを超えない。純正との違いで確認できないのがもどかしい。

スナップショット情報を取得できませんでした:ファイルにアクセスするための十分な権限がありません。

2023年4月18日 macOS Monterey 12.6.5 にアップデート後に、仮想マシンが起動できない。
取り急ぎ、仮想マシンのファイルを外付けSSDから、本体内蔵のSSDへコピーして起動に成功。

落ち着いたところで調べてみる。
本来は、

  • ユーザー:読み/書き
  • staff:読み出しのみ
  • everyone:読み出しのみ

アクセス権がないと言われた仮想マシンのファイル、外付けSSDごとアクセス権が変わってしまっていた。

  • 取得中…:読み/書き
  • システム:読み/書き
  • admin:読み/書き
  • everyone:読み出しのみ

静電気に弱い外付けでもあるので、機材を変えることにした。

Virtualmin でマルチ PHP CGI/FCGId モードではディレクトリに別バージョンを指定も可能

https://www.virtualmin.com/documentation/web/multiplephp/

複数の PHP バージョンがインストールされている場合、Virtualmin を使用すると、特定のドメインで使用する実行モードと PHP バージョンを選択できます。 利用可能な実行モードは、FPM (推奨) と CGI/FCGId です。 後者のモードでは、ディレクトリごとに異なる PHP バージョンを設定できます。

サイトやサブドメインはもちろん、ディレクトリごとに php のバージョンを変えられる自由度があります。

Webmin メールアプリの設定違いでブロックされた時の解除方法 Fail2Ban

Virtualmin で設定されたサイトの場合、デフォルトで用意されるアカウント「postmaster@example.com」は、ユーザーネーム username が「postmaster@example.com」ではないため、メールアプリの設定違いでブロックされてしまうことがある。
デフォルトの設定候補がこんなかんじ、
サーバ:mail.example.com(mail.は証明書エラーが出ていたのをワイルドカードの証明書にして解決)
ユーザ:postmaster または、postmaster@example.com

あるいは、ユーザーがパスワードを手入力などで何度も間違えた場合にも起こる。

ブロックの解除方法

Webmin > Networking > Fail2Ban Intrusion Detector> Jails Status And Actions

画面にはブロックされているIPアドレスが表示されている。
IPアドレスをクリックするとリストから消える。間違ったアクセスを繰り返していると再び表示される。
ユーザーと連絡が取れれば、接続しているIPアドレスを聞いて、IPアドレスを確認したうえで、ブロックの解除。
「Unblock All IPs for Selected Jails」というボタンも使えるかもしれない。

VPS で Virtualmin で LAMP そしてメール逆引きDKIM 対応 mail.example.com

前提として

ドメインは、独自のネームサーバを指定できるドメイン管理サービス。ここではバリュードメイン。

VPS

  1. NTT WebARENA Indigo
    クレジットカードの登録が必要。VISA デビッドはだめ。
    LAMP インストールまで進めたが、逆引きできない。Pro バージョンは逆引きできる。
    swap は自分で用意
    SSH は「private_key.txt」を使用
    Rocky Linux root ユーザはデフォルトではない
    wget なし
  2. KAGOYA CLOUD VPS
    ユーザー登録が済んだ後で、不備があるということで拒否された。
    たぶんVISA デビッドだったから。(Google WorkSpace は VISA デビッドでもなんら問題ないのに。)
  3. ConoHa
    前もって入金しておくことで進めた。
    LAMP 逆引き、IPv6 すべてOK
    swap は用意されていた。
    SSH はそのまま使えた。
    Rocky Linux root ユーザ
    wget あり

そもそもは、送受信サーバに、「mail.example.com」とできるサーバーを探すこと。

virtualmin をインストール

  1. OSインストール
  2. SSH root@111.222.***.***
    でSSH接続
  3. swap 追加
    https://qiita.com/SkyLaptor/items/1d77b665f7fc5809359f
    #dd if=/dev/zero of=/var/swapfile bs=128M count=64
    #chmod 600 /var/swapfile
    #mkswap /var/swapfile
    # swapon /var/swapfile
    # swapon -s
    # cp -p /etc/fstab /etc/fstab.default
    # vi /etc/fstab
    ※適当なところに追記
    /var/swapfile swap swap defaults 0 0
    # reboot
    # swapon -s
  4. Virtualmin インストール
    #dnf list installed | grep wget
    #wget https://software.virtualmin.com/gpl/scripts/virtualmin-install.sh
    #sudo sh virtualmin-install.sh
    hostname:example.com
  5. Webmin で設定
    http://111.222.***.***:10000
    サーバーと同じアカウント情報でログイン
    webmin > Webmin Configuration > IP Access Control > Only allow from listed addresses
    真っ先に接続できるIPアドレスを限定
    sshサーバ 停止
  6. example.com
    DNSはインストール前に 111.222.***.*** に向けてある。
    example.com 仮想サイトの設定を進め、SSLインストールまでできたら、
    https://example.com:10000 でログインしなおす
  7. ネームサーバを設定
    ns1.example.com
    ns2.example.com
  8. DKIM 設定
  9. check-auth@verifier.port25.com へ空メール送信
    Summary of Results
    ==========================================================
    SPF check: pass
    “iprev” check: pass
    DKIM check: pass
  10. メールアプリの送受信サーバを mail.example.comとする。
    エラー:証明書が違うと怒られる
    いろいろ試そうと考えてみたけれど、デフォルトで、MX は mail.example.com だし、
    エラーは、接続できた後に証明書違いということだから、SSL証明書をいじることにする
  11. SSL 証明書も、デフォルトで、mail.example.com がある。
    ワイルドカードのSSL証明書にしてみる。
  12. メールサーバを再起動して、
    メールアプリの設定を、mail.example.com とする。
    成功!
  13. IPv6 も設定
    逆引きも設定できる

メモ

mail.example.com のレンタルサーバからの引っ越しが必要になった場合は対応可能ということがわかった。
VPS のプランはいろいろあるけれども、

  • RAM は swap で増やせる。メールのウイルスチェックや、データベースにも使用して 8G以上は増やしたい
  • CPU は経験上 3コア以上(ローカルサーバの4コア、仮想2コアでかなり忙しい。)
  • SSD は10人程度の事業所のサイトとメールなら50Gあれば十分じゃないかな、、
  • OS は CentOS系 (ローカルの仮想では、Ubuntu などと相性が悪かった。)
    Virtualmin での優先順位も高い。マルチphpバージョンとか。

レンタルサーバのサポートほど細かいことはできないかもしれない。自分でいろいろできるのはある意味気持ちが楽になる。サポート頼みのほうが気楽かもしれないけれど、いろいろ考えさせられる場面に出くわすことが多いため、今回のVPS検証に至った。
ただ、レンタルサーバの3倍の維持費になりそうなので、今のところレンタルサーバのサービスと仲良くしていくことになる。

ネームサーバーを指定してドメインの x._domainkey. を取得するphpコード

$hostname = 'example.com';
$ns_server = 'ns1.example.com';
$dns_records = dns_get_record('x._domainkey.'.$hostname, DNS_TXT, ['nameservers' => [$ns_server]]);

foreach ($dns_records as $record) {
    if (strpos($record['txt'], 'v=DKIM1') !== false) {
        echo $record['txt'];
        break;
    }

コアサーバーのsshで取得できる文字列は取得できなかった。やはり公開エリアからは権限がないかな。

ChatGPT すご。

今さらだけど Ctrl + クリックでリストから複数選択

ワードプレスのプラグイン「Author Category」では投稿できるカテゴリーを複数指定する際に、下記のように説明している。

select a category to limit an author to post just in that category (use Crtl to select more then one).

ところが、デフォルト設定の VMware Fusion の仮想環境でWindows を操作すると、Ctrl + マウスの操作は期待通りに動かない。

スクリーンキーボードを呼び出して操作したらできた。
下の画像は、「shift」も押されているが、これはスクリーンショットを操作したため。

いままで、そんなに困らなかったし、覚える必要もなかったのかもしれないけれど、phpMyAdmin で複数のデータベースを選択するときには困っていたので助かる。

Macでは、コマンド+マウス操作になる。

Windows PCの導入を考えている。いろいろ便利な操作ができそうだ。

ワードプレス プラグイン Author Category を改修

Fatal error: Uncaught TypeError: count(): Argument #1 ($value) must be of type Countable|array, string given in /Applications/XAMPP/xamppfiles/htdocs/ーーー/wp-content/plugins/author-category/author-category.php:192 Stack trace: #0 /Applications/XAMPP/xamppfiles/htdocs/ーーー/wp-includes/class-wp-hook.php(309): author_category->add_meta_box(‘post’) #1 /Applications/XAMPP/xamppfiles/htdocs/ーーー/wp-includes/class-wp-hook.php(331): WP_Hook->apply_filters(”, Array) #2 /Applications/XAMPP/xamppfiles/htdocs/ーーー/wp-includes/plugin.php(476): WP_Hook->do_action(Array) #3 /Applications/XAMPP/xamppfiles/htdocsーーー/wp-admin/includes/meta-boxes.php(1599): do_action(‘add_meta_boxes’, ‘post’, Object(WP_Post)) #4 /Applications/XAMPP/xamppfiles/htdocs/ーーー/wp-admin/edit-form-advanced.php(271): register_and_do_post_meta_boxes(Object(WP_Post)) #5 /Applications/XAMPP/xamppfiles/htdocs/ーーー/wp-admin/post-new.php(75): require(‘/Applications/X…’) #6 {main} thrown in /Applications/XAMPP/xamppfiles/htdocs/ーーー/wp-content/plugins/author-category/author-category.php on line 192

 

ローカルでは、191行目を明示的に配列にすることで動作した。

191:$cat = [$this->get_user_cat($current_user->ID)];
118:$cat = [$this->get_user_cat()];
174:$cat = [$this->get_user_cat($current_user->ID)];
321:$cat = [get_user_meta($user_id,'_author_cat',true)];

ほかの118行目、174行目、321行目は、count($cat) があるので、191行目と同じ処理とした。

コアサーバー ウェブ アクセスログを自動保存(テスト中)

ログを調べなければいけない事案があったので、FTPでログファイルを取り出した。
コアサーバーのサポートへ問い合わせたが、ログファイルは7日間だけで変更はできない。

  • ホームページを閲覧すると、ログファイルをコピー。
    丸一日1回もアクセスがないと動作しない。。。
  • コピーがすでにある場合は、「logfile:ok」
  • 何かしらでコピーできていない時は、「logfile:error」
  • ファイル名を「月日」にすれば1年前は上書きされるので1年分の容量
    ファイル名を「日」にすれば1月前は上書きされるので1月分の容量

  • 月替わりなどまだチェック必要
  • 20230308 変更、0:01 にアクセスがあると1日前のログがコピーされてしまいそうなので、6時以降のアクセスでコピーすることにした

date_default_timezone_set('Asia/Tokyo');
$ymd = date("Ymd");
$mmdd = date("md");
$jikan = date("G");
$yyy = date("Y");
$mmm = date("M");
// コアサーバーのログファイル名 May-2023.tar.gz
$logfile = "$mmm-$yyy.tar.gz";
$logfiletoday = "/home/ユーザ/domains/ドメイン.jp/logs/$logfile";
// ファイル名を変数に格納
$filename = "/home/ユーザ/domains/ドメイン.jp/public_html/秘密-logs/$mmdd.tar.gz";
// ファイルが存在するかチェックする
if (file_exists($filename) and $jikan > 6) {
echo "logfile:ok";
} else if (copy($logfiletoday, $filename)) {
echo $logfile;
} else { echo "logfile:error"; }

追記

月はじめ1日、todayのファイルが2つできる時間帯があるようだ。コピーするタイミングによっては情報に欠落が出る場合がある。

intel Mac XAMPP アップデート php8.0.13 から php8.0.25

ローカルが php8.0.13 であることが原因なのか、レンタルサーバーで公開しているサイトの様子が少し違う。
そこで、ローカルの php8.0 を最新にしてみることにする。

1)アプリのダウンロード

php8.0.25 を使う
https://www.apachefriends.org/jp/download.html

2)バックアップ

45個のデータベースを一括でエクスポート。
ユーザーをエクスポート、表示されたテキストを拡張子.sqlのファイルに。「user.sql」

  • 複数ユーザのエクスポート、インポート 18K「user.sql」
  • 複数データベースのエクスポート、インポート 約170M「localhost.sql」

3)既存のXAMPPをアンインストール

XAMPP uninstall アプリを使う。アプリフォルダー「XAMPP」に同梱されている。

 

フォルダーやファイルが残る
XAMPP uninstall アプリが削除しなかったのは、
htdocs だけ残す。

4)新しい XAMPP をインストール

“xampp-osx-8.0.25-0-installer”は、開発元を検証できないため開けません。

システム環境設定>セキュリティとプライバシー>タブ:一般 にて操作

XAMPP Developer Files
Build files for development: include, man, docs and share folders.

これはチェックを外してインストールしない。

エラーなどなく、インストールできた。

5)設定

  1. phpmyadmin より ユーザ:root にパスワード設定
  2. config.inc.php の設定をいじる
  3. config.inc.php に自分のアクセス権をファインダーから与える
    $cfg[‘Servers’][$i][‘AllowNoPassword’] = true;

    $cfg[‘Servers’][$i][‘AllowNoPassword’] = false;
    $cfg[‘Servers’][$i][‘auth_type’] = ‘config’;

    $cfg[‘Servers’][$i][‘auth_type’] = ‘cookie’;
  4. ユーザをインポート
  5. データベースをインポート
    タイムアウトしてしまうので
    「php.ini」でアップロード容量を増やす
    max_execution_time 360
    upload_max_filesize 256M
    post_max_size 468M
    memory_limit 512M
    「config.inc.php」タイムアウトに関係する時間を増やす。
    「my.cnf」タイムアウトに関係する時間を増やす。
    XAMPP を再起動しても5分くらいで止まってしまう。
    インポート時の「PHP タイムアウト制限に近づいたことをスクリプトが検出した場合にインポートを中断できるようにします。 」を止める。
    データベース「pma」でエラーが起こる。「localhost.sql」から「pma」など失敗するデータベースのブロックをテキストエディタで削除する。

 

6.FTP アクセス権

ユーザ:daemon
パスワード:xampp

cd /Applications/XAMPP/xamppfiles/
sudo chown -R daemon:daemon htdocs

php 8.0.25 にできて、今までのローカルサイトのワードプレスも閲覧、作業できるようになった。

7.メモ

古い XAMPP の「htdocs」データは残しても問題ない。
データベースは残すことができるけれど、データベースユーザは残せない。
データベースユーザをインポートして、古いデータベースを使おうとすると、ワードプレスの初期設定画面から始まってしまった。何か簡単な方法があったかもしれない。
一括で複数のデータベース(今回は45個)をインポートしようとすると、容量、時間、既存データベースと衝突すなど、越えなければいけないハードルが複数出てきた。
アクセス解析やログを保存しているテーブルを空にしてみたけど60メガぐらいしか減らせなかった。

編集アプリからアクセスできて、ウェブサーバのデータとして閲覧もできて、phpのバージョンを簡単に変えられる環境が必要だ。

adobe イラストレーター SVG で画像を css マスク、PNG 画像を jpg にして容量軽減

https://ics.media/entry/210701/

上記を参考にさせていただいた。

画像に対して、svg のマスクを指定すると切り抜けて、透過のあるPNGファイルをjpegにして容量を軽減するときに使った。

css

#amane-pc{mask-image: url(“img/amane-pc.svg”);
mask-repeat: no-repeat;
mask-position:center;
mask-size: 100%;
/* Chrome, Safari用 */
-webkit-mask-image: url(“img/amane-pc.svg”);
-webkit-mask-repeat: no-repeat;
-webkit-mask-position: center;
-webkit-mask-size: 100%;

}

html

<img id=”amane-pc” src=”/img/index-bg_top02.jpg” alt=”amane”>

メモ:クォーテーションなど置き換わってるので、コピペでは使いにくい。
同じ画像がいくつもページ内ある場合は、id でなく class でいいね。

準備

Adobe Illustrator アドビ イラストレーターで、パスを用意。
画像の外枠と同じサイズの透明な四角もつけて位置をあわせやすくする。
切り抜く図柄に色を付けて、外の透明な四角い枠といっしょに、右クリックでSVGに書き出す。
透過のかかったPNGファイルは、Adobe Photoshop でレイヤーを統合してjpegファイルにする。レイヤーを統合する際に、背景色を、htmlの背景色にあわせておくと、切り抜かれた周りが、ブラウザできれいに表示できると思う。切り抜きパスが職人技でうまければ問題はない。

イラストレーターの図柄の画像も SVG になったりで、png画像を使う場面は減りそうだ。

App Store Twitter。Mac版のツイッターがインストールできるようになってた。

以前はあったのかも知れないけれど、直近ではなかったはずの、Mac版の Twitter が表示されている。
2023年01月09日でインストール数が2万というのはスタート(リスタート)したばかりのようだ。

Twitter がほかのSNSに差をつけられていたのは、Mac版がなかったからではないかと考えていた。ヘビーユーザは、PCでいくつもの画面で作業したほうがいいから。

twitter の使い方がいまいちわかっていない素人です。
上の画面、向かって左が Intel Mac。向かって右が Windows。
下の画面は、M1 Mac です。

Mac 版は検索ツールのアイコンが「#」で、自分のところだけかもしれないけれど、Intel 版はおすすめ、トレンド、ニュースなどが表示できていない。

追記1、しばらくしたら表示できました。問題なし。左のアイコンを長押しすると表示が変わる。

追記2、Windows 版は複数画面表示できるけど、Mac 版は複数表示の仕方は不明。

Outlook でトラブル Windowsアップデートのタイミングで複数

  • Outlook2019 でメールが使えなくなっていたので、Microsoft 365 にしたら送受信の履歴がおかしい。
  • 操作できずにOSを再インストールしたら、Outlook に GoogleWorkSpace アカウントを追加できない。

複数の問い合わせが、同時期に来た。直近で Windows のアップデートがあったタイミング。

1)Outlook に GoogleWorkSpace アカウントを追加

https://support.microsoft.com/ja-jp/office/outlook-%E3%81%AB-gmail-%E3%82%A2%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%99%E3%82%8B-70191667-9c52-4581-990e-e30318c2c081?ui=ja-jp&rs=ja-jp&ad=jp#PickTab=Outlook_for_Windows

電話認証が必要など、手数のかかる操作がある。

2)Outlook でアカウントを追加できても動作がおかしい

独自ドメインで別サービスメールがあって、クラウドにログインできていない状態では、outlookで独自ドメインメールサーバの送受信フォルダが空になっている。
独自ドメインメールをブラウザを使って、ウェブメールでメールサーバを確認しても空になっている。

手元で検証できていないが、
「Outlook.com」「Microsoft365」「Gmail」などの【クラウド】利用している場合は、
個別のメールを、思い当たるクラウドで確認。
クラウドに送受信メールがある場合は、クラウド経由の利用方法を outlook で設定する。

3)Outlook 独自ドメインメールで、思い当たるクラウドもなければ、送受信もおかしい、アカウントの追加もできない

同じPC上で意図せずWindows Mail、もっと古い Windows Livemail が動作していたことがあったので、起動して確かめてみる。
あとはアカウントを別の誰かが操作している可能性がある。

独自ドメインメールアカウントのパスワードを変えて、メールアプリを、「thunderbird」に変更する。
※この方法だと、不具合中にどこかのクラウドが受信してしまったメールは、メールアプリの窓では表示できない。

今のところこんな感じで対応

===================2023.01.06追記=========

Gmail アカウントに独自ドメインを追加すると、
Gmail の google.comサーバーが、独自ドメインサーバへ接続して受信。
このとき、独自ドメインサーバから受信したメールを削除してしまう。

メールアプリが使えないので、Gmail をブラウザからログインして使い、
別サーバのメールアカウントを追加してしまうとこのようなことが起こる