不思議な現象ですが、画面に「No Input file specified.」と表示されます。
何がおこっているのかわからなかったので、SysInternals の Procmon.exe で PHP を追ってみました。SysInternals は Windows 周りのトラブルシューティングに役立つツールがそろっています。Procmon はプログラムがどのファイル、レジストリ、ネットワークにアクセスしているかをリストアップしてくれます。膨大なログが出るので、フィルターをどれだけ上手に設定できるかがコツです。
ファイルアクセスがうまくいかなかった場合は「ACCESS DENIED」などと出てくるはずでした。ところが、今回は、エラーなログが出てきませんでした。
手掛かりがなくなったので、いろいろ試してみるしかありません。
ここで気づいたのが、特定ディレクトリ以下で見えなくなる法則性です。
自分の開発環境は、バックアップの意味を踏まえて以下のようにしてあります。
C:\sites\[案件名](.gitやworkフォルダ含む)\root(サイトルート)\
↓シンボリックリンク
~\OneDrive\sites\[サイト名]\
サイト内のファイルを更新したら、随時バックアップされていく仕組みです。
どうやら、OneDrive が関係してくると PHP から見えなくなるようでした。
回避手段としては、別の仕組みで OneDrive と同期をとるかです。
と思っていたら、PHP が修正されていました。以下であれば対応済だそうです。
- PHP 7.4
- PHP 7.3.10
- PHP 7.2.23
ディスカッションスレッド:
https://bugs.php.net/bug.php?id=78220