您好,我在使用php脚本执行cron作业时遇到问题,cron作业给出的答案是:“文件cer.pem不存在”,但是该文件与cron.php位于同一文件夹中文件,我用下一个代码调用文件:
$params = array(
"cadenaOriginal" => "cadenaOriginal.txt",
"archivoKeyPem" => "key.pem",
"archivoCerPem" => "cer.pem"
);
try {
$result = Sellar::ObtenerSello($params);
return $result;
} catch (Exception $e) {
echo 'Caught exception: ', $e->getMessage(), "\n";
}
但是我收到提到的错误,这是“ ObtenerSello”功能:
public static function ObtenerSello($params) {
self::_checkOpenssl();
if(isset($params['cadenaOriginal']) && isset($params['archivoCerPem']) && isset($params['archivoKeyPem'])){
$cadena_original = $params['cadenaOriginal'];
$archivoCerPem = $params['archivoCerPem'];
$archivoKeyPem = $params['archivoKeyPem'];
}else{
throw new Exception('Se debe especificar una cadena original, archivo .cer.pem, archivo .key.pem');
}
self::_existsFile($cadena_original);
self::_existsFile($archivoCerPem);
self::_existsFile($archivoKeyPem);
$cadena_original = file_get_contents($cadena_original);
$pkeyid = openssl_get_privatekey(file_get_contents($archivoKeyPem));
openssl_sign($cadena_original, $crypttext, $pkeyid, OPENSSL_ALGO_SHA256);
openssl_free_key($pkeyid);
$sello = base64_encode($crypttext);
if(!self::_verifySeal($cadena_original, $crypttext, $archivoCerPem)){
throw new Exception('Ocurrió un error al generar el sello.');
}
$r = ["status"=>"success", "sello"=>$sello];
return json_encode($r);
}`private static function _existsFile($file){
if(!file_exists($file)){
throw new Exception("El archivo $file no existe");
}
}`
所有具有此功能的文件都位于与cron.php相同的文件夹中,但是我一直收到相同的错误,我已经尝试过将路径“ ../cron/cer.pem”放置,但它表示“文件.. /cron/cer.pem不存在” 我究竟做错了什么?? 谢谢!