4

私は問題があります。PHPコードでubuntuを再起動したいのですが、できません。私はインターネットのすべてのコードを試しました

<?php
shell_exec("/usr/sbin/reboot");
exec("/usr/sbin/reboot");
system("/usr/sbin/reboot");
?>

<?php
shell_exec("shutdown -r");
exec("shutdown -r");
system("shutdown -r");
?>

しかし、それらはすべて何もしません。私を助けてください。このコードが必要です。

4

2 に答える 2

2

PHPコードがWebサーバーによって実行されている場合、ubuntuのユーザー「www-data」の下で実行されています。

おそらく www-data にはシャットダウンする権利がありません。これは正常なデフォルトです。

www-data sudo にパスワードを指定せずにシャットダウンする権限を与え、sudo を使用して再起動を呼び出すことができます。

sudo 構成を編集する前に、よく見てman sudoers、セキュリティへの影響を確実に理解してください。これにより、PHP スクリプトにサーバーをシャットダウンする権利が効果的に与えられます (テストされていません)。

# /etc/sudoers (edit using the visudo command)

Cmnd_Alias     SHUTDOWN = /usr/sbin/shutdown
Cmnd_Alias     HALT = /usr/sbin/halt
Cmnd_Alias     REBOOT = /usr/sbin/reboot

Host_Alias     LOCALHOST = 127.0.0.1

www-data       LOCALHOST = NOPASSWD: SHUTDOWN, HALT, REBOOT

PHP では、以下を使用できます。

shell_exec("/usr/bin/sudo /usr/sbin/reboot");
于 2013-08-26T07:42:52.933 に答える
0

PHP ユーザーに root アクセス権を付与することはお勧めしません

ここをチェックしてください: https://stackoverflow.com/a/5226760/2708670

于 2013-08-26T07:40:31.627 に答える