Nasıl Windows üzerinde PHP için küresel CURLOPT_CAPATH ayarlayabilirsiniz?

4 Cevap php

Ben ancak ben gerçekten ne istiyorum php.ini veya tüm projeler ve tüm örnekleri arasında bu idare edecek yerde benzer bir şey kurmak için, herhangi bir özel örnek seçeneği ayarlayabilirsiniz anlıyorum.

Herkes bana bunu gerçekleştirmek için bir yol biliyor mu?

EDIT: I am particularly interested in a solution which will allow for the certificates to be in different locations on different servers.

Ona ihtiyacım yok ama bile yol gösterilen yok değil sadece bir Linux sunucuya dağıtma ama bu ihtiyacı bir Windows makine üzerinde geliştiriyorum.

Ben kod çalıştığı yeri kontrol için koşullar kullanabilirsiniz ama sadece o kutunun dışında çalışmak için tercih edeceğini anlıyoruz. Bu gerçekten kıvrılması ve orada ait için oldukça kodumu daha ve dolayısıyla ayarları işlemek için PHP için bir sorun gibi geliyor bana.

4 Cevap

http://php.net/manual/en/function.curl-setopt.php: Ben burada (kullanıcı notları) cevap bulundu

Sadece sizin için bu eklemek ini (not: istediğiniz neden bilmiyorum rağmen, ini_set kullanamazsınız Carlton @ teşekkürler.).:

curl.cainfo=c:\php\cacert.pem

Ve o dosyayı olsun: http://curl.haxx.se/docs/caextract.html

İşleri ve MITM için kendinizi açılması değil

Burada geçerli bir crt veri (hemen hemen tüm dağıtımlar için böyledir) yapı anda bulunduğunda biz linux ne görebilirsiniz 'taklit' için bir yama:

http://www.php.net/~pierre/patches/curl_cacert_default.txt

\ curl \ ca.crt: o = c curl.cainfo, cacert yolunu tanımlamak için (sistem) ini ayarlarını ekler

cacert veriler buradan alinabilir: http://curl.haxx.se/docs/caextract.html

DLL for php 5.3 can be found here: http://www.php.net/~pierre/test/curl-5.3-vc9-x86-ts-nts-cainfodefault.zip DLL for php 5.2 can be found here: http://www.php.net/~pierre/test/curl-5.2-cainfodefault.zip

Bana nasıl çalıştığını iletebilirsiniz.

@ Matt doğru, ama ben bu curl.cainfo Eğer {[(3) kullanarak ... php.ini bunu ayarlamak gerekir bu yüzden bir PHP_INI_SYSTEM direktifi olduğunu eklemek istiyorum Ben beceriyor başın çok fazla dakika sonra öğrendim gibi bir komut]} işlevi her zaman false dönecektir

Bunu tanımlanan oluyor dosyasını yüklemek için bir seçenek ve kullanım php.ini 'nin auto_prepend_file ayarlayan bir sarıcı işlevi oluşturabilir, ancak kod yerine bu kapsayıcı işlevi kullanmak için değiştirilmesi gerekir.

Örnek:

function my_curl_init($url=null) {
  $ch = curl_init($url);
  curl_setopt($ch, CURLOPT_CAINFO, getcwd().'/cert/ca.crt');
  return $ch;
}