2016-07-16 6 views
0

私はApacheとSlim FrameworkでPHPを設定したCentOS 7マシンです。PHP関数file_exits、copy、shell_execは1台のマシンでは動作しませんが、同じマシン上で動作する同じコード

ファイルが存在するかどうかをチェックしてコードをディレクトリにコピーする単純なコードは、マシンの1つで問題なく動作していますが、別のマシンでは動作していません。その本当に奇妙な。

実際に私はこの機能を起動するためにApache経由でAPIにアクセスしています。

shell_exec alawaysのような機能は、0を返します。 コピー機能も働いていません。 file_existsも機能しません。

これがなぜ間違っているか、この問題をデバッグする助けまたは手がかり。

+1

は[open_basedirの](HTTPの異なる設定だろうに

.net/manual/en/ini.core.php#ini.open-basedir)または[safe_mode_exec_dir](http://php.net/manual/en/ini.sect.safe-mode.php#ini.safe- mode-exec-dir)またはイベント[disable_functions](http://php.net/manual/en/ini.core.php#ini.disable-functions)のいずれかですか? –

+0

私は、phpのセキュリティ上、.iniファイルを設定するAlonのポイントを2回続けています。エラーが発生したことを確認するには、error_reportingがオンであることも確認してください。 – jirka

+0

私はさらにそれをデバッグしようとし、通常のPHPスクリプトのために働いているが、同じスクリプトがApache(Web)から呼び出されたときに動作していないことがわかりました。チェックされたopen_basedir/disable_functionは何も設定されていないので、なぜそれがApacheから動作していないのか不思議です – nirajkumar

答えて

0

ありがとうございました。

問題はファイルアクセス権の問題です。 私が実行していた上記の機能はすべてファイル上にあったのです。ファイルには異なるユーザーのアクセス権が異なるためです。

だから私はブラウザからURLをヒットした場合、そのファイルにアクセスしてそのファイルに対するアクセス権を読み取るためのフォルダに対する実行権限を持っていない "Apache"ユーザーを経由していました。 // PHP:短い

はsudo chmodの+ RXファイル

はsudo chmodの+ x "はすべてのディレクトリ構造"

関連する問題