web-dev-qa-db-ja.com

PHP:Linuxの作り方PHPプロキシ設定を使用してインターネットに接続するには?

私のサーバーはLAN内にあり、プロキシサーバーを介してインターネットに接続されています。私のPHPアプリケーション(Drupal)、PHPコードを介して更新をチェックできるはずです。どのように設定できますかプロキシ設定[〜#〜] php [〜#〜]正しく機能するように?

:curlなどでプロキシ設定を設定できることを知っています。しかし、ケースはコードが私のものではなく、私はそれを変更したくない場合です。 PHPは常に特定のプロキシ設定を介してインターネットに接続します。

12
Alexar

この機能はphpでは実装されていませんが、(以前は)議論されていました。
http://bugs.php.net/bug.php?id=2928

php> = 5.3がある場合は、auto_prepend ini設定を使用して、stream_context_set_default()を使用してデフォルトのプロキシを設定するスクリプトを含めることができます。しかし、これはデフォルトのコンテキストを使用するphpの部分のプロキシを設定するだけで、テストしませんでしたが、curlの前の例はそうではないと思います。

7
Florian Fida

環境変数を設定してみましたか?

http_proxy = http://proxy.example.com:808

1
RedGrittyBrick

ディストリビューションはわかりませんが、SUSEではファイル/etc/sysconfig/proxyを編集して、システム全体で使用するために1つまたは複数のプロキシサーバーを入力できます。

次に例を示します。

## Path:        Network/Proxy
## Description:
## Type:        yesno
## Default:     no
## Config:      kde,profiles
#
# Enable a generation of the proxy settings to the profile.
# This setting allows to turn the proxy on and off while
# preserving the particular proxy setup.
#
PROXY_ENABLED="yes"

## Type:        string
## Default:     ""
#
# Some programs (e.g. lynx, arena and wget) support proxies, if set in
# the environment.  SuSEconfig can add these environment variables to
# /etc/SuSEconfig/* (sourced by /etc/profile etc.) -
# See http://portal.suse.com/sdb/en/1998/01/lynx_proxy.html for more details.
# Example: HTTP_PROXY="http://proxy.provider.de:3128/"
HTTP_PROXY="http://your.proxy.here:3128"

## Type:        string
## Default:     ""
#
# Some programs (e.g. lynx, arena and wget) support proxies, if set in
# the environment.  SuSEconfig can add these environment variables to
# /etc/SuSEconfig/* (sourced by /etc/profile etc.) -
# this setting is for https connections
HTTPS_PROXY="http://your.proxy.here:3128"

## Type:        string
## Default:     ""
#
# Example: FTP_PROXY="http://proxy.provider.de:3128/"
#
FTP_PROXY="http://your.proxy.here:3128"

## Type:        string
## Default:     ""
#
# Example: Gopher_PROXY="http://proxy.provider.de:3128/"
#
Gopher_PROXY=""

## Type:        string(localhost)
## Default:     localhost
#
# Example: NO_PROXY="www.me.de, do.main, localhost"
#
NO_PROXY="localhost, 127.0.0.1"
0
Christian

サーバーがプロキシ経由でhttpリクエストのみを送信できるように接続されている場合は、変更を加える必要はありません。ただし、httpリクエストがプロキシを介して行われていることを確認する方法があることを確認する必要があります。

また、プロキシがすべてのリクエストを処理していない可能性があることに注意してください-http/httpsのみ。トラフィックはプロキシを通過する可能性がありますが、とにかくプロキシを処理するようにプロキシが構成されていない場合、トラフィックはあまりトレースされずに通過する可能性があります。

これが発生していると思われる場合は、PHPサーバーのファイアウォールを強化して、指定した種類のトラフィックのみを指定した場所に送信できるようにします。これで、失敗し、適切なアクションを実行します。

0
dunxd

まだ情報が必要ですか?

とにかく-記録のために:これは長い未解決の問題ですdrupal http://drupal.org/node/7881 -本当に奇妙です-そしてもっとたくさんあります

コアコードにパッチを適用しましたが、アップグレード時にパッチの変更を追跡する必要があり、それはいいことではありません。

PHPにシステム全体のプロキシを使用させる方法がある場合、それを探すのは面倒でした。

挨拶する

0
groovehunter