投稿

7月, 2021の投稿を表示しています

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をインストール # gem install fontcustom エラー F

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-PSReadlineOption -EditMode Emacs これでP

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の環境を構築する手順まとめ