マイ忘備録

フィリピン関連のメモ、ワードプレス関連のメモなど

ImageMagickでEXIFをチェック、削除する

参考 bcmathとimagickのインストール(CentOS7) - マイ忘備録

exif存在チェック
[root@xxx]# identify -verbose img3.jpg | grep exif

exifを削除して別のファイルを作成
[root@xxx]# convert -strip img1.jpg img3.jpg

exifを削除して上書き
[root@xxx]# mogrify -strip img3.jpg

指定したディレクトリ以下のjpgファイルでexifデータがあるものを一覧する

シェルスクリプト初心者の俺がググりながら作ったスクリプト

#!/bin/sh

target_dir=`pwd`
#target_dir="/var/www/html/wp/wp-content/uploads"

find ${target_dir} -iname "*.jpg" | while read fn
do
    identify -verbose ${fn} | grep -q exif
    if [ $? = 0 ]; then
      echo ${fn}
    fi
done
  • " /bin/sh^M: bad interpreter: No such file or directory"エラーのときはshファイルの行末コードチェック *1
  • カレントディレクトリを変数に代入するには `pwd`
  • findの-inameオプションは大文字小文字区別しない
  • パイプの後の | while read xxx みたいな感じでループがかける
  • grepコマンドのqオプションは標準出力しない。*2
  • grepコマンドの戻り値はマッチした行があれば0なければ1 *3
  • 直前のコマンドの結果は変数$?に入っている

ifとかループとかの書き方もググらないと書けないし、シェルスクリプトの基本みたいなの教科書みたいなので一回一通り勉強した方がいい気がした

はてな記法メモ

URLのリンク文字を指定

[https://hoge.com/hogehoge:title]→タイトル
[https://hoge.com/hogehoge:title=参考]→リンク文字指定

脚注

((~))

はてな記法でソースコードを貼る

ブログの記事にソースコードを貼るのに引用を使っていたのだが、イマイチかっこ悪いのでどうするものかと思ったが、"はてな記法"を使うとかっこよく貼れる。

一度見たままモードで下書き保存してしまうと、"途中からはてな記法に変更できない"というのが罠だった。

 

参考

いったん記事を「公開」あるいは「下書き保存」すると、再編集する際に編集モードを変更することはできません。

【はてなブログ】ソースコードを貼り付ける方法!(言語名&行番号表示) - 黒木ノ水岩

はじめてのショートコード(WordPress)

ワードプレスのショートコードというものをはじめて自作してみた。これぐらいなら超簡単すね。

編集するファイルの場所

編集するファイルはテーマのあるディレクトリ直下のfunctions.phpだ。

Cocoonテーマを利用している場合、編集するファイルの場所は以下。

<ワードプレスディレクトリ>/wp-content/themes/cocoon-child-master/functions.php

f:id:tagayshin:20190510224503p:plain

親テーマのfunctions.phpに書くとテーマが更新されたときに消えてしまうので、子テーマの方のfunctions.phpに書くルールのようだ。

ソースコード

以下のWebページを参考にして
WordPressのショートコードを自作してみる | webOpixel

超簡単なショートコードを書いてみた。"こんにちわ"と表示して(文字列を返して)、あと"hello"という名前でショートコードを登録している。

functions.php

//以下に子テーマ用の関数を書く

function helloFunc() {
    return "こんにちわ";
}
add_shortcode('hello', 'helloFunc');

投稿ページ

ワードプレスの投稿か固定ページで、新規記事を作成し、先ほど作ったショートコード[hello]を呼び出してみる。

練習ですよ
[hello]

保存してブラウザから見たところ。"こんにちわ"と表示されてるのが確認できる。
f:id:tagayshin:20190510232153p:plain



[PR] アンヘレスでBAND

Kindleの固定レイアウト書籍をPDF化してOCR処理

kindleの本で買った本で、固定レイアウトの本があるが、マジで使いにくい。小説ならまだしも、参考書で検索が使えないって、利用価値が半減

※この商品は固定レイアウトで作成されており、タブレットなど大きいディスプレイを備えた端末で読むことに適しています。また、文字列のハイライトや検索、辞書の参照、引用などの機能が使用できません。

わざわざ電子書籍で出すのに、なんで出版社の方で検索できるフォーマットで出してくれないんだろう・・・不便すぎる。

ググってみると、"Kindleの本をPDFとしてエクスポートしてOCR処理を加える"やり方があったのでやってみた。環境はVirtualBox上のWindows10で試した。

 

Kindle本をPDF出力

このサイトを参考に

キンドルでダウンロードした本をPDF化する | C#とMultiRowのプログラミング

以下のツールをダウンロード。CubePDFというのは使わなかった。

 

Calibre (電子書籍管理ツール)

https://calibre-ebook.com/

DeDRM_tools (DRM解除プラグイン)

https://github.com/apprenticeharper/DeDRM_tools/releases

 

それぞれ最新版をダウンロード。Calibreをインストールして、DeDRM_toolsプラグインを追加。

Kindleの本を読み込んで、いざ開いてみようとすると・・・DRMがかかっていて書籍が開けないと。

Windowsは特に設定はいらないって書いてたが、キーの設定を見たら何も設定されてなかったので、キーを追加したら何とか読み込めた。

f:id:tagayshin:20190510130805p:plain

書籍を開き、印刷で保存先をPDFにして出力した。

 

OCR処理

OCR処理はAcrobat DCで行った(月契約してた)。

 

手順的には、これの

スキャナ取込みの際に文字をテキストとして認識させる方法 (Acrobat XI/DC)

"B-2. 取り込んだ後に OCR を適用" の手順。

 

Acrobat DCで先ほどのPDFを開いた後、

ツール→スキャン補正から、OCR処理を行った。

ページ数が多いとけっこう時間がかかる(何時間とか)。

 

補正の後、名前をつけてファイルを保存する。元のファイルの2倍近くにサイズが膨らんだ。

これで書籍内の検索できて仕事が捗るはず。

 

追記 KFX形式の書籍

何冊か試した後、KFX形式?(.azwと.mdとかいうのに分かれてた?)で読めない形式の書籍があった。以下のWebページを参考に、昨年ダウンロードした古いKindle(1.2.3)を使って、renderer-test.exeを名前変更して使えなくするという方法で対処はできた(KFXでダウンロードしないようになるみたい)・・・

Dealing with Kindle for PC/Mac 1.19 and KFX in calibre - MobileRead Forums

 

ワードプレスのサイトヘルス

ワードプレスのサイトヘルスで指摘された改善ポイントに対処した。

 

(サイトヘルス 対処前)

f:id:tagayshin:20190508222243p:plain

 

停止中のプラグインを削除してください

使ってないHello Dollyは削除、WP Multibyte Patchは有効化にした。

停止中のテーマを削除してください

そういえば、使わなかったのに更新通知がうざかった。いらないのは削除。WordPress のデフォルトテーマ twentynineteenは削除したらいけないらしい。

PHPの更新をおすすめします

古いデータベースサーバー

PHPとデータベースをそれぞれバージョンアップした、PHP 7.2→7.3、MariaDB 5.5→10.3

PHPとMariaDBをバージョンアップしてみた - マイ忘備録

1つ以上の推奨モジュールが存在しません

bcmathとimagickをインストールした

bcmathとimagickのインストール(CentOS7) - マイ忘備録

HTTPSをサイトの一部でしか使用していません

設定→一般設定で、WordPress アドレス (URL)、サイトアドレス (URL)をhttps...に変更した

 

 (サイトヘルス 対処後)

f:id:tagayshin:20190509144540p:plain

家の大掃除を終えた時のようなすがすがしい気分

 


 [PR] ASCC - アンヘレスにあるゴルフのショートコース

bcmathとimagickのインストール(CentOS7)

ワードプレスのサイトヘルスで、phpの推奨モジュールが入ってないというので、入れてみた。

* 警告 オプションのモジュール bcmath がインストールされていないか、無効化されています。
* 警告 オプションのモジュール imagick がインストールされていないか、無効化されています。

f:id:tagayshin:20190509124025p:plain

リンク先のドキュメントによると、bcmathは大きな数字を高速に扱うライブラリ、imagickは画像処理関連のライブラリらしい。

https://make.wordpress.org/hosting/handbook/handbook/server-environment/#php-extensions

PHP Extensions #

bcmath – Used to improve the performance of math calculations.

imagick – Provides better image quality for media uploads. See WP_Image_Editor is incoming! for details. Smarter image resizing (for smaller images) and PDF thumbnail
support, when Ghost Script is also available.

 

bcmathのインストール

これだと

[root@xxx ~]# yum install php-bcmath

違うバージョンの依存ライブラリを見にいってエラーになる、というか古いバージョンのbcmathをリポジトリからインストールしようとしてしまうので、

Error: Package: php-bcmath-5.4.16-46.el7.x86_64 (base)
           Requires: php-common(x86-64) = 5.4.16-46.el7
           Installed: php-common-7.3.5-1.el7.remi.x86_64 (@remi-php73)
               php-common(x86-64) = 7.3.5-1.el7.remi
           Available: php-common-5.4.16-46.el7.x86_64 (base)
               php-common(x86-64) = 5.4.16-46.el7

 レポジトリを指定してインストール

[root@xxx ~]# yum --enablerepo=remi-php73 install php-bcmath

( 参考 バージョン違いによるエラー - Qiita )

 

imagickのインストール

imagickのインストールはちょっと手こずった。PCELというのをインストールしたり、php.iniに設定を記述したりと、やや面倒だった↓

 

最初、これだけでいいのかと思ったけど、動かない。たぶんこれはphp側の呼び出す機能だけなのかな。

[root@xxx ~]# yum install ImageMagick

どうもPCELが必要らしい
[root@xxx ~]# yum --enablerepo=remi-php73 install php-pear
pcelはphp-develに依存
[root@xxx ~]# yum --enablerepo=remi-php73 install php-devel
これもやっぱり必要だった
[root@xxx ~]# yum install ImageMagick-devel 
で、imagick本体をインストール(多分)
[root@xxx ~]# pecl install imagick

そして、/etc/php.ini に以下を追記 /etc/php.d/20_imagick.ini みたいなのを自動で配置してくれればいいのに、peclとかインストールする場合には手書きが必要なのかな?

extension=imagick.so

これでようやく完了。

 

アパッチを再起動

[root@xxx ~]# systemctl restart httpd

サイトヘルスの警告がようやく消えた

 

imagickのインストールは以下のサイトを参考にした。振り返ってみると、これが完結にまとまってた。

CentOSにImageMagickをインストールする - Qiita

うちの環境には、PCELが入ってなかったので、先にそのインストールが必要だった。

How to install PHP ImageMagick on CentOS 7 | LinuxHelp Tutorials

PHPでの画像処理【ImageMagick編】 | バシャログ。

 


[PR] フィリピンのディズニーランド誘致計画

PHPとMariaDBをバージョンアップしてみた

ワードプレスで利用している、PHPMariaDBをバージョンしてみた。ちなみにOSはCentOS7.6。

PHP 7.2→7.3

MariaDB 5.5→10.3

ちなみに、以下の2つのサイトに書かれている手順をそのまま行っただけ。

 

きっかけ

ワードプレスの設定画面のツールにサイトヘルスというのがあって、見てみたら、PHPMariaDBのバージョンが古いらしい。

f:id:tagayshin:20190508222243p:plain

データ移行とか面倒かなーと思ったけど、ググってみた感じ(トラブルがなければ)簡単そうだった。1~2年のうちにはいずれはやらなければいけないことなので、思い切ってやってみた。

サービスの停止

とりあえず、今回関連するサービスを停止した。

systemctl stop httpd
systemctl stop mariadb

 データのバックアップ(念のため)

MariaDBのデータベースをフルバックアップした。(これは念のための準備で、トラブルがなければデータはそのまま移行される)

mysqldump -u root -p -A | gzip > backup/mysqldump.sql.gz

 

PHPのバージョンアップ(7.2→7.3)

PHPのバージョンアップは、以下のWebページの手順に従った。(参考サイト①)

glorificatio.org

リポジトリの更新(?)

 一応やってみたが、Nothing to  doと表示された。この2つは既にやっていたようだ。

[root@xxx ~]# yum install epel-release

[root@xxx ~]# yum install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

なお、更新前のバージョンは確認したところ7.2だった

 [root@xxx ~]# php -v

PHP 7.2.10 (cli) (built: Sep 11 2018 11:22:20) ( NTS )

PHPの削除と再インストール

現在のPHPを削除
[root@xxx ~]# yum remove php php-fpm
次にPHP7.3をインストール

[root@xxx ~]# yum install --enablerepo=remi-php73 php php-fpm 

 バージョンを確認すると7.3になっていた

[root@xxx ~]# php -v
PHP 7.3.5 (cli) (built: Apr 30 2019 08:37:17) ( NTS )

 

MariaDBのバージョンアップ(5.5→10.3)

MariaDBのバージョンアップは以下のWebページの手順に従った。( 参考サイト②)

qiita.com

参考サイト①にもMariaDBのバージョンアップの手順はあったが、こっちのサイトの方が簡単ぽかったので。

 

 リポジトリの更新(?)

 このコマンドで、/etc/yum.repos.d/mariadb.repoというファイルが作成されて、必要な情報が記述されてた。参考サイト①のように手動でここにアクセスしファイルを作成する方法もあるようだが、このコマンド一発でできるのは楽だった。(その他参考 MariaDB Package Repository Setup and Usage - MariaDB Knowledge Base )

 

ちなみに、バージョンアップ前の現在のMariaDBのバージョンを確認すると、5.5だった。

[root@xxx ~]# mysql --version
mysql  Ver 15.1 Distrib 5.5.60-MariaDB, for Linux (x86_64) using readline 5.1

バージョンアップ

もしmariadbを停止してない場合は先に停止しておこう。
systemctl stop mariadb
アップデートの実行。このステップは各種モジュールをダウンロードしたり数分かかった。
[root@xxx ~]# yum update mariadb-server -y

 確認すると、とりあえずバージョンは上がってた。データは無事かしら・・・

[root@xxx ~]# mysql --version
mysql  Ver 15.1 Distrib 10.3.14-MariaDB, for Linux (x86_64) using readline 5.1

ワードプレスの確認

MariaDBとWebサーバを起動
systemctl start mariadb

systemctl start httpd.service

ブラウザでアクセスすると、普通に前のまま見れた!あーよかったぁ、ちょっとドキドキだった。

 

ワードプレスのサイトヘルスを見ると、PHPとデータベースの警告はなくなってた。もういくつか対処項目があるけど、眠いのでまた後日にする。

f:id:tagayshin:20190508230351p:plain

 


 [PR] フィリピンの精力剤Robust