(これについてはオンラインでいくつか言及されていますが、解決策はどれも機能しませんでした。)PHPスクリプトからShell_execおよびexecを使用できるようにしたいと思います。
意味、使用:
<? exec("echo hello world"); ?>
または
<? Shell_exec("echo hello world"); ?>
オンラインで見つけたリンク( http://forums.cpanel.net/f5/enable-Shell_exec-one-user-109601.html )によると、それを行う1つの方法は、VirtualHostの下に追加することですディレクティブ:
php_admin_value suhosin.executor.func.blacklist =“ Shell_exec”
しかし、設定ファイルを見て、ウェブサーバーを再起動しようとすると、次のようになります。
28/07/14 17:18:26: Syntax error on line 1 of /etc/httpd/conf.d/serv1.conf:
28/07/14 17:18:26: php_admin_value takes two arguments, PHP Value Modifier (Admin)
サーバーは再起動されません。
ExecとShell_execを有効にする方法はありますか?このエラーの原因を追跡できません。
編集:私はマシンのルートではありません。 php.iniファイルが見つかりませんでしたが、/ etc/httpd/conf.d/php.confファイルがあり、disable_functionsがありません。
ここにあります:
#
# PHP is an HTML-embedded scripting language which attempts to make it
# easy for developers to write dynamically generated webpages.
#
<IfModule prefork.c>
LoadModule php5_module modules/libphp5.so
</IfModule>
<IfModule worker.c>
LoadModule php5_module modules/libphp5-zts.so
</IfModule>
#
# Cause the PHP interpreter to handle files with a .php extension.
#
AddHandler php5-script .php
AddType text/html .php
#
# Add index.php to the list of files that will be served as directory
# indexes.
#
DirectoryIndex index.php
#
# Uncomment the following line to allow PHP to pretty-print .phps
# files as PHP source code:
#
#AddType application/x-httpd-php-source .phps
マシンのルートではなく、exec()
関数が無効になっている場合、自分で有効にすることはできません。
参照 http://php.net/manual/en/ini.core.php#ini.disable-functions
disable_functions文字列
このディレクティブを使用すると、セキュリティ上の理由から特定の機能を無効にすることができます。関数名のコンマ区切りリストを受け取ります。 disable_functionsはセーフモードの影響を受けません。
このディレクティブを使用して無効にできるのは、内部関数のみです。ユーザー定義関数は影響を受けません。
このディレクティブはphp.iniで設定する必要があります。たとえば、httpd.confでは設定できません。
Php_admin_valueは2つの議論を取り、=
記号を必要としないので、
php_admin_value suhosin.executor.func.blacklist "Shell_exec"
または、複数のphp関数をブロックするために使用します
php_admin_value suhosin.executor.func.blacklist "Shell_exec, opendir, file_get_contents, phpinfo"
関数から削除
disable_functions=""
php.iniファイル
または、Suhosinがある場合は、suhosin.executor.func.blacklist
の下のSuhosin構成ファイルの設定を確認してください。