人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

自サイトのURLだとPHPのsimplexml_load_fileが正常に動作しません。

自サイトがxxx.comだとすると
simplexml_load_file("http://111.222.333.444/test.xml");
のようにIPアドレスだと正常に読み込めるのですが・・
simplexml_load_file("http://xxx.com/test.xml");
のように自サイトのURLを指定すると、読み込むことができません。

aaa.jpなど他サーバーから
simplexml_load_file("http://xxx.com/test.xml");
とすると正常に読み込むことはできます。

丁度似たような現象で困っている方を他の掲示版で見つけ、
(参考:http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12134459142)
「サーバーのDNS設定を修正した所、ドメイン名でもxmlファイルが読み込めるようになりました。」
とあるのですが具体的にどこを修正すればいいのか分からず困っております。

SSLをインストールした際に以下のように設定を変更したことが原因だと思いますが、
どこが誤っているかご教授お願い致します。(コードは続きに記載)

1421276083
●拡大する

●質問者: gelgelgel
●カテゴリ:インターネット ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

質問者から

こちらが追加したコードです

<VirtualHost 111.222.333.444:443>
ServerAdmin admin@xxx.com
DocumentRoot /var/www/vhosts/xxx.com/httpdocs/
ServerName www.xxx.com
ErrorLog /var/www/vhosts/xxx.com/logs/error_log
SSLEngine on
SSLProtocol all
SSLCertificateFile /usr/local/ssl/certs/newcert.pem
SSLCertificateKeyFile /usr/local/ssl/private/xxx.com.key
SSLCACertificateFile /usr/local/ssl/certs/inca.pem
ScriptAlias /cgi-bin /var/www/vhosts/xxx.com/httpdocs/cgi-bin
<Directory "/var/www/vhosts/xxx.com/httpdocs/">
Options ExecCGI IncludesNOEXEC FollowSymLinks
AllowOverride ALL
AddHandler cgi-script .cgi .pl .rb .py
Order allow,deny
Allow from all
</Directory>
</VirtualHost>


1 ● gizmo5
●500ポイント ベストアンサー

http でアクセスできていますので DNS は関係ありません。
というかそもそも VirtualHost なのですよね。

こちらが参考にならないでしょうか。
https://blog.apar.jp/linux/378/
http://httpd.apache.org/docs/2.2/ja/vhosts/name-based.html


gelgelgelさんのコメント
ご回答有難うございます。 参考サイトを拝見し色々検証してみましたが、改善されませんでした。 私の不勉強もありますが、ちょっとご回答が漠然としていて何が原因か 把握できません。 「○○の××が△△になっているのが原因では?□□を■■すれば直るのでは」 程度の内容をいただけると助かります。

gizmo5さんのコメント
少し勘違いをしていました。 https ではダメで http なら OK なのかと思ってました。 SSL の VirtualHost の定義をしたら、http でも接続できなくなったということでしょうか。 http の方の定義はどうやっているでしょうか。 多分、VirtualHost の定義をしていないのだと思います。 >http://httpd.apache.org/docs/2.2/ja/vhosts/name-based.html:title> 名前ベースのバーチャルホストを使うには、そのホストへの リクエストを受け付けるサーバの IP アドレス (もしかしたらポートも) を指定する必要があります。 これは NameVirtualHost ディレクティブで設定します。通常、NameVirtualHost で * の属性を使ってサーバの全ての IP アドレスを使います。 (例えば SSL の使用などで) 複数のポートを使うことを計画しているのであれば、 引数に *:80 のようにポートも含めるようにしてください。 >> メインホストはなくなります 既にあるウェブサーバにバーチャルホストを追加する場合、 既存のウェブサーバに対しても <VirtualHost> ブロックを作らなければなりません。このバーチャルホストの ServerName と DocumentRoot は、グローバルな ServerName と DocumentRoot と同じものにします。また、このバーチャルホストを設定ファイルの中で 先頭に置いて、デフォルトホストとして動作するようにします。 << <<

gelgelgelさんのコメント
ご回答有難うございます。 >少し勘違いをしていました。 >https ではダメで http なら OK なのかと思ってました。 私の説明に誤りがありました。再度検証した所・・・ ×ダメ:simplexml_load_file("https://xxx.com/test.xml"); ○OK:simplexml_load_file("http://xxx.com/test.xml"); でした。SSLのURLのみ認識されませんでした。 他のサーバーからだとSSLのURLでも正常に読み込めます。 >http の方の定義はどうやっているでしょうか。 >多分、VirtualHost の定義をしていないのだと思います。 以下のようにSSLの設定の前に記述しています。 NameVirtualHost 111.222.333.444:80 <VirtualHost 111.222.333.444:80> ServerAdmin admin@xxx.com DocumentRoot /var/www/vhosts/xxx.com/httpdocs/ ServerName xxx.com ServerAlias *.xxx.com ErrorLog logs/xxx.com-error_log CustomLog logs/xxx.com-access_log common <Directory "/var/www/vhosts/xxx.com/httpdocs/"> Options FollowSymLinks AllowOverride All Order allow,deny Allow from all Options +ExecCGI AddType application/x-httpd-cgi .cgi </Directory> </VirtualHost> 参考URLも拝見し検証しましたが、状態は改善されませんでした。 他に心当たりがあればご回答宜しくお願いいたします。

gizmo5さんのコメント
>> ×ダメ:simplexml_load_file("https://xxx.com/test.xml"); << 自ホストからこれをしたときの Apache の errorlog には、どんな status code が残っているでしょうか。 アクセスが届いていて弾かれているのか、アクセスが届かないのかの切り分けをすると一歩進むような気がします。

gelgelgelさんのコメント
ご回答ありがとうございます。 エラーログ調べたのですが、それらしき記述は見つけることができませんでした。 その他諸々検証したのですが上記読み込めなかった原因は、mod_rewriteのSSLの転送設定に誤りがあることが分かりました。大変失礼いたしました。 ただ設置されたxmlは読み込めるのですが、WordpressのFeedは読み込むことができませんでした。こちらは別の問題となるためご質問は一旦終了させて頂きます。 ご協力いただき有難うございました。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ