ゆう's Blog
CentOS Stream 10 : Node.js + opentype.js( text→path )

① Node.js をインストール

sudo dnf install nodejs

バージョン確認

node -v npm -v

② opentype.js の導入(npm)

Web サーバーの任意のディレクトリで:

npm init -y npm install opentype.js

Thunderbird をバックアップする

~/.thunderbird を丸ごとバックアップする

復元時の動作

新しい環境で Thunderbird をインストールしたあと:
Thunderbird を一度起動して終了(初期フォルダ生成)
新環境の ~/.thunderbird を削除またはリネーム
旧環境の ~/.thunderbird をそのままコピー

WOFF2 への変換

インストール

pip install fonttools brotli

変換(TTF/OTF → WOFF2)

woff2_compress MyFont.ttf

生成されるファイル:MyFont.woff2

Cockpit を使わないなら

1. firewalld で 9090 を閉じる

~]# firewall-cmd --permanent --remove-service=cockpit ~]# firewall-cmd --reload

2. Cockpit を完全に無効化する

~]# systemctl disable --now cockpit.socket

もし Cockpit を使いたくなる場面が将来出たら
9090 を閉じたまま SSH トンネル経由でのみアクセスが最も安全。

~]$ ssh -L 9090:localhost:9090 user@server

CentOS Stream 10:phpMyAdmin インストール

# dnf --enablerepo=epel -y install phpMyAdmin

初期設定では localhost のみ許可されているため、外部アクセスを許可します。
追加

# vi /etc/httpd/conf.d/phpMyAdmin.conf

・・・ ・・・ <Directory /usr/share/phpMyAdmin/> AddDefaultCharset UTF-8 Require local Require ip xxx.xxx.xxx.xxx </Directory> ・・・ ・・・

設定変更を反映。

# systemctl restart httpd

phpMyAdmin のログイン画面にアクセス。
http://<サーバーIP>/phpmyadmin/
MySQL/MariaDB のユーザーでログイン。

CPUコア数だけ並列でビルドする

make -j$(nproc)

:~# wget https://download.imagemagick.org/ImageMagick-6.9.13-52.tar.gz :~# tar xf ImageMagick-6.9.13-52.tar.gz :~# cd ImageMagick-6.9.13-52/ :~/ImageMagick-6.9.13-52# ./configure --prefix=/usr/local/im6 :~/ImageMagick-6.9.13-52# make -j$(nproc) :~/ImageMagick-6.9.13-52# make install

bind と bind-chroot を同時にインストールした際の、正しい初回セットアップ手順

1. パッケージのインストール

dnf install bind bind-chroot bind-utils -y

2. 通常のパスで設定ファイルを編集する

chroot 内のファイルではなく、通常のパスにあるファイルを編集・作成します。
メイン設定ファイルの編集: /etc/named.conf
ゾーンファイルの作成: /var/named/example.com.zone

新しくゾーンファイル等を作成した場合は、必ず BIND が読み込めるように所有権を変更してください。

chown root:named /var/named/example.com.zone chmod 640 /var/named/example.com.zone

3. 設定の構文チェック

# メイン設定のチェック named-checkconf /etc/named.conf # ゾーンファイルのチェック(例) named-checkzone example.com /var/named/example.com.zone

4. 通常の「named」サービスを無効化する

bind-chroot を導入した場合、通常の named サービスは使用しません。競合を防ぐために無効化(disable)状態であることを確認します。

systemctl stop named systemctl disable named

5. 「named-chroot」サービスを起動・有効化する

systemctl enable --now named-chroot

BIND設定更新

BIND を再起動する

systemctl restart named-chroot

named.conf 編集時

rndc reconfig

ゾーンファイル編集時

rndc reload example.com

メールに Certbot

mail.example.com の A レコードが Web サーバーの IP を向いていること。

証明書取得だけならバーチャルホスト不要
mail.example.com が Web 表示できなくても問題なし
404 が出ても Certbot は成功する

PDFをJPEGに変換する(Ghostscript)

:~$ sudo dnf install ghostscript

:~$ ghostscript \ -dNOPAUSE -dBATCH -dSAFER \ -sDEVICE=jpeg \ -dJPEGQ=95 \ -r600 \ -dUseCIEColor \ -dColorConversionStrategy=/sRGB \ -dEmbedAllFonts=true \ -dDownScaleFactor=1 \ -sOutputFile=page-%03d.jpg \ input.pdf

各オプションの意味

● -dNOPAUSE / -dBATCH
複数ページ PDF を処理するための基本動作。
削ると ページごとに停止してしまう。

● -dSAFER
セキュリティ強化。
PHP の exec から呼ぶ場合は必須。
ローカル用途なら外部入力がないため不要。

● -sDEVICE=jpeg
JPEG 出力を指定。

● -dJPEGQ=95
JPEG 品質。
95 は「ほぼ可逆に近い最高品質」。
100 は逆にノイズが増えるので非推奨。

● -r600
600dpi でレンダリング。
300dpi → 印刷品質
600dpi → 文字・図形が非常にシャープ

● -dUseCIEColor / -dColorConversionStrategy=/sRGB
PDF の CMYK → RGB 変換を Ghostscript の CIEColor で高精度に行う。
色ズレを最小化するための必須設定。

● -dEmbedAllFonts=true
フォント埋め込みを強制。
PDF 内のフォントが不完全でも Ghostscript が補完して描画。

● -dDownScaleFactor=1
Ghostscript の内部ダウンサンプリングを無効化。
→ 画質劣化を完全に防ぐ。

● -sOutputFile=page-%03d.jpg
複数ページ PDF に対応。
page-001.jpg / page-002.jpg … のように出力。

上記は Web 用(RGB)。印刷用(CMYK)の場合は下記。

:~$ ghostscript \ -dNOPAUSE -dBATCH \ -sDEVICE=tiff32nc \ -r600 \ -dUseCIEColor \ -dColorConversionStrategy=/CMYK \ -dProcessColorModel=/DeviceCMYK \ -dEmbedAllFonts=true \ -dDownScaleFactor=1 \ -sOutputFile=page-%03d.tif \ input.pdf

● - tiff32nc
TIFF の 32bit CMYK(8bit × 4ch)。
印刷用途で最も安定し、可逆圧縮(LZW/ZIP)も適用可能。

● - 600dpi
印刷の標準は 300dpi ですが、
600dpi は文字・図形が極めてシャープ。

● - ColorConversionStrategy=/CMYK
出力色空間を CMYK に固定。
RGB PDF でも CMYK PDF でも、確実に CMYK で出力。

● - ProcessColorModel=/DeviceCMYK
Ghostscript の内部処理も CMYK に統一。
これがないと内部で RGB→CMYK→RGB→CMYK のような劣化が起きる。

● - UseCIEColor
CIE ベースの色変換で、CMYK→CMYK の色ズレを最小化。

● - EmbedAllFonts=true
フォントが壊れた PDF でも Ghostscript が補完して描画。

● - DownScaleFactor=1
内部ダウンサンプリングを完全無効化。
→ 画質劣化ゼロ。