会社のサーバをWindowsServerから CentOS7 + Samba に入れ替えました。
サーバー上のあるエクセルファイルを、予定表として共有しているのだが、
これを開きっぱなしにしてしまうユーザーがいるので、がまんできなくなったら、
WindowsServerの共有の管理で強制的に閉じていました。
Linuxに置き換えることになったので、ファイルへの接続を切断できるアプリを、
PHP で ローカルWebアプリとして実装した。
ところがサーバ置き換え後、PHPを呼び出してみると、
PHPは動作しているのだが、sudo が失敗して、ロックのかかっているファイル一覧が取得できていない。
visudo → 設定済み
SELINUX → Permissive
firewalld → 設定済み
...なぜか動作しない。
同じ環境であるはずの自宅サーバでは問題なく動作する。
shell_exec でエラーが取得できるように、 2>&1 をコマンドに加えた瞬間に、
動作するようになったが、時間を置いたらまた動作しなくなった。
原因が全く分からない。 再インストール? すべてやり直すか?
一瞬よぎるが、ファイルサーバはすでに稼働中。
これをまた旧環境に戻すのは一苦労なので、やめる。
2>&1 をコマンドに加えたので、エラーが取得できた。
device not a stream
検索し続けると、ようやくありました。
Sophos Anti-Virus が原因で、apache の sudo が失敗するとのこと。
Sophosの オンアクセス検索 を オフにしてみると、
動作しました!!!
誤検知が多いので、ClamAV からSophosAVに変えたことが原因でした。
除外設定はまだうまくいっていないので、当面はオンアクセス検索オフで行きます。
オンアクセスの除外がうまくいったらまた、報告します。
できている方は、ご教授ください。(phpのファイルを除外してもだめでした)