自宅でファイル共有にアクセスできない

事象

自宅のPCにHDDを接続して共有の設定を行った。
HDDに接続しているPCからはファイル共有のパスでアクセスするとアクセスできる。
しかし、同じサブネット内のPCからアクセスするとアクセスできない。

原因

カスペルスキーが通信をブロックしていた。

対応方法

以下で解説してくれていた。
support.kaspersky.co.jp
但し、当解説の通りにすると全ての通信をブロック解除してしまう。
自宅で使うのであればこのまま従うのではなく、リモートアドレスのところは”すべてのネットワークアドレス”ではなく、”サブネットアドレス(信頼済みネットワーク)"に変更すべきである。

その他落とし穴

  • 通信元もウイルス駆除ソフトが通信を止めている(このケースは少ないかも)
  • ファイル共有はONにしたが、アクセス許可設定ができていない
  • ログインするユーザー名がアクセス元と先で同じだが、パスワードが違っている
  • SMBの設定が悪さをしている
  • Wi-Fiのセグメント分離がONになっている(2.4GHzと5.0GHzでは別ネットワーク)

もう10年位使っている&更新したばかりなので、例の問題で買い替えるかどうか悩ましい…。実はノートPC買ったらこのライセンスがついてたので、乗り換えることは可能ではあるが…。

Listener(リスナー)とObserver(オブザーバー)

Listener(リスナー)

用途

あるイベントが実行された時に処理を実行したい場合に用いる

まずは読むべきサイト

developer.mozilla.org

上記の詳細を知りたい場合

Event - Web API | MDN
イベントリファレンス | MDN

コードスニペット
let button = document.getElementById('hoge');
button.addEventListener('click', function(event){
    console.log('bubbles       :' + event.bubbles);
    console.log('cancelable    :' + event.cancelable);
    console.log('currentTarget :' + event.currentTarget.outerHTML);
    console.log('eventPhase    :' + event.eventPhase);
    console.log('target        :' + event.target.outerHTML);
    console.log('type          :' + event.type);
});

Observer(オブザーバー)

用途

DOMの要素が変更された時に処理を実行したい場合に用いる

まずは読むべきサイト

developer.mozilla.org

コードスニペット
let targetNode = document.getElementById('hoge');
let config = {attributes: true, childList:true, subtree:true};
let callback = function(mutationsList, observer) {
  for(const mutation of mutationsList) {
    if (mutation.type === 'childList' ) {
      console.log('childList:' + mutation.target.outerHTML);  
    }
    else if (mutation.type === 'attributes') {
      console.log('attribute:' + mutation.target.outerHTML);
    }
  }
};
let observer = new MutationObserver(callback);
observer.observe(targetNode, config);

Windows11のタスクバーにチャットアイコンを非表示にさせたい

事象

タスクバーに登録しているアイコンを通常は右クリックすると、「タスクバーからピン留めを外す」というメニューが表示されて、タスクバーから外す事ができる。
けれども、使いもしないチャットなどが消せない。

f:id:yoneyore:20220320215424p:plain
チャットアイコンを消したい

対応方法

  1. Windosボタンを押下
  2. タスクと入力すると、「タスクバー上の[デスクトップの表示]ボタンの可視性を制御します」というのが表示されるのでクリック
  3. タスクバー項目にあるチャットのトグルをオフ
f:id:yoneyore:20220320215847p:plain
チャットを消せる設定

Unable to start the Phusion Passenger watchdog

事象

httpdを起動させようとすると以下の様なエラーが発生する。
結果、httpd自体は起動するが、Passengerが起動しなくなった。
(よって、Redmineも起動しなくなった。)

Passenger could not be initialized because of this error: 
Unable to start the Phusion Passenger watchdog because its executable
 (/opt/.rbenv/versions/2.4.4/lib/ruby/gems/2.4.0/gems/passenger-6.0.12/buildout/agents/PassengerWatchdog) does not exist. 
 This probably means that your Phusion Passenger installation is broken or incomplete, or that your 'PassengerRoot' directive is set to the wrong value.

発生環境

Redmineを起動させるための新しい環境を再構築していた際に発生

原因

モジュールが想定と異なるモジュールを読み込みしていたため。
ログを見ると以下の様な警告が出力されていた。

passenger_module is already loaded, skipping

そのため、mod_passenger.soを確認したところ、gemでインストールしたのとは別に、yum経由でインストールした古いmod_passenger.soがインストールされていた。
また、conf.module.dとconf.dにそれぞれmod_passenger.soをincludeする定義が行われており、更にconf.module.dに定義されているincludeが古いmod_passenger.soを読み込みする定義になっていた。

対応方法

  • conf.module.dのinclude文を削除
  • 古いmod_passenger.soの削除(※1)
  • Passengerインストール時に出力されるinclude文を利用(※2、※3)

※1 yum remove mod_passenger
※2 passenger-install-apache2-module --snippetで再取得可能
※3 通常はgemsでインストールしたpassenger配下のmod_passenger.soを指定

補記

PassengerWatchdog does not existについて

正しく起動すれば、buildout/agents/PassengerWatchdog側を参照にはいかない。
ログを見る限りでは、src/agent/watchdogを用いて起動してそう。
そのため、PassengerWatchdogがディレクトリに無くても気にしないでよさげ。

他のパターン

私はいずれも該当しなかったが、人によっては正解のパターンあるので紐づけ

該当gemがhttpd/Phusionの実行ユーザーが参照できる所有者・権限になっているかどうか

[Linux] Passengerをインストールし httpd.conf編集後に起動できない | iPentec

  • passenger-config compile-agent

StackOverGo-Phusion Passengerウォッチドッグを起動できませんか?

DaoMapperの定義に含まれる値が無いと怒られwarがデプロイできない

事象

Tomcatに他のシステムで動いていたWARをデプロイしたら、以下の様なエラーが発生した。

Caused by: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for hoge.dao.hogeDaoMapper.Select
        at org.apache.ibatis.session.Configuration$StrictMap.get(Configuration.java:1031)
        at org.apache.ibatis.session.Configuration.getMappedStatement(Configuration.java:821)
        at org.apache.ibatis.session.Configuration.getMappedStatement(Configuration.java:814)
(以下略)

catalina.outを確認すると、以下の様なエラーメッセージが出力されていた。

情報 [Catalina-utility-1] org.apache.catalina.startup.HostConfig.deployWAR Webアプリケーションアーカイブ [/opt/tomcat/webapps/hoge.war] を配備します
重大 [Catalina-utility-1] org.apache.catalina.startup.ContextConfig.beforeStart コンテキスト [/hoge] の docBase を修復中に例外が発生しました。
        java.io.IOException: ファイル[/opt/tomcat/webapps/hoge/META-INF/war-tracker]を作成できません。
            at org.apache.catalina.startup.ExpandWar.expand(ExpandWar.java:180)
            at org.apache.catalina.startup.ContextConfig.fixDocBase(ContextConfig.java:615)

原因

WARの中にwar-trackerというファイルが含まれていたため。
他のシステムから移行する際、WARを持ってきたのではなく、デプロイしたファイルをWAR化して持っていった。
そのため、稼働中のファイルにwar-trackerが含まれていたのでエラーになった。
なお、DaoMapperの定義に含まれる値が無いからwarがデプロイできないのではなく、
WARがデプロイできないからDaoMapperの定義を記述したXMLが参照できなくて怒られていた。

対応方法

WAR化する前に META-INF/war-tracker ファイルを削除してから再度WAR化すればよい。

ディレクトリ配下のBOMを含むファイルを検出したい

find ./ -type f -exec file '{}' \; | grep BOM

MySQLをyum updateしようとするとGPG keyの事で怒られる

事象

yum updateしようとすると、MySQLの部分が以下の様に怒られる。

Downloading packages:
warning: /var/cache/yum/x86_64/7/mysql57-community/packages/mysql-community-server-5.7.37-1.el7.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID 3a79bd29: NOKEY
file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql から鍵を取得中です。

The GPG keys listed for the "MySQL 5.7 Community Server" repository are already installed but they are not correct for this package.
Check that the correct key URLs are configured for this repository.

Failing package is: mysql-community-server-5.7.37-1.el7.x86_64
 GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

対応方法

GPG keyを更新する。

rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

rpmで取得できない場合は、wgetで取得して、その後rpmコマンドで反映させればよい。
(最悪ブラウザで当サイトにアクセスしてテキスト保存して、配置すれば良い。)

wget -O /etc/pki/rpm-gpg/RPM-GPG-KEY-mysql https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-mysql