php 始终使用 azure cli 执行命令 return null
php exec command with azure cli always return null
在运行 PHP 的 Apache 服务器上,我有一个命令总是 return null。
exec("az storage container exists --account-name $accountName
--account-key $key --name $containeurName", $output);
我修改了 sudoers 文件,但它没有任何改变:
www-data ALL=(ALL) NOPASSWD: /usr/bin/az
感谢您的帮助。
使用 exec($your_command, $output, $error_code)
并查看 $error_code
包含的内容。可能只是因为 az
不在 PHP.
的 PATH 环境变量中
尝试放置可执行文件的完整路径,通常是这样的:
<?php
// A default path in case "which az" doesn't work.
define('AZ_DEFAULT_PATH', '/usr/bin/az');
// Find the path to az with the "which" command.
$az_path = exec('which az');
if ($az_path === false) {
$az_path = AZ_DEFAULT_PATH;
}
// Sanitize your variables to avoid shell injection and build the command.
$cmd = $az_path .
"storage container exists --account-name $accountName " .
"--account-key $key --name $containeurName";
$last_line = exec($cmd, $full_output, $error_code);
// Then check if $last_line !== false and check $error_code to see
// what happened.
var_export([
'$cmd' => $cmd,
'$last_line' => $last_line,
'$full_output' => $full_output,
'$error_code' => $error_code,
]);
在运行 PHP 的 Apache 服务器上,我有一个命令总是 return null。
exec("az storage container exists --account-name $accountName --account-key $key --name $containeurName", $output);
我修改了 sudoers 文件,但它没有任何改变:
www-data ALL=(ALL) NOPASSWD: /usr/bin/az
感谢您的帮助。
使用 exec($your_command, $output, $error_code)
并查看 $error_code
包含的内容。可能只是因为 az
不在 PHP.
尝试放置可执行文件的完整路径,通常是这样的:
<?php
// A default path in case "which az" doesn't work.
define('AZ_DEFAULT_PATH', '/usr/bin/az');
// Find the path to az with the "which" command.
$az_path = exec('which az');
if ($az_path === false) {
$az_path = AZ_DEFAULT_PATH;
}
// Sanitize your variables to avoid shell injection and build the command.
$cmd = $az_path .
"storage container exists --account-name $accountName " .
"--account-key $key --name $containeurName";
$last_line = exec($cmd, $full_output, $error_code);
// Then check if $last_line !== false and check $error_code to see
// what happened.
var_export([
'$cmd' => $cmd,
'$last_line' => $last_line,
'$full_output' => $full_output,
'$error_code' => $error_code,
]);