- ベストアンサー
Amazost v2.0からエラーが出ます
- Amazost - My Amazon Store Manager v2.0 日本語化にバージョンアップしてからエラーが出るようになりました。
- エラー表示は「Fatal error: Call to undefined function: hash_hmac() in 省略/script/aws4class.php on line 257」です。
- アクセスキーID、シークレットアクセスキー等のミスはないと思います。新しいバージョンをDLしてアップしても同じエラーが出ます。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
それでは、まず、 http://www.nanolink.ca/pub/sha256/ こちらで「Download source code」のところからファイルをダウンロードしてください。 解凍したら、「nanolink-sha256.inc.php」を、Amazostの「script」ディレクトリにアップします。 次に、前回紹介したページの最下部にある、背景が黄色いソースコードが記述されているものを、コピーして、「メモ帳(とかテキストエディタ)」で「hmac-sha256.php」という名前で保存して、また同様にアップロードして下さい。 次に、「hmac.php」という名前で、 下記を保存してください --------hmac.php-------------------- if(!function_exists('hash_hmac')){ function hash_hmac($dummy1, $str, $secret_key, $dummy2){ $sha = new HMAC_SHA256($secret_key); return $sha->hmac($str); } } ------------------------------------ 最後に、Amazostの「index.php」を開き、最初の、「chdir("script");」 と記述されているところのしたに、 require_once 'nanolink-sha256.php'; require_once 'hmac-sha256.php'; require_once 'hmac.php'; を追記してください。 これで恐らく動きます。
その他の回答 (2)
- hogehoge78
- ベストアンサー率80% (433/539)
>index.phpの「require_once 'nanolink-sha256.php';」を「require_once 'nanolink-sha256.inc.php';」に変更した所エラーの表示が変わりました。 スミマセン私の記述ミスです。そのようにしていただいてあってます。 >Fatal error: Failed opening required 'sha256.inc.php' (include_path='.:/usr/local/lib/php') in 省略/script/hmac-sha256.php on line 8 これも、スミマセン、 hmac-sha256.php内の8行目の require_once('sha256.inc.php'); となっているところをコメントアウト、 //require_once('sha256.inc.php'); このようにしてください。 これで動くと思います。
お礼
有難うございました。無事に動きました。 ただはじめはまだエラーが出てしまっていたので素人なりにいじってみました。 ---エラー内容--- if(!function_exists('hash_hmac')){ function hash_hmac($dummy1, $str, $secret_key, $dummy2){ $sha = new HMAC_SHA256($secret_key); return $sha->hmac($str); } } これがトップページでは常に上部に表示され、商品のページもエラーでした。 ---変更点--- hmac.phpは作らずindex.phpの「chdir("script");」の下を以下の様にしてみた所正常に動作しました。 require_once 'nanolink-sha256.inc.php'; require_once 'hmac-sha256.php'; //require_once 'hmac.php'; if(!function_exists('hash_hmac')){ function hash_hmac($dummy1, $str, $secret_key, $dummy2){ $sha = new HMAC_SHA256($secret_key); return $sha->hmac($str); } } 大変お世話になりました。m(__)m
- hogehoge78
- ベストアンサー率80% (433/539)
http://php.benscom.com/manual/ja/function.hash-hmac.php PHP5.1.2以上で標準で搭載された関数のようです。 それ以前のバージョンをご利用であればPECLモジュールをインストールする必要があるようです。 (又はインストール時に明示的に[--disable-hash]としている場合も使用できない) レンタルサーバなど、利用できない場合は、hash_hmacの代替関数が必要になるわけですが、 http://softyasu.blog121.fc2.com/blog-category-7.html こちらに詳しく記載されております。
補足
お返事遅くなりました。 書き忘れてましたが、当方PHPの知識がない為詳しく書かれているようでしたが理解できませんでした。 ごめんなさい。 どなたか私でも参考になるサイトまたは説明を頂けるようでしたら宜しくお願いします。 無い様でしたら諦めます。 環境はレンタルサーバを利用している為自分ではインストールが出来ない状態です。 失礼しました。
補足
詳しいご説明ありがとうございます。 説明の通り出来たと思うのですがまたエラーが出てしまいました。 Fatal error: Failed opening required 'nanolink-sha256.php' (include_path='.:/usr/local/lib/php') in 省略/index.php on line 3 見当違いかもしれませんが、 index.phpの「require_once 'nanolink-sha256.php';」を「require_once 'nanolink-sha256.inc.php';」に変更した所エラーの表示が変わりました。 Fatal error: Failed opening required 'sha256.inc.php' (include_path='.:/usr/local/lib/php') in 省略/script/hmac-sha256.php on line 8 何度も申し訳ありません。