мой сервер находится в локальной сети и подключен к Интернету через прокси-сервер. мое приложение PHP (Drupal) должно иметь возможность проверять наличие обновлений с помощью кодов PHP. как я могу установить Настройки прокси для PHP чтобы он работал правильно?
Заметка: я знаю, что могу установить настройки прокси в curl или еще где-нибудь. но дело в том, что код не мой, и я не хочу его менять. Я просто хочу, чтобы PHP всегда подключался к Интернету через определенные настройки прокси.
Эта функция не реализована в php, но (обсуждалась):
http://bugs.php.net/bug.php?id=29280
если у вас php> = 5.3, вы можете использовать параметр auto_prepend ini, чтобы включить скрипт, который использует stream_context_set_default () для установки прокси по умолчанию. но это установит прокси только для тех частей php, которые используют контекст по умолчанию, не тестировал его, но я думаю, что пример curl fore отсутствует.
Вы пробовали устанавливать переменные среды?
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 использовать общесистемный прокси, я понятия не имею, его поиск был утомительным.
приветствует