コンテンツ
質問
Helix Swarmをインストールし、当日は使用できました。
翌日アクセスしたところ、以下のエラーメッセージが表示されました。
対応方法を教えてください。
Swarm has detected an error
Please investigate the below PHP error:
Command failed: Your session has expired, please login again.
回答
「Your session has expired」はHelix Swarm管理用ユーザのチケット有効期限が失効した場合に表示されます。
以下の手順で設定をご確認ください。
手順
1.グループ仕様の編集
Helix Swarmの管理用ユーザが所属しているグループで、"Timeout"フィールドを"unlimited"に変更し、
チケットの有効期限を無期限に変更します。
p4 -p server:port -u super group swarm_group
※ server:port:接続先のHelixサーバの情報を指定します
※ super:Helixのスーパー権限ユーザを指定します
※ swarm_group:Helix Swarmの管理用ユーザが所属しているグループ名を指定します
Timeout: 43200 (デフォルト値)
↓
Timeout: unlimited
■ P4Adminを使用して編集を行う場合
[ ユーザとグループ ]タブでHelix Swarm管理用ユーザが所属しているグループを右クリックし、[ グループ"グループ名"を編集 ]を選択します。
編集画面の"ログインセッションが期限切れとなるまでの期間"で[ Unlimited ]を選択して[ OK ]をクリックします。
2.チケットの確認
Helix Swarm サーバマシンにアクセスし、ログインを行った後、チケットの確認を行います。
p4 -p server:port -u swarm login
p4 -p server:port -u swarm login -s
※ server:port:Helix Swarmが参照するHelixサーバの情報を指定します
※ swarm:Helix Swarmの管理用ユーザを指定します
"-s"オプション:現在のチケットのステータスを表示します
User swarm ticket expires in 166496 hours 29 minutes.
次に、チケットの値を確認します。
p4 -p server:port -u swarm login -p
Enter password:
6024B04A0FBE066AC2A85B0AXXXXD21A
チケット値をテキストファイルなどにコピーし、一時的に記録します。
3.Helix Swarmにチケット値を設定する
Helix Swarmの設定ファイル(config.php)に手順2で取得したチケット値を設定します。
以下ファイルの"password"フィールドを編集して保存します。
設定ファイル格納先: /opt/perforce/swarm/data/
設定ファイル: config.php
'p4' => array(
'port' => 'server:port',
'user' => 'swarm',
'password' => '6024B04A0FBE066AC2A85B0AXXXXD21A',
),
4.Swarmキャッシュファイルの削除
"config.php"を変更したので、キャッシュ情報をリセットします。
curl -u "username:password" -X DELETE "https://myswarm.url/api/v9/cache/config/"
※ username:password:Helixサーバの管理者ユーザIDとパスワードを指定します
※ myswarm.url:Helix SwarmURLを指定します
5.Apacheの再起動
設定変更を反映させるため、Apacheの再起動を行います。
apachectl restart