投稿

2024の投稿を表示しています

PHPでog:imageの日本語部分だけをencodeURIする

Facebookに記事のURLを張り付けたときに画像が表示されなくなったので調査したときの覚書。 環境: WordPress 6.5.2 おそらくog:imageに日本語が含まれているから。 PHPのurlencodeを使うとスラッシュとかもエンコードしてしまうので、日本語部分だけをURLエンコードしたい。 いろいろ調べた結果、WordPressのformatting.phpにある「utf8_uri_encode」を使うのが簡単そう。 確認はシェアデバッガーを使う(旧名はFacebook linter)。 シェアデバッガー - Meta for Developers 【関連記事】 ホームページにOpen Graphを埋め込んでFacebookにURLを張り付けられたときの見え方をコントロール

KUSANAGIでHTTP/3 QUICを試す

KUSANAGIはHTTP/3に対応したNginxとQuicに対応させたOpenSSLをバンドルしているということで試してみたときの覚書。 参考:  KUSANAGI 9 が対応した HTTP/3 とは - KUSANAGI Tech Column 環境: ConoHa VPS メモリ8G/CPU6コア、KUSANAGI Version 9.4.12-1.el9 Nginxを1.25に切り替え 公式ページを参考にしながらkusanagiコマンドを実行する。 参考:  KUSANAGI 9 バージョンアップ情報 9.3.0-1 - 超高速CMS実行環境 KUSANAGI # kusanagi nginx --use nginx125 # kusanagi nginx --update-conf 確認 # nginx -V # cd /etc/opt/kusanagi/nginx/ # less conf.d/ssl_listen.inc firewalldで443/UDPが登録されている確認。 # systemctl status firewalld # firewall-cmd --list-all public (active)   target: default   icmp-block-inversion: no   interfaces: eth0   sources:   services: cockpit dhcpv6-client http https ssh   ports: 443/udp 60000/tcp 443/udpが登録されていた。 KUSANAGIが登録してくれたんだと思う。 UDPで待ち受けしているポート一覧表示(ssコマンドにuオプションで実行)。 # ss -anu ちなみにTCPでの待ち受けポートはtオプションで実行する。 # ss -ant クライアントから443/UDPの疎通確認 ConoHaのコントロールパネルでセキュリティグループを変更してないから、まだ443/udpで通信できないはず。 ChromeのDevToolsのNetworkタブでProtocolを確認する。 cURLでも確認してみた。 PS:> curl --head -v --http3 https://test.hoge.co.jp/ * using

KUSANAGIのチューニング設定を調査

KUSANAGIを試したときにチューニング設定がとても勉強になるなぁと思って調査したときの覚書。 環境: ConoHa VPS メモリ8G/CPU6コア、KUSANAGI Version 9.4.12-1.el9 設定項目を1つずつ調査して意味を理解していく。 PHPのチューニング設定 PHPの設定確認。 # cd /etc/opt/kusanagi/ # less php.d/php.ini post_max_size = 16M ;POSTメソッドの最大サイズ upload_max_filesize = 16M ;アップロードされるファイルの最大サイズ date.timezone = UTC ;タイムゾーン。"Asia/Tokyo"に変更 php-fpmの設定を確認。 参考:  PHP: 設定 - Manual # less php-fpm.d/www.conf user = httpd group = www listen = 127.0.0.1:9000 ;unix socketに変更 pm.start_servers = 10 ;プロセス開始時のプロセス数 pm.min_spare_servers = 5 ;待ち状態の最小プロセス数 pm.max_spare_servers = 15 ;待ち状態の最大プロセス数 pm.max_requests = 500 ;再起動するまでの実行リクエスト数 slowlog = /var/opt/kusanagi/log/php-fpm/www-slow.log request_slowlog_timeout = 10 request_terminate_timeout = 180 catch_workers_output = yes ;ワーカーの標準出力を本体にリダイレクト decorate_workers_output = no ;ワーカーの標準出力の文字装飾 clear_env = no ;FPM ワーカー内の環境をクリア php_admin_value[error_log] = /var/opt/kusanagi/log/php-fpm/www-error.log php_admin_flag[log_errors] = on php_value[session.save_handler] = f

ConoHa VPSのKUSANAGIを試す

KUSANAGIを試したときの覚書 環境: CentOS Stream 9, KUSANAGI manager 0.5.2, KUSANAGI 9.4.12 KUSANAGIとは KUSANAGIはWordPress実行環境。 サーバーのスペックに合わせて、PHP, Nginx, MariaDBなどをいい感じに設定してくれて、WordPressの表示を高速化できる。 KUSANAGIとは - 超高速CMS実行環境 KUSANAGI Linuxのミドルウェアとの疎結合を保ちつつ、Nginx, OpenSSLなど必要な部分だけKUSANAGIのパッケージで提供している。 サーバーに詳しい人でも、KUSANAGIのチューニング方法は非常に勉強になる。 KUSANAGI環境の確認 kusanagiコマンドで設定状況を確認。 参考:  status - 超高速CMS実行環境 KUSANAGI # kusanagi status KUSANAGI Version 9.4.12-1.el9 conoha *** (active) nginx : nginx124 *** * nginx.service - The NGINX HTTP and reverse proxy server      Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; preset: disabled)      Active: active (running) since Thu 2024-02-22 14:10:48 JST; 3 days ago *** (inactive) httpd : httpd24 *** * httpd.service - The Apache HTTP Server      Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; preset: disabled)      Active: inactive (dead) *** (active) php : php74 *** * php-fpm.service - The PHP FastCGI Process Manager      Loaded: loaded

PHPを8.0から8.2にdnfでアップグレード

PHP8.0の公式サポートが終了したのでPHP8.2にアップグレードしたときの覚書。 環境: CentOS Stream 8 WordPressがサポートしているphpバージョンも確認しておく。 参考:  PHP Compatibility and WordPress Versions – Make WordPress Core 1.PHP8.2をdnfモジュール一覧からアップグレード dnf moduleの中にphp8.2が追加されていた。 前の記事を参考に。 参考:  CentOS Stream 8のPHPを7.4から8.0にアップグレード 現在のモジュールを確認 # dnf module list php CentOS Stream 8 - AppStream Name                   Stream   php                    7.2 [d]  php                    7.3      php                    7.4      php                    8.0 [e]  php                    8.2      php8.0から8.2に切り替える。 phpを初期状態にresetしてphp8.2を有効にする。 # dnf module reset php # dnf module enable php:8.2 # dnf --allowerasing distro-sync 確認 # php --version PHP Warning:  PHP Startup: imagick: Unable to initialize module Module compiled with module API=20200930 PHP    compiled with module API=20220829 These options need to match  in Unknown on line 0 PHP Warning:  PHP Startup: mecab: Unable to initialize module Module compiled with module API=20200930 PHP    compiled wit

ConoHa VPSを構築して初期設定

ConoHa VPSを初めて利用してみたときの覚書。 OS: CentOS Stream 9 アプリケーション: KUSANAGI manager 0.5.2 キーボードレイアウトを変更 VPS起動直後は日本語キーボードになっていたので英語配列に変更する。 (rootでログイン出来なくて少しハマった) まずは一時的に英語配列に変更 # loadkeys us 設定ファイルを変更。 # /etc/vconsole.conf KEYMAP="us" 日付確認。locale確認。 # date # timedatectl status IPアドレスを確認。 # ip a あとはSSHでリモートログインして設定した方がやりやすい。 セキュリティグループを設定 セキュリティグループが初期設定の「default」だと外部と通信できない。 コントロールパネルのVPSを選択して、セキュリティグループの項目で空けるポートを含んだセキュリティグループを追加する。 defaultは削除しなくていい。 SSH(22)のポートを開けたいので「IPv4v6-SSH」を追加。 HTTP(80), HTTPS(443)のポートを開けたいので「IPv4v6-Web」を追加。 SSHでリモートログインして初期設定 前の記事を参考にしながら初期設定 参考:  WebARENA IndigoのCentOS Stream 9を初期設定 ホスト名変更 # hostnamectl set-hostname conoha01.hoge.jp # hostnamectl status SELinuxを確認して無効化する。 # getenforce # less /etc/selinux/config SELINUX=disabled これで再起動。 # reboot どんなサービスが起動しているか確認。 # systemctl list-unit-files -t service EPELリポジトリは追加されていた。 gitの設定。 # git --version git version 2.43.0 # git config --global user.name "Hoge" # git config --global user.email "hoge@compa

Gmailにだけメールが届かない

「Gmailにだけメールが届かない」と言われて調査したときの覚書。 環境 さくらのメールボックス SPF設定済み DKIMは未設定 原因 件名「test」だけのメールを送っていたため。 Gmailの迷惑メールフィルタに引っかかると表示されるまで時間が掛かる場合がある。 件名を「送信テスト」で本文も「送信テストで送ります。by 〇〇」みたいに日本語の文章で送ると受信トレイに届く。 その他 Gmailでエラーになった場合、そのエラーコードが書かれた返信メールがこちらのメールサーバーの迷惑メールフィルタやウィルスチェックに引っかかる場合があるので、その設定を変更しておかないと原因の特定が遅れる。 【関連記事】 さくらのメールボックスのIMAP上限同時接続数は50前後? Gmail上でMicrosoft 365 Exchange(Outlook)のメール送受信設定

さくらのメールボックスのIMAP上限同時接続数は50前後?

さくらのメールボックスを使っているところから「メールが利用できない」と連絡があって調査したときの覚書。 メールクライアントが下記エラー。 IMAPサーバーへの接続ができませんでした。 このサーバーへの同時接続数の限度を超えている可能性があります。 サポートセンターに問い合わせてみると下記回答があった。 さくらのメールボックスではIMAPの同時接続は設けているが具体的な数値は非公開。 同時接続数はサーバー単位での設定 アカウント数から推測すると多分50ぐらいが同時接続数の上限。 先方にはPOP3で接続するようにと案内した。 (Mozilla ThunderbirdがデフォルトでIMAPを利用するのでみんなIMAPになった) POP3で接続しても1週間分(設定で変更可能)のメールはサーバーに残ったままになるので、スマホでも参照できる。 もしくはGmailに転送すれば過去メールも検索できて便利かもしれない。 【関連記事】 さくらのメールボックスで使われている迷惑メールフィルタ「SpamAssassin」とは? さくらのメールボックスのメールをGmailで送受信

RESASのAPIを調査

医療圏分析をしようとデータを集めているときの覚書。 RESAS-API - 地域経済分析システム(RESAS)のAPI提供情報 データ出典一覧 - RESAS 地域経済分析システム 概要 RESAS(読み:リーサス)。 国が公開している統計データを統一仕様のAPIで提供。 内閣府 地方創生推進室が主導。 利用登録が必要。 商用利用可能。 国の方針から推察すると、数年で利用停止にはならない気がする。 データの更新日を見ると結構頑張っていると思う。 参考:  RESAS-API - APIデータ更新一覧 利用規約要約 「出典:RESAS(地域経済分析システム)」の表記。 Creative Commons License 4.0に従うことでも利用できる。 参考:  クリエイティブ・コモンズ・ライセンス - Wikipedia 今後AIをファインチューニング(新しいデータによる再学習)したりするのに使えそう。 【関連記事】 人口メッシュ統計を作成するには e-StatのAPIを利用してデータ分析【API利用準備編】

Elasticsearchのインデックス一覧を取得

Elasticsearchに保存している生データを確認したくて調査しているときの覚書。 環境: CentOS Stream 9, Elasticsearch 8.11.3, Kibana 8.11.3 1. Kibanaのインデックス管理画面 Kibanaがインストール済みならばインデックス一覧画面を開いた方が分かりやすい。 左メニューを開いて、 Management | Stack Management -> Data | Index Management 一覧からインデックスを選択して、右上のDiscoverをクリックするとデータ一覧まで表示できるので便利。 2. API経由で取得 コマンドライン用のcat indices APIを使う。 参考:  cat indices API | Elasticsearch Guide [8.12] | Elastic KibanaのDev Toolsには入力補完があって使いやすい。 GET _cat/indices?v&s=index vはヘッダー付き、sは並び替えるオプション。 【関連記事】 ElasticsearchのデータをバックアップするSnapshot機能 Elasticsearch + KibanaをインストールしてNginxからリバースプロキシ

Microsoft Clarityで無料ヒートマップ表示

Microsoft Clarityを試しているときの覚書。 Microsoft Clarityとは? 2020年10月開始したMicrosoft提供の無料ヒートマップツール。 Microsoft Clarity - Free Heatmaps & Session Recordings 主な特徴 制限なしで無料 ヒートマップでウェブサイト上のユーザーの行動を視覚化 マウスの動きとスクロールを記録するレコーディング機能 Googleタグマネージャー/Googleアナリティクスと簡単に連携可能(許可するだけ)。 特定のIPアドレスを計測から除外可能 使ってみた感想 リンクだと思われてテキストをクリックされているようなデザインミスが分かった。 ブラウザで見たまんまをPDFで保存する機能がほしい。 アクセス解析して仮説を立てる参考になる。 今後に期待。 【関連記事】 GA4のga_session_idをJavaScriptで取得 Google Analytics4(GA4)の特徴と今までとの違い

SSHクライアントとしてのCloud Shell

GCPのCloud Shellを試したときに「これ緊急用でスマホやiPadからサーバーを保守するターミナルに使えるんじゃない?」と思ったときの覚書。 1.Cloud Shellとは? ブラウザベースのターミナルツール。 公式サイト:  Cloud Shell  |  Google Cloud GCPを利用していれば無料 スマホやiPadでは「Google Cloud」アプリから起動可 5GBまでのストレージ容量 週50時間の使用制限 120日間アクセスしていないと$HOMEが初期化される (初期化する前にメール通知される) 参考:  割り当てと上限  |  Cloud Shell  |  Google Cloud AzureやAWSにもCloud Shellがある。 2.Cloud ShellからLinuxへのSSH接続 外部のLinuxサーバーへSSH接続できる。 bashが使えるので使いやすい。 $ mkdir .ssh $ vi .ssh/private-key.pem $ chmod 600 .ssh/private-key.pem $ ssh -i .ssh/private-key.pem root@hoge.jp Google CloudアプリのCloud Shellもスマホで操作しやすい。 ブラウザさえあれば、どこからでも 今すぐ サーバー保守できるようになるのは便利だと思う。 今までは念のため各スマホにTerminusというアプリを入れて、外出先からでもSSH接続できるようにしていたけど、これからはCloud Shell一本で十分かも。 3.git cloneもできる git cloneができて、5GBまでストレージが使えるので開発環境も構築できそう。 Cloud Shell EditorはブラウザでVisual Studio Codeのように使えるみたい。 【関連記事】 Windows TerminalのSSHからパスワードなしでログイン SSHクライアントをTeraTermからWindows Terminalへ iPad Proにキーボードを繋げてSSH(鍵認証)がしたい

Windows11にcURLをインストールしてPowerShellから使う

Ajax通信をデバッグ(主に例外処理)するのにcURLを使いたくなりインストールしたときの覚書。 環境: Windows 11 Pro 23H2, PowerShell 7.4.0, cURL 8.5.0 PowerShellのバージョン確認。 PS> $PSVersionTable Name                           Value ----                           ----- PSVersion                      7.4.0 PSEdition                      Core GitCommitId                    7.4.0 OS                             Microsoft Windows 10.0.22631 Platform                       Win32NT PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…} PSRemotingProtocolVersion      2.3 SerializationVersion           1.1.0.1 WSManStackVersion              3.0 1. Windows標準のcurl.exe Windowsにはcurl.exeが付属している。 PS> gcm curl CommandType     Name                                               Version    Source -----------     ----                                               -------    ------ Application     curl.exe                                           8.4.0.0    C:\Windows\system32\curl.exe Google検索してみるとcurlにエイリアスが設定されているという情報があるが、私の環境では設定されてなかった。 エイリアス一覧。 P