APIをいろいろ試している、あきら(@akrwnet)です(^v^)
APIのセミナーに行ってきたことは、前回の記事で書いたとおりです。
→APIを使ったトラベルサイト構築できる無料セミナーに行って来ました。
そこで実践したAPIのプログラムを、自分で借りているX2サーバーで試してみようかと早速実装してみました。
ところが、エラーが出てしまい全くAPIが動作しないという状況になったんですね。
考えられる要因として、APIのバージョンが5.0以上でないといけないということ
なので、早速確認してみたところ5.3だったので、それはOK
また、試しにロリポップのサーバーにもアップロードしてみたのですが、しっかりAPIプログラムが動くことを確認できました。
これは確実にX2サーバーの設定の問題のようです。
X2サーバーに問い合わせてみる
X2サーバーに原因があるということなので、問い合わせをしてみると
ここの対応は早く、すぐに返信してくれました。
本件に関して、php.ini設定より設定可能な
「allow_url_fopen」「allow_url_include」などを
オンへご変更の上、状況をご確認いただいてもよろしいでしょうか?※いずれも、「外部サーバーのファイルの読み込み」や
「外部サーバーのプログラムの実行」に利用する
設定項目でございます。
本件ご希望の動作が「APIの利用」とのことであり、
上記関連もあるかと思われますので、ご確認くださいませ。
php.iniの設定に問題があるようで
「allow_url_fopen」
「allow_url_include」
これらを確認して見ることにしました。
php.ini設定を変更
X2のサーバー管理ツールにログインし、ホームページ→php.iniを開きます。
そして対象ドメインを選択し、php.ini設定変更へ
「allow_url_fopen」と「allow_url_include」は、スクロールしていくと一番下にあります。
「allow_url_fopen」の設定をOnにして
「allow_url_include」はOffのままでとりあえず試してみました。
すると、APIプログラムは正常に動作することが確認できたので、設定を変えるのは「allow_url_fopen」だけで良いようです。
「allow_url_fopen」をOnにする問題点
デフォルトの設定でOffと言うことは、何かしらの意図があってしているものではあると思います。
なので、その辺も問い合わせてみたところ、このような返信をいただきました。
「allow_url_include」がデフォルトでOFFになっている事由といたしましては
こちらをOFFにすることで、セキュリティリスクの高い関数の禁止する事が
可能となるからでございます。※不正アクセスによる改ざんの原因として、不正に外部プログラムを実行させる脆弱性に起因する場合が多くございます。Offとする事で万一プログラムに脆弱性があった場合でも回避できる可能性が高まります。
「allow_url_include」をONにしてサーバーを運用することは推奨いたしておりませんので、ご利用プログラムの改ざん・脆弱性等についてより一層ご注意くださいますようよろしくお願い申し上げます。
※質問は「allow_url_fopen」で聞いたのに、「allow_url_include」となって回答されてしまいました。
どちらにせよ、セキュリティ面で問題があるようなので、Offにしているようです。
もしAPIを使わないのならば、Offにしておくほうが良いのかもしれません。
大抵のサーバーでは、Onに設定されている
しかし、この「allow_url_fopen」は大抵のサーバーでは、Onに設定されているようです。
ちょっとだけ確認してみました。
これらはデフォルトでOnになっています。
X2は、エックスサーバーの上位版になるので、同じエックスサーバー株式会社が経営しているところになります。(最近株式会社ベットから商号を変えたようです)
それなのに設定が違うって、ちょっと迷ってしまう人もいるかもですね。
X2で検索かけても出てこなくて、エックスサーバーの検索結果が出てくることもあるからです。
エックスサーバーよりもX2の方が料金が高めなので借りる人は少ないのも原因でしょうね。
自分はこの記事のとおり借りているので、いろんな情報をシェアできたらなぁと思います。
X2とエックスサーバーでは、サーバー管理ツール等も違うので違うところという認識のほうがよさそうです。
運営会社は同じでも、別々に独立しているのかもしれませんね。
ではまた(^‐^)ゝ
コメント