これまで気づかなかったのですが、Chromeでホームページ表示を行う際に、
このスピードメーターの写真のように、画像が90度傾いて表示されてしまうケースがあることが分かりました。<(・_・;; Internet Explorerでは正常に表示されるんだけどなぁ・・・
しかも、基本すべての画像にはwidthとheightが指定されているため、90度回って縦横長さだけはもとの寸法なものですから、おかしな縮尺で表示されてしまうのです。
ただし、すべての画像がこうなってしまう訳ではありません。ということは、EXIFデータと関係があるのかな・・・ということで回転してしまう画像のデータをオンラインEXIFビューワーのサイトで調べてみたところ、
あった、これです!! Orientationフィールドの値が「Rotate 90 CW」になっています。
こちらのフィールドは撮影時にスマホ(SOV40)が勝手に書き込んでしまう値です。
問題の起こらない画像は「Horizontal (nomarl)」という値が入っているのですが、もしかしたら、スマホ側の自動縦横判別が撮影者の意図と食い違うケースなどで、こういうことが起こるのでしょうかねぇ。
・・・でも、過去の画像も含めて、すべての画像のEXIFを書き換えるのはあまりに面倒ですし、そもそもIEでは正常表示されているので、何か手があるはず。(’o’)> いえ、Chromeだって以前は正常表示されていた気がするのです
そうだ!! それならスタイルシート側で何とかなるのでは!?
ファイル | 目的 |
js/header.js | ヘッダ表示(index.html専用) |
js/footer.js | フッタ表示(index.html専用) |
now/js/header.js | ヘッダ表示(index.html以外の全html用) |
now/js/footer.js | フッタ表示(index.html以外の全html用) |
now/js/main.js | メニュー表示動的変更用javascript |
now/js/style.css | メニュー表示動的変更含むスタイルシート |
now/js/jquery-*.*.*.min.js | jQuery 本体 |
というわけで、画像に関する文法をちょっと確認してみたところ、
img{
} |
という具合に、image-orientation参照を無効化してしまえば良いことが分かりました。(^o^) ファイル最後にたった3行の追加です
実際に、同じ画面を表示してみますと、
はい、今度はちゃんとスピードメーターの表示が正しくなりましたね。
・・・ですが、この方法も万能ではありません。
上の状態で、画像をクリックしたら拡大画像を表示するようにしているのですが、私は直接、画像を表示するURLを記載してしまっているため、スタイルシートの恩恵を受けられず、
このように90度傾いた画像が表示されてしまうのです。(v_v;;;
縮尺だけは合った状態で表示されている分、さっきの事例よりはマシではあるのですが、う〜ん、どうしたものか・・・今後の課題としたいと思います。
昨日の続きです。
少し考えてみたのですが、
との結論に至りました。
そこで、一応サーバー上にて、
# cd /var/www/html [enter] # cp -r howadebi howadebi-20200426backup [enter] |
みたいな要領でごそっとホームページ全体のバックアップを取った上で、
こちらのフリーウェア「Exif Eraser」で、トップディレクトリから画像すべてのEXIFデータ削除をすることにしました。
このツール、上の画像のように "Erase in subdirectories" にチェックをつけておけば、いちいち階層を移動することなく、すべてのサブ・ディレクトリに置かれた画像を処理してもらえるので簡単です。(^o^)p
この結果、スタイルシートの対策だけでは90度、回転してしまっていた画像も、
このように、ちゃんと期待通りの向きに表示されるようになりました。*^_^* 最初からEXIF対策しておけば、スタイルシートでの対策は不要だったわけですが、まぁ、いいか・・・
こちらの日記に書いていた通り、我が家でサーバー用に活躍してくれていた PC が不調のため、Raspberry Pi のセットアップをして、Webサーバーの乗り換えをしたのです。
最初、Wheezyのままセットアップして行こうと思い、apache2 を立ち上げて初期画面を別の PC からブラウズするところまでは楽勝だったのですが、その後、apt-get で update や upgrade する段階からいろいろトラブルが起こり、そのまま進めるのを断念。
Raspberry Pi Imager から、この時点で最新の Buster のイメージを SDカードに焼いて再トライすることにしました。
なお、我が家では HDMI 接続して映るモニタはリビングの TV以外にないので、3階のリビングで初期設定し、ssh まで動いたのを確認してから、
サーバーの置き場である 1階に移動して作業をしたのでした。*^_^;;* お恥ずかしや・・・
新しい OS に変えてからは、特に設定系で困ることはなかったのですが、一点だけハマったのは掲示板(T-NoteVer.4.05)の jcode.pl が動かなくなったことです。
ネットで探すと、
という手順で Jcode をインストールする手順まではすぐ見つかるのですが、掲示板の cgi をどういじったものか。
この答えですが、もともと T-Note では jcode.pl を呼び出すために、
require './jcode.pl';
という宣言をしていると思います。こちらをコメントアウトして、
# require './jcode.pl';
use Jcode;
とすればこの行の変更は完了。
あとはもう一か所、
&jcode'convert(*w, $code);
として、jcode を用いた文字コードの変換を行っている箇所があると思うのですが、こちらは、
# &jcode'convert(*w, $code);
&Jcode'convert(*w, $code);
という具合に、jcode を Jcode と書き直してあげれば OK です。(^o^)
そうそう、SDカードだっていつ壊れるかわかりません。
win32diskimager という Windowsアプリを使って、システム・イメージをバックアップしておきました。
しばらく、この Raspberry Pi の Web サーバーでもって様子を見てみたいと思います。p(^-^)
当サイトですが http:// だけではなく、一応、https:// で通信できるようになっています。(^_^) SSL通信の設定もしてあります
その SSL 証明書は、Let's Encrypt のサービスを使わせてもらっており、また証明書の定期更新については /cron.monthly に以下のような実行ファイルを置いて対応しているつもりだったのですね。
#!/bin/sh /usr/share/certbot/certbot-auto renew |
しかし、この仕組みがうまく動いていないらしく、Let's Encrypt Expiry Bot から、
Hello, Your certificate (or certificates) for the names listed below will expire in 18 days (on 07 Oct 20 08:45 +0000). Please make sure to renew your certificate before then, or visitors to your website will encounter errors. We recommend renewing certificates automatically when they have a third of their total lifetime left. For Let's Encrypt's current 90-day certificates, that means renewing 30 days before expiration. See https://letsencrypt.org/docs/integration-guide/ for details. clarte.iobb.net <略> |
みたいなメールが届いてしまいました。(・o・) ありゃま、あと18日で切れちゃうの・・・ってことは開通後、一回も更新に成功してないのか
そこで、sshでログイン後、コマンドラインから、
./certbot-auto renew --dry-run (←最後のオプションはテスト用の空打ち実行指定)
を走らせてみたところ、
- - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - Processing /etc/letsencrypt/renewal/clarte.iobb.net.conf - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Cert is due for renewal, auto-renewing... Plugins selected: Authenticator standalone, Installer None Renewing an existing certificate Performing the following challenges: http-01 challenge for clarte.iobb.net Cleaning up challenges Attempting to renew cert (clarte.iobb.net) from /etc/letsencrypt/renewal/clarteiobb.net.conf produced an unexpected error: Problem binding to port 80: Could nt bind to IPv4 or IPv6.. Skipping. All renewal attempts failed. The following certs could not be renewed: /etc/letsencrypt/live/clarte.iobb.net/fullchain.pem (failure) |
とのこと。80番のポートにbindできないって怒っているようです。
でも、80番と言えば Webサービスを動かしている apache2 が使っているのですから、空いている訳がありません。
そこで、ちょっとネットを調べたところ、どうやら、Webサービスは https (=443番)だけ使うようにして普段から80番は閉じておく。そして、証明書の更新時だけ 80番を開けるような使い方を想定しているようですね。(@o@)
簡単な回避策としては、一度、apache2 を止めてしまえばよいはず。
そこで、systemctl stop apache2 してから ./certbot-auto renew を試したところ、
XXXX@howadebi3:/usr/share/certbot# systemctl stop
apache2 XXXX@howadebi3:/usr/share/certbot# ./certbot-auto renew Saving debug log to /var/log/letsencrypt/letsencrypt.log - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Processing /etc/letsencrypt/renewal/clarte.iobb.net.conf - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Cert is due for renewal, auto-renewing... Plugins selected: Authenticator standalone, Installer None Renewing an existing certificate Performing the following challenges: http-01 challenge for clarte.iobb.net Waiting for verification... Cleaning up challenges - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - new certificate deployed without reload, fullchain is /etc/letsencrypt/live/clarte.iobb.net/fullchain.pem - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Congratulations, all renewals succeeded. The following certs have been renewed: /etc/letsencrypt/live/clarte.iobb.net/fullchain.pem (success) |
あらま、あっさり成功しました。(^o^) =3
月に一回、かつ数分間とは言え、apache2 を停めれば Webサービスが落ちる訳ですから、あんまりイケてない対策なのですが、ひとまず /etc/cron.monthly 側は、
#!/bin/sh service apache2 stop /usr/share/certbot/certbot-auto renew service apache2 start |
といった具合に変更。
はい、apache2を停止→ 証明書更新 → apache2を起動 とするようにしてみました。*^_^;*
[前の年(2019)へ] [一覧に戻る] [次の年(2021)へ]