Linux'ta PHP: PHP internete bağlanmak için proxy ayarlarını nasıl kullanılır?


12

sunucum bir LAN'da ve bir Proxy Sunucusu üzerinden internete bağlı. PHP uygulamam (Drupal), PHP kodları üzerinden güncellemeleri kontrol edebilmelidir. düzgün çalışması için PHP Proxy Ayarları nasıl ayarlayabilirim ?

Not : i bukle ya da başka bir şey proxy ayarlarını ayarlayabilirsiniz biliyorum. ama durum kod benim değil ve ben değiştirmek istemiyorum. Ben sadece PHP her zaman belirli bir proxy ayarları ile internete bağlanmak yapmak istiyorum.

Yanıtlar:


7

Bu özellik php uygulamasında değil, tartışılıyor:
http://bugs.php.net/bug.php?id=29280

php> = 5.3 değerine sahipseniz, varsayılan proxy ayarlamak için stream_context_set_default () kullanan bir komut dosyası eklemek için auto_prepend ini ayarını kullanabilirsiniz. ama bu sadece php varsayılan bağlamı kullanmak, test etmedi bölümleri için bir proxy ayarlayacaktır ama bence bu örnek öneki kıvırmak.


Kıvrılma üzerinde de çalışmalı, en azından kaynak kodda bunun mantığı var: bağlantı
aseques

Bir çalışma exemple yoktur stackoverflow kullanımı yerine context_set_default ait stream_context_create ama bunu değiştirmek eğer çalışacağını.
aseques

1

Ortam değişkenlerini ayarlamayı denediniz mi?

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


Hayır, bunu putenv().htaccess kullanarak mı yapmalıyım ?
Alexar

Hiçbiri, / etc / environment düzenlemeyi deneyin
RedGrittyBrick

1
/ Etc / environment yardımcı olmazsa, / etc / apache2 / envvars'ı düzenlerdim ve farklı uygulamaların bazen farklı kurallara sahip olması nedeniyle hem http_proxy hem de HTTP_PROXY'yi yerleştirirdim. Test etmeden önce tam bir duraklama ve Apache'yi yeniden başlatın. Değişkenlerin php tarafından görülebildiğini kontrol etmek için phpinfo kullanın
RedGrittyBrick

i ihracat kullanılan http_proxy = localhost: 8080 ihracat HTTP_PROXY = localhost: 8080 doğru mu?
Alexar

1
kimse yardım etmedi.
Alexar

0

Dağıtımınızı bilmiyorum, ancak SUSE'de dosyayı düzenleyebilir /etc/sysconfig/proxyve sistem genelinde kullanım için bir veya daha fazla proxy sunucusu girebilirsiniz.

İşte bir örnek:

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

Teşekkürler. Ubuntu kullanıyorum ve şu anda sistem genelinde kullanım için proxy ayarladım. ama işe yaramıyor.
Alexar

0

Sunucunuz yalnızca proxy üzerinden http istekleri gönderebilecek şekilde bağlandıysa, değişiklik yapmanız gerekmez. Ancak, http isteklerinizin proxy üzerinden yapıldığını doğrulamanın bir yoluna sahip olduğunuzdan emin olmak istersiniz.

Ayrıca unutmayın - proxy'niz tüm istekleri yerine getirmiyor olabilir - yalnızca http / https. Trafik proxy üzerinden geçiyor olabilir, ancak proxy zaten bunları işleyecek şekilde yapılandırılmamışsa, fazla iz bırakmadan geçebilir.

Bunun olabileceğini düşünüyorsanız, PHP sunucusundaki güvenlik duvarını sıkılaştırırım, böylece yalnızca belirtilen konumlara belirli türde trafik gönderebilir. Daha sonra neyin başarısız olduğunu görebilmeli ve uygun önlemleri alabilmelisiniz.


0

hala bilgiye mi ihtiyacın var?

neyse - kayıt için: uzun bir olağanüstü sorun bu drupal http://drupal.org/node/7881 - gerçekten garip. - ve çok daha fazlası var

Temel kodumu yamaladım, ancak yükseltme sırasında yamalardaki değişiklikleri izlemek zorunda ve hoş değil.

Php sistem çapında proxy kullanmak için bir yol varsa, hiçbir fikrim yok, arama sıkıcı oldu.

greets

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.