Benim ana gizemli bir PHP SOAP hatası var, ancak yerel olarak yinelenen değil

3 Cevap php

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!

3 Cevap

Tamam, bu sorun üzerinde biraz güncelleme: Hata mysteriously Benden herhangi bir değişiklik olmadan kayboldu. Ben sessizce giderilmiştir Mosso bazı garip yapılandırma hatası olduğunu kabul etmek gerekir. Bu Şirket X kurulumu ile bir sorun olduğunu uzaktan da mümkündür. Bu IMO düzeltmenin kötü tür! Yine de teşekkürler bu konuda baktı herkese.

You might have this http://us.php.net/manual/en/filesystem.configuration.php#ini.allow-url-fopen

kayıp.

Her zaman görsel makineler arasındaki çevreyi karşılaştırmak için phpinfo () kullanabilirsiniz, unutmayın.

Diğer bir olasılık (ikinci the PHP docs):

Note: When safe mode is enabled, PHP checks whether the directory in which the script is operating has the same UID (owner) as the script that is being executed.

EDIT: muhtemelen o değil yani Hmm .. Ben PHP derleme seçenekleri güvenli mod görmüyorum.