lau*_*aur 5 php openbsd nginx exec
php-fpm,nginxexec在使用时.phpfiles() shell_exec() system()从命令行工作正常.
效果很好的例子:
#php myphp.php
Run Code Online (Sandbox Code Playgroud)
myphp.php 包含:
<?php
exec('ping -c 3 google.com', $output);
print_r($output);
?>
Run Code Online (Sandbox Code Playgroud)
但是,如果我戴上我的浏览器http://localhost/myphp.php,它就不再起作用了.
有任何想法吗?我编辑
我制作了一个包含以下内容的文件:
#cat info.php
<?php
if(function_exists('exec')) {
echo "exec is enabled";
}
phpinfo();
?>
Run Code Online (Sandbox Code Playgroud)
在我的浏览器中,打印
exec已启用,y php信息..
我制作了一个包含以下内容的文件:
#cat info.php
<?php
// Check for safe mode
if( ini_get('safe_mode') ){
// Do it the safe mode way
echo "Do it the safe mode way";
}else{
// Do it the regular way
echo "Do it the regular way";
}
?>
Run Code Online (Sandbox Code Playgroud)
在我的浏览器中,打印
这是常规方式
难道我不想知道我是否在监狱里?
在我的PHP ini中
#cat /etc/php-5.5.ini
Run Code Online (Sandbox Code Playgroud)
safe_mode未显示,或ON或OFF.根本不存在
我认为 exec 和此类功能在您的 php.ini 中被禁用。你可以通过以下方式检查
if(function_exists('exec')) {
echo "exec is enabled";
} else {
echo "exec is disabled";
}
Run Code Online (Sandbox Code Playgroud)
打开您的 php.ini 并导航到disable_functions部分
如果 exec 列在此处,请将其删除。
然后重新启动php-fpm。
另外,如果启用了安全模式,则此功能将不可用。您需要禁用它。
编辑
使用完整路径进行 ping。您可以通过在 shell 中发出此命令来找到它which ping
编辑
<?php
exec('/sbin/ping -c3 google.com', $output);
print_r($output);
?>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12177 次 |
| 最近记录: |