PHPのcRUL関数を用いたProxy接続
PHPでの開発時、Proxy経由で外部連携等々でcRUL接続を行う場合のサンプルコードを以下に示す。
<?php $ch = curl_init(); $fp = fopen("/tmp/test.txt", "w"); // 通信内容を保存するためのテンポラリファイル $errfp = tmpfile(); $loginpassw = 'ID:PASS'; $proxy_ip = 'http://proxy.test.com'; $proxy_port = '3128'; $url = 'http://www.google.com'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_VERBOSE, 1); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // proxy接続を無効にする場合、以下ブロックをコメント curl_setopt($ch, CURLOPT_PROXYPORT, $proxy_port); curl_setopt($ch, CURLOPT_PROXYTYPE, 'HTTP'); curl_setopt($ch, CURLOPT_PROXY, $proxy_ip); curl_setopt($ch, CURLOPT_PROXYUSERPWD, $loginpassw); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_FRESH_CONNECT, true); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 2); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_STDERR, $errfp); curl_setopt($ch, CURLOPT_FAILONERROR, 1); // file output //curl_setopt($ch, CURLOPT_FILE, $fp); $ret = curl_exec($ch); print_r($ret); // 記録した通信内容を読み出す fseek($errfp, 0); while (($line = fgets($errfp)) !== FALSE) { $tmp .= $line . "<br />"; } // 通信状況を出力 echo $tmp; curl_close($ch); fclose($fp); ?>
参考
https://ameblo.jp/itboy/entry-11983530735.html
■wwwサーバのProfileとして読み込ませる事も可能
wwwサーバをapacheユーザーとして起動しいる場合
proxy-user = "ID:PASS" proxy = "http://proxy.test.com:3128"
- ②ファイル権限変更
- $ chown apache: /var/www/.curlrc
- ③apacheユーザーへスイッチ
- ④Proxy経由での挙動確認
- $ curl -v -H ‘Cache-Control: no-cache’ -L ‘http://www.google.com/’
■システム全体へ適用
OS構成ファイル/etc/environmentへ配置
- environmentファイル作成
- $ vim /etc/environment
# プロキシ設定 ============================================== # 実際の環境変数の設定 export http_proxy="http://ID:PASS@proxy.test.com:3128" export https_proxy="http://ID:PASS@proxy.test.com:3128" # 大文字バージョンしか認識しないプログラム用 export HTTP_PROXY="http://ID:PASS@proxy.test.com:3128" export HTTPS_PROXY="http://ID:PASS@proxy.test.com:3128" # プロキシを利用しないアドレスの指定(必須) export no_proxy="127.0.0.1,localhost" export NO_PROXY="$no_proxy"
上記により全てのユーザーで共通して使用可能。
■蛇足
curl の基本設定ファイルを作ることが出来る
~/.curlrc Default config file, see -K, --config for details.
.curlrc に書く書き方は -K で指定する config ファイルと同じ
- ①configファイル作成
- $ vim /etc/curlrc
- [/var/www/.curlrc]参照
- $ vim /etc/curlrc
- ②configファイル指定した挙動確認
- $ curl -v -K /etc/curlrc -L ‘http://www.google.com/’
ここら辺を良しなに作成する一括設定スクリプト
下記サイト参照