लिनक्स पर PHP: इंटरनेट से कनेक्ट करने के लिए PHP का उपयोग प्रॉक्सी सेटिंग्स कैसे करें?


12

मेरा सर्वर एक लैन में है और एक प्रॉक्सी सर्वर के माध्यम से इंटरनेट से जुड़ा है। मेरा PHP एप्लिकेशन (Drupal), PHP कोड के माध्यम से अपडेट की जांच करने में सक्षम होना चाहिए। मैं PHP के लिए प्रॉक्सी सेटिंग्स कैसे सेट कर सकता हूं ताकि यह ठीक से काम करे?

नोट : मुझे पता है कि मैं कर्ल या कुछ और में प्रॉक्सी सेटिंग्स सेट कर सकता हूं। लेकिन मामला यह है कि कोड मेरा नहीं है और मैं इसे बदलना नहीं चाहता। मैं बस एक विशिष्ट प्रॉक्सी सेटिंग्स के माध्यम से PHP को हमेशा इंटरनेट से कनेक्ट करना चाहता हूं।

जवाबों:


7

यह फीचर php में कार्यान्वित नहीं है, लेकिन (था) चर्चा में:
http://bugs.php.net/bug.php?id=29280

अगर आपके पास php = = 5.3 है, तो आप डिफ़ॉल्ट स्क्रिप्ट सेट करने के लिए stream_context_set_default () का उपयोग करने वाली स्क्रिप्ट को शामिल करने के लिए auto_prepend ini सेटिंग का उपयोग कर सकते हैं। लेकिन यह केवल php के उन हिस्सों के लिए एक प्रॉक्सी सेट करेगा जो डिफ़ॉल्ट संदर्भ का उपयोग करते हैं, यह परीक्षण नहीं करते हैं, लेकिन मुझे लगता है कि कर्ल के सामने उदाहरण नहीं है।


यह कर्ल पर भी काम करना चाहिए, कम से कम स्रोत कोड में इसके लिए तर्क है: लिंक
12'22 को असमानता

वहाँ में एक काम उदाहरण है stackoverflow कि context_set_default के बजाय उपयोग stream_context_create, लेकिन अगर आप इसे बदल यह काम करेंगे।
aseques

1

क्या आपने पर्यावरण चर सेट करने की कोशिश की है?

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


नहीं, मुझे यह प्रयोग करना चाहिए putenv()या .htaccess में?
अलेक्सर

न तो, संपादन / आदि का प्रयास करें / पर्यावरण
RedGrittyBrick

1
यदि / etc / पर्यावरण मदद नहीं करता है, तो मैं / etc / apache2 / envvars संपादित करूँगा और मैं http_proxy और HTTP_PROXY दोनों में डालूँगा क्योंकि अलग-अलग अनुप्रयोगों में कभी-कभी अलग-अलग कॉन्वेंटियोपन्स होते हैं। परीक्षण से पहले एक पूर्ण विराम और अपाचे का पुनः आरंभ करें। चर देखने के लिए phpinfo का उपयोग करें php के लिए दृश्यमान हैं
RedGrittyBrick

मैं निर्यात करता था http_proxy = localhost: 8080 निर्यात HTTP_PROXY = स्थानीय होस्ट: 8080 सही है?
एलेक्सर

1
किसी ने मदद नहीं की।
एलेक्सर

0

मुझे आपका वितरण नहीं पता है, लेकिन 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"

धन्यवाद। मैं उबंटू का उपयोग करता हूं और मैंने वर्तमान में सिस्टम-वाइड उपयोग के लिए प्रॉक्सी सेट किया है। लेकिन यह सिर्फ काम नहीं करता है।
अलेक्सर

0

यदि आपका सर्वर इस तरह से जुड़ा हुआ है कि यह केवल प्रॉक्सी अनुरोधों को प्रॉक्सी के माध्यम से भेज सकता है, तो आपको कोई बदलाव करने की आवश्यकता नहीं है। हालाँकि, आप यह सुनिश्चित करना चाहेंगे कि आपके पास यह सत्यापित करने का एक तरीका है कि आपके http अनुरोध प्रॉक्सी के माध्यम से किए गए हैं।

यह भी ध्यान दें - हो सकता है कि आपका प्रॉक्सी सभी अनुरोधों को संभाल नहीं रहा हो - बस http / https। ट्रैफ़िक प्रॉक्सी के माध्यम से गुजर रहा हो सकता है, लेकिन अगर प्रॉक्सी को किसी भी तरह से संभालने के लिए कॉन्फ़िगर नहीं किया गया है, तो वे बहुत ट्रेस के बिना गुजर सकते हैं।

यदि आपको लगता है कि यह हो रहा है, तो मैं PHP सर्वर पर फ़ायरवॉल को कस कर रखूँगा ताकि यह केवल निर्दिष्ट स्थानों पर निर्दिष्ट प्रकार के ट्रैफ़िक को भेज सके। फिर आपको यह देखना चाहिए कि क्या विफल हो रहा है और उचित कार्रवाई करें।


0

क्या आपको अभी भी जानकारी की आवश्यकता है?

वैसे भी - रिकॉर्ड के लिए: ड्रुपल http://drupal.org/node/7881 में एक लंबा बकाया मुद्दा है - वास्तव में अजीब है। - और भी बहुत कुछ है

मैंने अपना कोर कोड पैच कर दिया है, लेकिन किसी को अपग्रेड पर पैच के बदलाव को ट्रैक करना है और यह अच्छा नहीं है।

अगर php को सिस्टमवाइड प्रॉक्सी बनाने का कोई तरीका है, तो मुझे पता नहीं है, इसे खोजना थकाऊ था।

स्वागत करती है

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.