2012-03-26 11 views
2

Ok Apache Webサーバーをのルートとして実行する必要があります。このため私はwhoamiとタイプしました。端末の。それは私に出力を与える:ルート。しかし、私は自分のapacheサーバをrootユーザとして実行しているかどうかをチェックするときに、次のphpスクリプトを実行してチェックします:<?php echo whoami; ?>それは私に出力を与える:誰も。だから、Apacheのrootユーザーとして実行/ログインするための提案は何ですか?あなたは何をしているかわかっている場合ubuntuのrootとしてのApache

+5

をなぜだろうಠ_ಠその –

+0

私は、ハイパーバイザと話をするのlibvirt-PHPを使用していますXenのvirtualization.Iに取り組んでいますので私はこのPHPスクリプトを使用しました:<?php $ conn = libvirt_connect( "xen:///"); $ name = libvirt_domain_lookup_by_id($ conn、3); $ dest = libvirt_domain_destroy($ name); echo $ dest; ? \t > 私はこれを実行すると、それは私を示しています。警告:libvirt_domain_destroy()[function.libvirtドメインは-破壊]:/opt/lampp/htdocs/xampp/shutdown.php読み込み専用アクセスのために禁じられた操作virDomainDestroy on line 5 – Alee

+0

libvirtに接続するためにrootとしてApache/PHPを実行する必要はないと思います。接続するときに適切な資格情報を入力するだけです。 – Brian

答えて

2

、ファイルを見ての/ etc/apache2の/ envvarsの

あなたがカスタマイズすることができ、これらの変数

export APACHE_RUN_USER=root 
export APACHE_RUN_GROUP=root 
+2

Apacheを再コンパイルせずに動作しません – David

3
私は外部のPHPファイルを作成することをお勧め

この拡張機能に関連するすべてを処理するサーバー。そして、shell_execsudoの組み合わせでこのスクリプトを呼び出すことができます。

このようにして、Webサーバーユーザーをsudoersファイルに入れ、rootとしてphp-cliを実行させることができます。その後

、スクリプトの中であなたは、単に使用することができます

$output = shell_exec("sudo /bin/php /yourscript.php"); 

これは私の意見では、verry悪い考えあるルートとしてApacheを実行するよりもはるかセキュアなソリューション、だろう、あなたが何をしているか知っていても。

+0

1Mユーザーの方が速くなるでしょうか? –

+1

最初の質問ではパフォーマンスは問題ではありませんでした。私が言ったように、これは非常に悪い習慣であり、私はそれにあまり依存しません。 YMMV。 –

0

Apacheのプロセスを実行している懸案事項をrootとして返信します。それは単なる悪い考えです。 私は最近、PHPが実際のBashシェルを取得して操作できるプロジェクトを公開したのです。ここでそれを取得します:https://github.com/merlinthemagic/MTS

を使用すると、単純に次のコードを使用しますダウンロードした後:

$shell = \MTS\Factories::getDevices()->getLocalHost()->getShell('bash', true); 
$return1 = $shell->exeCmd('php /var/scripts/test.php'); 
//the return will be a string containing the return of the script 
echo $return1; 
関連する問題