投稿

CentOS Stream 8 + Ruby + fontcustomをインストール

CentOS7でやった時のリライト版。思ったより時間が掛かった。 環境: CentOS Stream 8, ruby 2.6.7p197, fontcustom 2.0.0 参考サイト 【CentOS】SVGをWOFFなどのWebフォントへ変換するfontcustomをインストール GitHub | FontCustom/fontcustom: Generate custom icon webfonts from the comfort of the command line. fontcustomのGitHubページを参考にコマンド実行。powertoolsにfontforgeはあった。 # cd /opt/software/ # dnf install fontforge --enablerepo powertools # git clone https://github.com/bramstein/sfnt2woff-zopfli.git sfnt2woff-zopfli && cd sfnt2woff-zopfli && make && mv sfnt2woff-zopfli /usr/local/bin/sfnt2woff # git clone --recursive https://github.com/google/woff2.git && cd woff2 && make clean all && sudo mv woff2_compress /usr/local/bin/ && sudo mv woff2_decompress /usr/local/bin/ Rubyをインストール。 モジュール一覧で確認。 # dnf module list ruby CentOS7の時は2.6だったので冒険せず2.6をインストール。 # dnf module install ruby:2.6 バージョン確認 # ruby --version ruby 2.6.7p197 (2021-04-05 revision 67941) [x86_64-linux] fontcustomをインストール #...

WARNING: [pool www] ACL set, listen.owner = 'nginx' is ignored

php-fpmが下記ログを出力してたので調査したときの覚書。 WARNING: [pool www] ACL set, listen.owner = 'nginx' is ignored 環境: CentOS Stream 8, nginx 1.20.1, php 7.4.6 設定ファイルに記載されている。 # less /etc/php-fpm.d/www.conf ; When POSIX Access Control Lists are supported you can set them using ; these options, value is a comma separated list of user/group names. ; When set, listen.owner and listen.group are ignored listen.acl_users = apache,nginx ;listen.acl_groups = acl_usersが有効の場合、 listen.ownerとlisten.groupが無視される。 CentOS8のdnf module listからPHPをインストールするとlisten.acl_usersが有効になっている。 CentOS7のremiリポジトリからインストールしたPHPはコメントアウトされていた。 ACL(POSIX Access Control Lists)とは 従来の3bitでのパーミッション管理(所有者・グループ・その他)を拡張したアクセス権限管理。 Windowsサーバー環境をLinuxサーバー環境へ置き換える場合に有用らしい。 カーネル2.6からサポート。 Linux でのアクセス制御リスト | セキュリティ強化ガイド | openSUSE Leap 15.3 現在のカーネルのバージョン確認 # uname -r ACLのアクセス権限を確認するにはgetfaclコマンドを使う # getfacl /run/php-fpm/www.sock getfacl: Removing leading '/' from absolute path names # file: run/php-fpm/www.sock # owner: root # group: ro...

PHPでCSV出力。ダウンロードせず文字化けしてブラウザで表示される。

久しぶりにCSV出力を実装したときの覚書。 環境: nginx 1.20.1, PHP 7.4.6 CSVでダウンロードするように実装した後、データが多くなると文字化けしてダウンロードまでいかない現象が発生。 参考サイト php://outputが書き込みの途中で出力される - Qiita ※ コメントを読むこと ポイントは fputcsv前にheader関数を使いHTTPヘッダーを送信(設定)する。 参考:  PHP: header - Manual output_bufferingを十分な値に設定する。 参考:  PHP: 実行時設定 - Manual 【追記】output_bufferingを使わずにtempnamで一時ファイルを生成してダウンロードするべき。 参考:  PHP: tempnam - Manual output_bufferingの詳細 output_bufferingは出力するための作業領域容量を設定する。 生成するCSVファイルが大きくなる可能性がある場合は、実ファイルとして保存する処理に変更する。 そもそも 出力バッファを使わずに実ファイルとして生成→readfile→unlinkする べき。 ファイル名は他の処理と被らないようにランダム生成。 tempnamという関数を使うと簡単に実装可能。 参考:  PHP: tempnam - Manual どうしても出力バッファを使いたい場合はoutput_bufferingの設定を変更する。 # less /etc/php.ini output_buffering = 40960 再読み込み # systemctl reload php-fpm ちなみにPHP CLIは常にoutput_bufferingが0なのでコマンドで確認しても常に0。 # php -i | grep output ブラウザでphpinfo()を確認する必要がある。

Bootstap5のウェブページをブラウザで印刷したときのBreakpoint

ホームページを印刷するときになるべく見た目通りに印刷するにはどうしたらいいか調査したときの覚書。 環境: Google Chrome 92, Bootstrap 5.0.2 結局、ブラウザ印刷はB3用紙(364 x 515 mm)とCSSで定義することにした。 @page {   margin: 5mm;   size: 364mm 515mm; } ※ @pageのsizeはChromeとEdgeで有効。Firefoxは効かない。 size - CSS: カスケーディングスタイルシート | MDN 印刷したときの横幅(Bootstrap Breakpoint) B3(364 x 515 mm)の場合 B3の横幅364mmを(両端のマージン10mm引いて)pixelに変換すると ディスプレイ: (364㎜ - 10mm) * 0.04inch * 72dpi = 1020px 印刷: (364㎜ - 10mm) * 0.04inch * 96dpi = 1359px CSSの@media(BootstrapのBreakpoint)は72dpiで計算される。 この場合、BootstrapのLarge(lg)が適用。 その後、印刷用に横幅1359pxで再描画。 だからブラウザで印刷したときは見た目とBreakpintの位置に違和感がある。 (あくまでも実験した結果による推測です) A4(210 x 297 mm)の場合 ディスプレイ: (210㎜ - 10mm) * 0.04inch * 72dpi = 576px 印刷: (210㎜ - 10mm) * 0.04inch * 96dpi = 768px BootstrapのSmall(sm)が適用されて横幅768pxで印刷。 A3(297 x 420 mm)の場合 ディスプレイ: (297㎜ - 10mm) * 0.04inch * 72dpi = 827px 印刷: (297㎜ - 10mm) * 0.04inch * 96dpi = 1102px BootstrapのMedium(md)が適用されて横幅1102pxで印刷。 関連記事 Bootstrap3のWEBページを印刷してもいい感じに

お名前.comからor.jp(属性型ドメイン)のドメイン移管

お名前.comからValue Domainにドメイン移管したときの覚書。運営は同じGMOグループ。 きっかけは「ホームページが見れないんですけど何かありました?」と連絡がきて、お客様管理のドメインがクレジットカードの期限切れで更新できなくなったため、今後は弊社でドメイン管理することになった。 復旧するのに11,000円掛かるので、ドメインの期限切れは要注意。 公式ヘルプを参考に 移管状況確認/承認メール再送/AuthCode修正/移管キャンセル|お名前.com Navi ガイド|ドメイン取るならお名前.com ドメイン移管手順 お名前.comにログイン 移管前のDNS情報をメモっておく。 ドメイン機能一覧 → 属性型JPドメイン情報変更 → 組織情報変更申請(記載事項変更) で連絡先メールアドレスを確認。 ※ このメールアドレスに移管承認メールが届く。 ※ 変更するのに1,155円掛かる。反映まで1日ぐらい掛かる。 Value Domainの 属性型JPドメインの登録・設定 → 新しい指定業者変更の申請 から移管したいドメインを入力申請 お名前.comのドメイン機能一覧 → 移管状況確認 → 他社への移管状況確認 で承認メールの送信先を確認。 移管申請から数時間で承認メールが来た。 承認後、1時間ほどで移管完了。 DNS情報を登録してネームサーバーもValue Domainへ切り替える。 お名前.comの組織情報変更だけでお金とるのには驚いた。 維持費用の値段高いし、コントロールパネル使いにくいし、いいことない。 「お名前.com」というマーケティングの勝利だと思う。 【関連記事】 JPドメインの指定事業者変更とドメイン名移転の違い Value DomainからGoogle Domainsにドメイン移管する

PowerShell7でEmacs(Linux)のキーバインド設定

PowerShell7にしたらCtrl+Bで移動できなくなったので調査したときの覚書。 PowerShell7はクロスプラットフォームエディションっていうからBashっぽいキーバインドがデフォルトで使えると思ったらそうでもなかった。 PowerShell 7.0 の新機能 - PowerShell 環境: Windows10 21H1, PowerShell 7.1.3 今のPowerShellのバージョンを表示 PS> $PSVersionTable Microsoft StoreからPowerShell7をインストールしたらWindows Terminalからpwshすると切り替わる PS> pwsh PS> $PSVersionTable Ctrl+Bで移動できなくなったのはPSReadLineモジュールが効いてないから。 モジュールをインストールしなおす。 まずはPowerShellGetから。 公式サイト を参考に。 PS> pwsh PS> Install-Module -Name PowerShellGet -Force PowerShell7を起動しなおす。 PSReadLineモジュールをインストール。 PS> Install-Module PSReadLine エラーになったので下記コマンドを実行。 PS> Install-Module PSReadLine -AllowPrerelease -Force インストール完了。 「-Force」付けたから?管理者権限で起動したからかも。 キーバインド変更 PS> Set-PSReadLineOption -EditMode Emacs これだけだと再起動すると元に戻るので、設定ファイルを置く。 モジュールPathを表示 PS> $env:PSModulePath D:\Documents\PowerShell\Modules PowerShell5は「WindowsPowerShell」だった。 D:\Documents\PowerShell\Microsoft.PowerShell_profile.ps1を作る。 Import-Module PSReadLine Set-PSReadli...

CentOS Stream8 + ImageMagick + php-imagickをインストール

CentOS Stream8の環境にImageMagickをインストールしたときの覚書。 php-gdで十分かと思ったけども、やっぱりインストールしておくことにした。 環境: CentOS Stream 8, ImageMagick 6.9.10.86-1.el8, PHP 7.4.19 参考サイト How To Install ImageMagick and PHP Imagick on CentOS 8 / RHEL 8 | ITzGeek EPELリポジトリはインストール済み。 ImageMagick-develをインストールするのにPowerToolsリポジトリを有効にする必要がある。 ImageMagick-develはphp-imagickをビルドするのに必要。 # dnf config-manager --set-enabled powertools ImageMagickをインストール #dnf install ImageMagick ImageMagick-devel PHP拡張ライブラリをインストール # dnf install php-devel php-pear make imagickをビルド。 # pecl install imagick 拡張ライブラリを読み込むようにphp.iniを作る # echo "extension=imagick.so" > /etc/php.d/imagick.ini 再起動 # systemctl restart php-fpm 確認 # php -i | grep imagick 【関連記事】 CentOS Stream 8 + Nginx + PHP + MariaDB + Postfixの環境を構築(2021年版) ホームページ開発に画像形式WebPを導入 CentOS7 + Nginx + PHP7 + MariaDB + Node.jsの環境を構築する手順まとめ

CentOS Stream 8 + Nginx + PHP + MariaDB + Postfixの環境を構築(2021年版)

新規VPSを借りて設定したときの覚書。 環境: さくらVPS、CentOS Stream 8 サーバー作成直後の初期設定は下記記事を参考に。 今回は同じ秘密鍵を使うのでインスタンス作成してすぐSSHログインできる。 【CentOS8】さくらVPSサーバーの初期設定 2020年版 目次 初期設定 nginxのインストール PHPのインストール MariaDBをインストール phpMyAdminをインストール SSLの設定 Postfix + DKIM(送信ドメイン認証)をインストール cron設定 ネットワーク回線速度とベンチマーク測定 1.初期設定 SSHログインしたらまずはアップデート。 # dnf update ホスト名変更 # hostnamectl set-hostname server02.webrec.co.jp # hostnamectl status タイムゾーン確認 # timedatectl status SELinux確認 # getenforce これで再起動 # reboot さくらVPSの管理コンソールでパケットフィルタからsshの他にWeb(http, https)を許可。 DNS(管理用の名前解決)の設定もしておく。 EPELリポジトリ追加 # dnf install epel-release # dnf update certbotをインストール。 python3もインストールされる。 # dnf install certbot pipを最新にする # pip3 install --upgrade pip pipモジュール一覧、アップデート可能な一覧 # pip list # pip list -o 過去の経験 からcertbot周りを最新にしておく。 # pip install -U certbot requests setuptools urllib3  Gitの設定 # git config --global user.name "Hoge" # git config --global user.email "hoge@company.co.jp" GitLabの秘密鍵を登録しておく(他のサーバーからコピペ)。 # vi .ssh/id_r...

DNS CAA(Certificate Authority Authorization)を設定(Let's Encrypt)

  SSL Server Test をやってみてDNS CAAの項目をクリアしようと調査したときの覚書。 1.DNS CAAとは SSLサーバー証明書の発行を許可する仕組み。 Let's Encryptなどの認証局がサーバー証明書を発行する際にDNSを確認し、ドメイン所有者がその認証局に証明書発行を許可するかチェックする。 現在は任意設定のためDNSにCAAレコードがなくても発行可能。 参考サイト DNS CAA レコード設定について – さくらのサポート情報 SSL/TLSサーバ証明書、コードサイニング証明書 | 国内最安値DigiCert(デジサート)正規代理店 2.Value Domainで設定 DNS設定を追加。 ワイルドカード証明書は発行しない。 caa @ 0 issue "letsencrypt.org" caa @ 0 issuewild ";" caa @ 0 iodef "hoge@test.co.jp" CAAを設定する特典はないので、他の認証局が誤発行するのを防ぐ用途。 ただSSL Testで注意されなくなるので気持ちがいい。 SSL Server Test (Powered by Qualys SSL Labs) 【関連記事】 NginxのSSL/TLS設定を見直す(2019年版)

CentOS Stream 8でMariaDBを10.3から10.5へアップグレード

dnfコマンドでMariaDBを10.3から10.5へアップグレードしたときの覚書。 環境: CentOS Stream release 8 MariaDB 10.3のサポートは2023年5月まで。 MariaDB 10.5のサポートは2025年6月まで。 詳細はMariaDB公式サイトを確認する。 MariaDB Server Releases - MariaDB Knowledge Base Changes and Improvements in MariaDB 10.5 - MariaDB Knowledge Base 10.5からはmysqlコマンドからmariadbコマンドに変更になった(mysqlコマンドも使える)。 ホームページ用途で気にする変更はなさそう。 dnfコマンドはFedora公式サイトを参考に。 Switching module streams :: Fedora Docs 現在インストールされているバージョンを確認 # dnf module list mariadb [i]付きがインストールされているバージョン。 phpMyAdminなどからバックアップしておく。 10.3から10.5に切り替える。 # dnf module reset mariadb 10.3も10.5もリストにあるのでインストールコマンドでいける。 # dnf module install mariadb:10.5 確認 # dnf module reset mariadb phpMyAdminでも確認する。 念のため自動起動が有効になっているか確認 # systemctl list-unit-files -t service | grep mariadb 【関連記事】 CentOS8のPHPを7.4にdnfでUpgrade CentOS8 + Nginx + PHP + MariaDB + Node.js + Certbotの環境を構築する手順まとめ