2017-05-05 4 views
1

シェルスクリプトを実行するためにPHPスクリプトを使用しようとしています。しかし、私は明らかにWebサーバーでいくつかの問題を抱えています。シェルスクリプトを実行しているPHPでexec()に関する問題

switch_audio.shというbashスクリプトがあります。基本的にシステムのアクティブなオーディオ出力を変更します。私はそれがうまく働いてphp script.phpを実行すると

<?php 
    echo "It's working"; 
    exec("/var/www/html/switch_audio.sh"); 
?> 

は、私はまた、以下のコードを実行しますscript.phpを持っています。しかし、私がlocalhost/script.phpでウェブブラウザでそれを実行しようとすると、私はちょうど "エコー"部分を出力してしまいます。

私はすでにに試した:php.iniで無効化機能から

  1. 削除 'のexec()';
  2. このパス上のすべてのフォルダのすべてのユーザーに、 "/"から "localhost"フォルダへのアクセス許可を与えます。

これについてのご意見はありますか?

+0

ApacheはCLIに異なるphp.iniのを使用する場合があります。あなたはapacheのphp.iniをチェックしましたか? –

答えて

0

あなたはすでにあなたのphp.iniの設定にシェル機能を使用できますが、それはそうかもしれない作業はまだ...いないようだと述べた:

  • あなたが変更
  • あなたは後にWebサーバサービスを再起動しませんでしたあなたのPHPファイルにはini_setかもしれません。リマインダーとして

、あなたがphp.iniファイルによくやっていることを確認してください、声明のこの種のためにそれをチェックすること:

disable_functions=exec,passthru,shell_exec 

たぶん、あなたはexecの他の同様のPHP関数の代わりに試すことができますshell_execのように動作するかどうかを確認してください。または、何かを表示していない可能性があります。

0

シンプルなソリューション:exec()は、文字列を返しますが、あなたはまた、ユーザーに出力することがあります。

<?php 
    echo "It's working"; 
    echo exec("/var/www/html/switch_audio.sh"); 
?> 
関連する問題