Bana stymied ilginç bir PHP / SOAP hata genelinde çalıştırmak. Arama yaptıktan sonra ben mantıklı bir açıklama bulamadı ve senin yardımına takdir ediyorum. İşte arka plan bulunuyor:
Ben benim kontrolüm değil (en masum korumak için "X Şirketi" diyelim) PHP / CodeIgniter bir üçüncü taraf tarafından sağlanan bir arka-uç sistemi ile SSL üzerinden iletişim kurmak için SOAP kullanan yerleşik bir site var . Iyi MVC ruhla, ben ayrı bir model bu veri kaynağı ile etkileşim için özel kodu koymak (system/application/models/company_x.php
). Benim Mac mAmp kullanarak yerel gelişmekte olan ve hemen hemen her şeyi test ve geliştirme yoluyla nispeten pürüzsüz oldu; SSL üzerinden Şirket X web servisini çağırmak dahil. Muhtemelen kendi web servis PHP 5 SOAP beğenmedi garip WSDL olduğunu belirtmek gerekir. Yoktu gerekli parametrelerin gibi şeyler. Çok açıkça soap yöntemleri çağırmak için biraz garip oldu, ama gidiş var ve bu test ile çalıştı. Ben bile Mosso bir test sitesine dağıtmış, ve ben çok orada bir süre çalışmış yemin olabilirdi.
Benim için sürpriz hayal zaman aşağıdaki gibi bir üretim hataları başlayan SOAP web hizmeti her çağrı:
A PHP Error was encountered Severity: Warning Message: SoapClient::__doRequest() [soapclient.--dorequest]: WARNING: URL fopen access Filename: models/company_x.php Line Number: 86
Hata günlükleri sunucuda modeli dosyasının tam yolu dışında başka bilgi vermedi. Yerel olarak çalışır ve ben daha önce Mosso çalıştı düşündüm. Belki Mosso ayarlarını değiştirdi ve engelli SOAP falan. Biraz phpinfo()
sonra, ve yeterince daha var. Ben belki benim Mac SSL sertifikasının daha hoşgörülü olduğunu düşündüm. Sonuçta, belki fopen
sorun ulaşmıyorsa yaşıyor, bir GoDaddy *. Domain.com sertifika bulunuyor. SSL üzerinden bağlamak ve Mosso üzerine koymak için bir test dosyası kadar çırpılmış ve çalıştı.
Neden SOAP için aniden erişim bir sorun fopen
olduğunu merak ediyorum? Aniden bu zor yapmak olduğunu Mosso hakkında Nedir? Bazı php.ini
ayarını geçersiz kılmak gerekir mi? Tamamen farklı bir şey, bu gibi yararsızdır hataları ile sık sık olduğu gibi, olabilir mi?
Update: buradan phpinfo gelen yapılandırma komut ():
'./configure' '--build=x86_64-redhat-linux-gnu' '--host=x86_64-redhat-linux-gnu' '--target=x86_64-redhat-linux-gnu' '--program-prefix=' '--prefix=/usr' '--exec-prefix=/usr' '--bindir=/usr/bin' '--sbindir=/usr/sbin' '--sysconfdir=/etc' '--datadir=/usr/share' '--includedir=/usr/include' '--libdir=/usr/lib64' '--libexecdir=/usr/libexec' '--localstatedir=/var' '--sharedstatedir=/usr/com' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--cache-file=../config.cache' '--with-libdir=lib64' '--with-config-file-path=/etc' '--with-config-file-scan-dir=/etc/php.d' '--disable-debug' '--with-pic' '--disable-rpath' '--without-pear' '--with-bz2' '--with-curl' '--with-exec-dir=/usr/bin' '--with-freetype-dir=/usr' '--with-png-dir=/usr' '--enable-gd-native-ttf' '--without-gdbm' '--with-gettext' '--with-gmp' '--with-iconv' '--with-jpeg-dir=/usr' '--with-openssl' '--with-png' '--with-pspell' '--with-expat-dir=/usr' '--with-pcre-regex=/usr' '--with-zlib' '--with-layout=GNU' '--enable-exif' '--enable-ftp' '--enable-magic-quotes' '--enable-sockets' '--enable-sysvsem' '--enable-sysvshm' '--enable-sysvmsg' '--enable-track-vars' '--enable-trans-sid' '--enable-yp' '--enable-wddx' '--with-kerberos' '--enable-ucd-snmp-hack' '--with-unixODBC=shared,/usr' '--enable-memory-limit' '--enable-shmop' '--enable-calendar' '--enable-dbx' '--enable-dio' '--with-ming' '--with-mime-magic' '--with-sqlite=shared' '--with-libxml-dir=/usr' '--with-xml' '--with-system-tzdata' '--with-apxs2=/usr/sbin/apxs' '--without-mysql' '--without-gd' '--without-odbc' '--disable-dom' '--disable-dba' '--without-unixODBC' '--disable-pdo' '--disable-xmlreader' '--disable-xmlwriter' '--disable-json'
Note: aşağıda yorumum phpinfo()
sıvamak izin verildiğini bildiriyor; garip!