PHP から Python スクリプトを実行するときの許可システムを理解するのに問題があります。かなり微妙に思えますが、質問をできるだけ単純化しようとします。
状況は以下の通りです。私は持っている:
- /var/www/ にあるPython スクリプトmyscript.py
- /var/www/ にあるPHP スクリプトmyscript.php
- /home/some_folder/ にあるファイルfoo.txt 。重要: foo.txt には「r」権限のみがあります。
myscript.php で:
exec('python myscript.py')
myscript.py で:
f = open('/home/some_folder/foo.txt', 'r')
テスト 1
/var/www/ のコマンド ラインから myscript.py を実行すると、foo.txt が開きますが、その場所は気にしません。
テスト 2
myscript.php の実行: foo.txt が開かれていません。
テスト 3
foo.txt の場所を /var/www/ に変更し、それに応じて myscript.py を変更して myscript.php を実行すると、 foo.txt が開かれます。
だから... ここで、テスト 2 の何が問題なのかを理解しようとしています。
回避策は簡単に見つかるため、これは好奇心によるものです。しかし、私は問題を抱えており、これらのことを十分に理解していないため、なぜ機能しないのかまともな考えを思いつくことができません. 私はあなたの何人かがそうするだろうと確信しています、そして私は彼らに前もって感謝します:)