「The input appears to be a DNS hostname but cannot match against hostname schema for TLD 'JP'」が出力されます
Helix Swarm2021.2のメール設定後、以下のメッセージがログファイルに出力されました。
対応方法を教えてください。
The input appears to be a DNS hostname but cannot match against hostname schema for TLD 'JP',
The input does not appear to be a valid URI hostname,
The input does not appear to be a valid local network name in AbstractProtocol.php
Helix Swarmはメールアドレスに有効なトップレベルドメイン(TLD)があるかをチェックしています。
このメッセージはTLDに"JP"が登録されていないため出力されています。
以下のいずれかの方法で解消される場合があります。
- トップレベルドメインの定義にJPを追加する(Hostname.phpの編集)
- Address.phpでトップレベルドメインを許可する
■トップレベルドメインの定義にJPを追加する(Hostname.phpの編集)
\opt\perforce\swarm\vendor\laminas\laminas-validator\src\Hostname.php
'jp',
'JP',
'jptest',
'jprs',
■ Address.phpでトップレベルドメインを許可する
\opt\perforce\swarm\vendor\laminas\laminas-mail\src\Address.php
変更前)
$emailAddressValidator = new EmailAddressValidator(Hostname::ALLOW_DNS | Hostname::ALLOW_LOCAL);
↓
変更後)
$emailAddressValidator = new EmailAddressValidator(Hostname::ALLOW_ALL | Hostname::ALLOW_LOCAL);
Helix Swarmをアップグレードすると、上記で変更した内容は新しいファイルで上書きされます。
アップグレード時には同じ編集を実施する必要があります。
■ 解決しない場合
上記手順で解決しない場合、追加で以下の手順を実施してください。
1.Swarmキャッシュファイルの削除
phpファイルを変更したため、キャッシュ情報のリセットを行います。
curl -u "username:password" -X DELETE "https://myswarm.url/api/v9/cache/config/"
※ username:password:Helixサーバの管理者ユーザIDとパスワードを指定
※ myswarm.url:実際のHelix SwarmURLを指定
このコマンドを実行すると、Helix Swarmを構成するキャッシュが格納されるファイル"module-config-cache.php"が削除されます。キューワーカーを起動すると"module-config-cache.php"が再構成されます。"module-config-cache.php"は、以下のディレクトリに格納されるため、ファイルの日付が更新されていることをご確認ください。
キャッシュ格納先 /opt/perforce/swarm/data/cache
2.Apacheのリロード
以下のコマンドを実行します
apachectl restart
【Swarmから操作する場合】
1.super権限を持ったユーザでSwarmにログインします
2.ユーザアイコンから、[ System Information ]→[ Cache Info ]タブを開きます。
3.[ Reload Configuration ]ボタンをクリックします。
"/opt/perforce/swarm/data/cache"にある" *cache.php "
ファイルのタイムスタンプが更新されます。