特定のユーザーを使用して PHP からコマンドライン アプリケーションを実行する
www-user として実行されている PHP スクリプトから Rhythmbox の再生を制御するには、次のようにします。アプリケーションがデフォルトの www ユーザーではなく、意図されたユーザーとして実行されることが重要です。効果的な解決策の 1 つは、sudo を利用することです。
sudo を利用することで、PHP スクリプトは昇格された権限で rhythmbox-client コマンドを呼び出すことができます。ただし、特定のコマンドのみが許可されるようにするには、それに応じて sudoers ファイルを構成することをお勧めします。例:
wwwuser ALL=/usr/bin/rhythmbox-client
sudo の呼び出しを特定のコマンドに制限することで、環境を保護し、Apache が任意のコマンドを実行するのを防ぐことができます。
rhythmbox-client が困難な場合は、制御する正しいインスタンスを特定し、適切な環境を確立してコマンドを実行するための bash スクリプトの作成を検討してください。以下のスクリプトは、このアプローチの例です。
#! /bin/bash DBUS_ADDRESS=`grep -z DBUS_SESSION_BUS_ADDRESS /proc/*/environ 2> /dev/null| sed 's/DBUS/\nDBUS/g' | tail -n 1` if [ "x$DBUS_ADDRESS" != "x" ]; then export $DBUS_ADDRESS /usr/bin/rhythmbox-client --pause fi
このスクリプトを PHP の実行に統合することで、wwwuser に対象を絞った方法で再生を制御する機能を付与し、電話に出たときに音楽を一時停止するという目的の機能を有効にすることができます。電話を切ったときに再開します。
以上がPHP から特定のユーザーとしてコマンドライン アプリケーションを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。