2016-07-13 14 views
0

curlコマンドでサーバ上でphpスクリプトを実行しようとしています。スクリプトは、セキュリティ上の理由から、.htaccessファイルで私のサーバを含むいくつかのIPに制限されたフォルダにあります。 (フォルダが制限されていない場合、これは動作します)PHPカール実行権限と.htaccess

私はPHPで、このファイルを含めることができますが、問題なく含むが、私は、次のcurlコマンドでそれを実行するように見えることができます。

<?php 
// Execute the file server side. 
$fileurl = ("https://example.com/restrictedfolder/xyz12345.php"); 
exec("nohup curl ".$fileurl." > /dev/null 2>&1 & echo $!"); 
?> 

私は印象の下にありましたhtaccessはphpがファイルにアクセスするのを制限しませんでしたが(includeによって示されています)、これはCURLの場合とは異なります。

これをラウンドさせてサーバー側でファイルを実行する方法はありますか?

+0

あなたはいくつかのIPに '127.0.0.1'を持っていますか? – iainn

+0

いいえ私はしていない、それは何ですか? – user1419810

+0

申し訳ありませんが、誤解している可能性があります - curlコマンドをリモートのPHPスクリプトと同じマシンで実行していますか? 127.0.0.1は、(一般的に)同じシステム上のファイルにアクセスする場合に出るIPです。 – iainn

答えて

0

私は、htaccessファイルは、(含まによって示されるように)ファイルにアクセス からPHPを制限するdidntの印象の下にあったが、このdoesntのはCURLとケースのように に見えます。

スクリプトはファイルにアクセスしません。通常のブラウザと同様に、Apache経由でURLを読み込みます。

あなたは診断する2つのことを行うことができます。

  1. キャプチャし、制限されたIPアドレスがとしてログインします

  2. を参照してくださいApacheのエラーログ((むしろ/dev/nullに送信するよりも)カールのエラーメッセージを表示しますAH01630:クライアントサーバ構成によって拒否された)

ほとんどの場合、あなたが持っていますあなた自身のローカルIPアドレスは許可されていません。