PHP บน Linux: วิธีทำให้ PHP ใช้การตั้งค่าพร็อกซีเพื่อเชื่อมต่ออินเทอร์เน็ต


12

เซิร์ฟเวอร์ของฉันอยู่ใน LAN และเชื่อมต่ออินเทอร์เน็ตผ่าน Proxy Server แอปพลิเคชัน PHP ของฉัน (Drupal) ควรตรวจสอบการอัปเดตผ่านโค้ด PHP ฉันจะตั้งค่าการตั้งค่าพร็อกซีสำหรับPHPเพื่อให้ทำงานได้อย่างถูกต้องได้อย่างไร

หมายเหตุ : ฉันรู้ว่าฉันสามารถตั้งค่าพร็อกซีเป็น curl หรืออย่างอื่นได้ แต่ในกรณีที่รหัสไม่ได้เป็นของฉันและฉันไม่ต้องการเปลี่ยนมัน ฉันแค่ต้องการทำให้ PHP เชื่อมต่ออินเทอร์เน็ตตลอดเวลาผ่านการตั้งค่าพร็อกซีเฉพาะ

คำตอบ:


7

คุณลักษณะนี้ไม่ได้ติดตั้งใช้งานใน php แต่มีการพูดคุย:
http://bugs.php.net/bug.php?id=29280

หากคุณมี php> = 5.3 คุณสามารถใช้การตั้งค่า auto_prepend ini เพื่อรวมสคริปต์ที่ใช้ stream_context_set_default () เพื่อตั้งค่าพร็อกซีเริ่มต้น แต่นี้จะตั้งค่า proxy สำหรับส่วนของ php ที่ใช้บริบทเริ่มต้นไม่ได้ทดสอบ แต่ฉันคิดว่าตัวอย่างเช่นก่อน Curl


มันควรจะทำงานใน curl ด้วยอย่างน้อยในซอร์สโค้ดก็มีเหตุผลสำหรับมัน: link
aseques

มีตัวอย่างการทำงานในstackoverflowที่ใช้ stream_context_create แทน context_set_default แต่จะทำงานได้ถ้าคุณเปลี่ยน
เท่ากับ

1

คุณลองตั้งค่าตัวแปรสภาพแวดล้อมแล้วหรือยัง

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


ไม่ฉันควรทำสิ่งนี้โดยใช้putenv()หรือใน. htaccess
Alexar

ไม่ลองแก้ไข / etc / environment
RedGrittyBrick

1
หาก / etc / environment ไม่ช่วยฉันจะแก้ไข / etc / apache2 / envvars และฉันจะใส่ทั้ง http_proxy และ HTTP_PROXY เนื่องจากแอปพลิเคชันที่แตกต่างกันมีการประชุมที่แตกต่างกันในบางครั้ง ทำแบบเต็มหยุดและเริ่ม Apache ใหม่ก่อนการทดสอบ ใช้ phpinfo เพื่อตรวจสอบตัวแปรที่สามารถมองเห็นได้ใน php
RedGrittyBrick

ฉันใช้ export http_proxy = localhost: 8080 export HTTP_PROXY = localhost: 8080ใช่ไหม?
Alexar

1
ไม่มีใครช่วย
Alexar

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"

ขอบคุณ ฉันใช้ Ubuntu และฉันได้ตั้งค่าพร็อกซีสำหรับการใช้งานทั้งระบบในปัจจุบัน แต่มันไม่ทำงาน
Alexar

0

หากเซิร์ฟเวอร์ของคุณเชื่อมต่อในลักษณะที่สามารถส่งคำขอ HTTP ผ่านพร็อกซีได้เท่านั้นคุณไม่จำเป็นต้องทำการเปลี่ยนแปลงใด ๆ อย่างไรก็ตามคุณจะต้องตรวจสอบให้แน่ใจว่าคุณมีวิธีการตรวจสอบว่าคำขอ HTTP ของคุณนั้นทำผ่านพร็อกซี

โปรดทราบด้วย - พร็อกซีของคุณอาจไม่สามารถจัดการคำขอทั้งหมดได้เพียงแค่ http / https การรับส่งข้อมูลอาจกำลังผ่านพร็อกซี แต่ถ้าพร็อกซีไม่ได้ถูกกำหนดค่าให้จัดการกับพร็อกซีอยู่ดีพร็อกซีนั้นอาจผ่านโดยไม่มีการติดตามมาก

หากคุณคิดว่าอาจเกิดเหตุการณ์นี้ขึ้นฉันจะทำให้ไฟร์วอลล์บนเซิร์ฟเวอร์ PHP แน่นขึ้นเพื่อให้สามารถส่งการรับส่งข้อมูลที่ระบุไปยังตำแหน่งที่ตั้งที่ระบุเท่านั้น จากนั้นคุณควรจะสามารถเห็นสิ่งที่ล้มเหลวและดำเนินการตามความเหมาะสม


0

คุณต้องการข้อมูลยังไหม

อย่างไรก็ตาม - สำหรับบันทึก: ปัญหาที่ค้างนานอยู่ใน drupal http://drupal.org/node/7881 - แปลกจริงๆ - และยังมีอีกมากมาย

ฉันติดตั้งรหัสหลักของฉัน แต่ต้องติดตามการเปลี่ยนแปลงของแพตช์ในการอัปเกรดและไม่ดี

หากมีวิธีที่จะทำให้ php ใช้พร็อกซีทั้งระบบฉันไม่รู้เลยว่าการค้นหามันน่าเบื่อ

ทักทาย

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.