2009-03-12 11 views
0

PHPとApacheを介してFedora 10マシン上でローカルに実行されるアプリケーションで作業しています。バックグラウンドで実行されるプロセスによって異なります。PHP Fedora 10からシステムコマンドとシェルスクリプトを呼び出せません

上位のユーザーは、ブラウザを使用してプロセスを開始/停止/再開できるようにする必要があります。私はこれを動作させるために、PHPにexec()とshell_execを使ってシステムコールをさせるようにしましたが、うまくいかないようです。

「exec( 'processName')」を使用してプロセスを開始しようとすると、何も起こりません。

"exec( 'killall processName')"を使用しようとすると、SELinuxはプロセスが許可されているという警告を常にポップアップします(私はそれを許可モードにしているので)。しかし、これは、ページが完全にロードされた後でさえも続くようです!

「exec( '/ var/www/cgi-bin/ControlProgram START')」という別のスクリプトを呼び出すことができます。だから私は本当に2つの呼び出し/コマンドの間に大きな違いがあるのか​​どうかはわかりません。

また、ログイン時にスクリプトが実行されるように、スクリプト呼び出しを/etc/rc.localファイルに入れます。しかし、私はPHPからこのスクリプトを実行することができますか?

私は権限/ SELinuxについて言えば、それほど敬遠されません。前もって感謝します!

+0

これまでの回答に感謝します。私は今夜​​あなたの例を試してみましょう。 Nolte、私はphp.iniをまったく変更したとは思わないが、私はチェックする。ありがとう。 –

答えて

0

私はこの問題を発見したと信じています。私はまだ問題が何であるか正確にはわかりませんが、ファイル/ディレクトリのアクセス許可と関係があるようです。スクリプトを私の/ var/www/htmlディレクトリに移動すると、スクリプトが実行されました。私はそれらを/ var/www/cgi-binに移しました。だから、apacheが/ var/wwwディレクトリの外にあるスクリプトを実行できないか、少なくともそれを直接実行することはできないかもしれません。あなたの助けをありがとう!

1

このシステムの管理者権限を持っている場合は、PHP設定を確認する必要があります(Webサーバーの設定プロファイルであることを確認してください)。

Safe_Modeは、PHPが特定のフォルダの外で何かを実行するのを防ぎます。共有ホスティング環境では、これは通常あなたのホーム/ wwwフォルダに関連するものだけを実行できることを意味します - あなたのメモに基づいているようです。

+0

セーフモードがオフです:( –

0

古い学校のUNIXのアクセス許可や、Apacheの動作のように聞こえます。私は(いくつかの時間があったが)それが実行されることにApacheが慎重であることを思い出している。あなたの8進数を再確認してください。

SELinuxでないことを確認するには、許可しないで無効にすることができます。これはファイルシステムのラベルを付け直す(またはすべきです)。その時点で、SELinuxコンテキストの拡張属性が不調和になり、再度強制的にSELinuxの問題が発生する可能性があります。