Linux의 PHP : PHP가 프록시 설정을 사용하여 인터넷에 연결하는 방법? 수 있어야합니다. 제대로 작동하도록 PHP

내 서버가 LAN에 있으며 프록시 서버를 통해 인터넷에 연결되어 있습니다. 내 PHP 응용 프로그램 (Drupal)은 PHP 코드를 통해 업데이트를 확인할 수 있어야합니다. 제대로 작동하도록 PHP 프록시 설정 을 어떻게 설정 합니까?

참고 : 프록시 설정을 컬 등으로 설정할 수 있다는 것을 알고 있습니다. 그러나 경우는 코드가 내 것이 아니며 변경하고 싶지 않다는 것입니다. PHP가 항상 특정 프록시 설정을 통해 인터넷에 연결되도록하고 싶습니다.



답변

이 기능은 PHP에서 구현되지는 않았지만 토론
중에는 http://bugs.php.net/bug.php?id=29280

php> = 5.3 인 경우 auto_prepend ini 설정을 사용하여 stream_context_set_default ()를 사용하여 기본 프록시를 설정하는 스크립트를 포함시킬 수 있습니다. 그러나 이것은 기본 컨텍스트를 사용하는 PHP 부분에 대해서만 프록시를 설정하고 테스트하지는 않았지만 curl for example 예제가 없다고 생각합니다.


답변

환경 변수 설정을 시도 했습니까?

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


답변

배포판을 모르지만 SUSE에서는 파일을 편집하고 /etc/sysconfig/proxy시스템 전체 사용을 위해 하나 이상의 프록시 서버를 입력 할 수 있습니다.

예를 들면 다음과 같습니다.

## 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"


답변

프록시를 통해서만 http 요청을 보낼 수있는 방식으로 서버가 연결되어 있으면 변경할 필요가 없습니다. 그러나 http 요청이 프록시를 통해 이루어 졌는지 확인하는 방법이 필요합니다.

또한 프록시가 모든 요청을 처리하지 못할 수도 있습니다-http / https. 트래픽이 프록시를 통과 할 수 있지만 프록시가 어쨌든 처리하도록 프록시를 구성하지 않으면 많은 추적없이 통과 할 수 있습니다.

이런 일이 발생할 수 있다고 생각되면 PHP 서버의 방화벽을 강화하여 지정된 종류의 트래픽 만 지정된 위치로 보낼 수 있습니다. 그런 다음 실패한 내용을보고 적절한 조치를 취할 수 있어야합니다.


답변

아직도 정보가 필요합니까?

어쨌든-기록을 위해 : 오랫동안 눈에 띄는 문제 이것은 drupal http://drupal.org/node/7881에 있습니다 -정말 이상합니다. -그리고 훨씬 더있다

핵심 코드를 패치했지만 업그레이드시 패치 변경 사항을 추적해야하며 좋지 않습니다.

PHP가 시스템 전체 프록시를 사용하게하는 방법이 있다면, 그것을 찾는 것은 지루한 일입니다.

접견


답변