Bu konu, PHP SDK kullanımına ilişkin sık sorulan soruları yanıtlayarak daha verimli geliştirme yapmanıza yardımcı olur.
Ortam denetimi
PHP ortamının doğru şekilde yüklendiğinden ve PHP sürümünün 5,6 veya üzeri olduğundan emin olun.
Sisteminize Composer'ı genel olarak yükleyin.
SDK'yı Composer ile yüklerken kullandığınız PHP sürümü, çalışma zamanındaki PHP sürümüyle aynı veya ondan önceki bir sürüm olmalıdır. Örneğin, SDK'yı PHP 7.2 ortamında yüklerseniz oluşturulan vendor dizini yalnızca PHP 7.2 veya sonraki sürümlerle kullanılabilir. Bu dizini PHP 5,6 ortamına kopyalarsanız bağımlılık sürümü uyumsuzluğu sorunları oluşur.
Sorunlar
Sorun 1: AccessKey parametrelerinin iletilmesiyle ilgili sorunlar
Belirti: Kod çalıştırıldığında bir hata bildiriliyor. Hata iletisinde aşağıdaki bilgiler yer alıyorsa Alibaba Cloud kimlik bilgileri (AccessKey) doğru ayarlanmamış demektir.
V2.0 SDK: AlibabaCloud\Tea\Exception\TeaUnableRetryError: code: 400, AccessKeyId is mandatory for this action.
V1.0 SDK: Fatal error: Uncaught AlibabaCloud\Client\Exception\ClientException: AccessKey ID cannot be empty in XXX.
Çözüm:
-
ALIBABA_CLOUD_ACCESS_KEY_IDveALIBABA_CLOUD_ACCESS_KEY_SECRETortam değişkenlerinin yapılandırılıp yapılandırılmadığını denetlemek için aşağıdaki komutları çalıştırın:Linux/macOS
echo $ALIBABA_CLOUD_ACCESS_KEY_ID echo $ALIBABA_CLOUD_ACCESS_KEY_SECRETWindows
echo %ALIBABA_CLOUD_ACCESS_KEY_ID% echo %ALIBABA_CLOUD_ACCESS_KEY_SECRET%Doğru AccessKey değeri döndürülüyorsa yapılandırma başarılıdır. Dönen değer boş veya hatalıysa ortam değişkenlerini yeniden ayarlamayı deneyebilirsiniz. Daha fazla bilgi için bkz. Linux, macOS ve Windows sistemlerinde ortam değişkenlerini yapılandırma.
-
Kodunuzda AccessKey ile ilgili hataları denetleyin.
Yaygın hata örneği:
$config = new Config([ "accessKeyId" => getenv("yourAccessKeyID"), "accessKeySecret" => getenv("yourAccessKeySecret") ]);Doğru örnek:
$config = new Config([ "accessKeyId" => getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), "accessKeySecret" => getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET") ]);Notgetenv("ALIBABA_CLOUD_ACCESS_KEY_ID")
ve
getenv()işlevi,ALIBABA_CLOUD_ACCESS_KEY_IDveALIBABA_CLOUD_ACCESS_KEY_SECRETdeğerlerini ortam değişkenlerinden alır.ÖnemliAccessKey anahtarınızı üretim kodunuzda düz metin olarak sabit kodlamayın. Bu uygulama güvenlik riskleri oluşturur.
Sorun 2: Bir OpenAPI çağırdığınızda "cURL error 60: SSL certificate problem: unable to get local issuer certificate" veya "curl error 28 while downloading https://repo.packagist.org/packages.json: SSL connection timeout" hata iletisi alınıyor.
Nedenler
Ağ bağlantısı sorunları: Şirket içi ağ kararsızdır veya bir güvenlik duvarı SSL bağlantısını engelliyordur.
Proxy yapılandırma sorunları: Proxy doğru yapılandırılmamıştır; bu durum harici kaynaklara erişimi engeller.
SSL sertifikası sorunları: Yerel sistem bazı SSL sertifikalarına güvenmez ve bu durum bağlantı zaman aşımlarına neden olur.
Çözümler
Ağ bağlantınızı denetleyin. İnternete erişebildiğinizden ve ağ bağlantısının kararlı olduğundan emin olun.
-
Composer'ı proxy kullanacak şekilde yapılandırın:
composer config -g -- unset http-proxy composer config -g -- unset https-proxy composer config -g http-proxy http://your-proxy:port composer config -g https-proxy https://your-proxy:port -
Güvenilir bir CA sertifikası indirin:
Mozilla CA Sertifika Deposu gibi güvenilir bir CA sertifikası indirin.
PHP için SSL sertifika yolunu yapılandırın. php.ini dosyasında
curl.cainfoöğesini arayın, değerini CA sertifikasının mutlak yolu olarak ayarlayın ve ardından yapılandırma öğesinin başındaki yorum sembolünü (;) kaldırın.PHP hizmetini yeniden başlatın.
-
Kendinden imzalı bir sertifikaya güvenin (isteğe bağlı). Bağlantı sorunu kendinden imzalı bir sertifikadan kaynaklanıyorsa Composer'ın SSL doğrulamasını yok saymasına izin verebilirsiniz. Bu yöntem üretim ortamları için önerilmez.
composer config --global -- disable-sslÖnemliBu işlem SSL doğrulamasını geçici olarak devre dışı bırakır. Sistem güvenliğini sağlamak için daha sonra
composer config --global --enable-sslkomutunu çalıştırarak SSL doğrulamasını yeniden etkinleştirmeyi unutmayın.
Sorun 3: Çalışma zamanında "PHP Fatal error: Class 'Darabonba\OpenApi\Models\Config' not found" hatası alınıyor.
Bu hata, Composer otomatik yükleme özelliği etkinleştirilmediğinde oluşur. Çözüm:
Composer bağımlılıkları indirdiğinde, bir autoload.php dosyası içeren bir vendor dizini oluşturur. Uygulama kodunuza bir require_once deyimi ekleyebilirsiniz.
require_once(<path to the autoload.php file in the vendor directory>)
Sorun 4: Çalışma zamanında "PHP Fatal error: Uncaught exception 'GuzzleHttp\Exception\RequestException' with message 'cURL error 3'" hatası alınıyor.
Bu hata, yanlış bir RegionId veya Endpoint belirtildiğinde oluşur. Çözüm:
Seçtiğiniz bölgenin çağırdığınız hizmeti desteklediğinden emin olun. Ürünün uç noktasını OpenAPI Geliştirici Portalı ürün ana sayfasında bulabilirsiniz. Örneğin, Short Message Service için OpenAPI Portalı'nda oturum açın. Üst gezinme çubuğunda Short Message Service seçeneğini belirleyin. Short Message Service genel bakış sayfasında Service Area List sekmesine tıklayın. Her bölge için Region ID (örneğin cn-beijing, cn-hangzhou veya cn-shanghai) ve Service Endpoint (Çin anakarasındaki bölgeler için dysmsapi.aliyuncs.com ve Çin dışındaki bölgeler için dysmsapi.ap-southeast-1.aliyuncs.com) değerlerini görüntüleyin. Kodunuzdaki RegionId ve Endpoint değerlerinin bu listedeki değerlerle tutarlı olduğundan emin olun.
Sorun 5: Çalışma zamanında "Could not fetch [repository], please review your configured GitHub OAuth token" hatası alınıyor.
Bu hata, Composer'a sağlanan GitHub kimlik bilgileri yanlış olduğunda veya süresi dolduğunda oluşur. Çözüm:
Alibaba Cloud SDK paketleri GitHub kimlik bilgileri gerektirmez.
Composer'ı resmi olmayan bir kaynaktan yüklediniz ve özel depolara erişmek için GitHub kimlik bilgilerine ihtiyacınız yoksa Composer dizinindeki
auth.jsondosyasını silebilirsiniz.Özel depolara erişmek için GitHub kimlik bilgilerine ihtiyacınız varsa Composer'ın istemi doğrultusunda belirteci yenileyebilirsiniz.
Sorun 6: Bir API çağrısı zaman aşımına uğruyor ve "cURL error 28: Resolving timed out after 5000 milliseconds (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://dysmsapi.aliyuncs.com" hatası raporlanıyor.
Zaman aşımları birden çok faktörden kaynaklanabilir. Aşağıdaki bölümlerde yaygın nedenler ve bunların çözümleri açıklanmaktadır:
Ağ bağlantısı sorunları
Açıklama: İstemci ile sunucu arasındaki ağ bağlantısı kesik veya kararsız olduğu için istek hedef sunucuya ulaşamıyor.
Çözüm:
Yerel ana bilgisayarınız ile cloud ürün uç noktası arasındaki bağlantıyı test etmek için ping veya curl komutunu kullanın. Örneğin, SendSms işlemine yapılan bir çağrı zaman aşımına uğrarsa bağlantıyı test etmek için ping dysmsapi.aliyuncs.com veya curl -v https://dysmsapi.aliyuncs.com komutlarını kullanabilirsiniz.
Komut zaman aşımına uğrar veya yanıt döndürmezse yerel güvenlik duvarınızda veya yönlendiricinizde bir engelleme ilkesi olup olmadığını denetleyin.
Komut yanıt döndürürse yanlış yapılandırmadan kaynaklanan istek hatalarını önlemek için makul bir zaman aşımı süresi ayarlayabilirsiniz. Daha fazla bilgi için bkz. Zaman aşımı yapılandırması. Aşağıdaki kod bir örnek sağlar:
// Set the timeout in runtime parameters. This is valid only for requests that use this runtime parameter instance.
$runtimeOptions = new RuntimeOptions();
$runtimeOptions->connectTimeout = $connectionTimeoutMillis;
Uzun API işleme süresi
Açıklama: Hedef API'nin isteği işleme süresi, yapılandırılan okuma zaman aşımı süresini aşıyor.
Çözüm: Daha uzun bir API yanıt süresine uyum sağlamak için okuma zaman aşımı süresini yapılandırabilirsiniz. Daha fazla bilgi için bkz. Zaman aşımı yapılandırması. Örneğin, geçerli istek için okuma zaman aşımı süresini uzatmak amacıyla okuma zaman aşımı parametresini yapılandırabilirsiniz. Aşağıdaki kod bir örnek sağlar:
// Set the timeout in runtime parameters. This is valid only for requests that use this runtime parameter instance.
$runtimeOptions = new RuntimeOptions();
$runtimeOptions->readTimeout = $readTimeoutMillis;
Sorun 7: Çalışma zamanında "alibabacloud/tea[3.0.0,3.2.01 require ext-curl*-> it is missing from your system. Install or enable PHP's curl extension,100e ..." hatası alınıyor.
Bu hata, PHP için curl uzantısı eksik olduğunda oluşur. Çözüm:
Ubuntu/Debian sistemleri için:
sudo apt-get install php-curl
CentOS/Fedora/RHEL sistemleri için:
sudo yum install php-curl
Sorun 9: composer require komutunu çalıştırdığınızda "[Composer\Downloader\TransportException], The file could not be downloaded (HTTP/1.1 404 Not Found)" veya "your requirements could not be resolved to an installable set of packages" hata iletisi alınıyor.**
[root@hecs-x-large-2-win-20210204102325 rcw.zhiyuechuanbo.com]# composer require alibabacloud/ocr-api-20210707 3.1.2
Warning: This development build of composer is over 60 days old. It is recommended to update it by running "/usr/bin/composer self-update" to get the latest version.
Do not run Composer as root/super user! See https://getcomposer.org/root for details
Warning from https://mirrors.aliyun.com/composer: Support for Composer 1 will be shutdown on August 1st 2025. You should upgrade to Composer 2. See https://blog.packagist.com/shutting-down-packagist-org-support-for-composer-1-x/
[Composer\Downloader\TransportException]
The "https://mirrors.aliyun.com/composer/p/provider-2013%24a2b47ec1a1bb999e53d88aff50728aebbd3d68225c74aab1ff5f071bac42f5b7.json" file could not be downloaded (HTTP/1.1 404 Not Found)
Olası nedenler
Kullandığınız trafik yansıma kaynağı (Alibaba Cloud yansısı gibi) en son paket bilgilerini zamanında eşitlememiş olabilir. Bu durum bazı dosyaların eksik olmasına neden olur.
Trafik yansıma kaynağının URL'si değişmiş veya yol hatalı olabilir.
Çözümler
-
Doğru trafik yansıma kaynağını kullandığınızdan emin olun.
-
Şu anda yapılandırılmış Composer trafik yansıma kaynağını görüntülemek için aşağıdaki komutu çalıştırın:
composer config -g --list -
Alibaba Cloud
Composertam yansısı:https://mirrors.aliyun.com/composer/composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ -
Tsinghua
Composertam yansısı:https://mirrors.tuna.tsinghua.edu.cn/composer/composer config -g repo.packagist composer https://mirrors.tuna.tsinghua.edu.cn/composer/
-
-
Trafik yansıma kaynağını geçici olarak devre dışı bırakıp doğrudan resmi merkezi depoyu kullanabilirsiniz. Bunu yapmak için
composer.jsondosyasındakirepositoriesyapılandırmasını değiştirin veya silin ya dacomposer config --unset repos.urlkomutunu çalıştırın.# Use the official Composer repository. composer config -g repo.packagist composer https://packagist.org Ağ bağlantınızı denetleyin. Kararsız bir ağ, dosyaların doğru indirilmesini engelleyebilir. Farklı bir ağ ortamına geçmeyi veya VPN kullanmayı deneyebilirsiniz.
-
Komutu çalıştırdığınızda Composer sürümünün çok eski olduğunu belirten bir ileti görüntüleniyorsa (`
Warning: This development build of composer is over 60 days old. It is recommended to update it by running "/usr/bin/composer self-update" to get the latest version.`) en son sürüme güncelleyebilirsiniz (isteğe bağlı).# Update Composer to the latest version. composer self-update # Use composer.phar to run the latest version. composer self-update --1 -
Komutu çalıştırdığınızda bir
Composeruyarısı görüntüleniyorsaComposer 1desteğinin sonlandırılacağı anlamına gelir. Daha iyi uyumluluk ve güvenlik için sürüm 2.x'e yükseltebilirsiniz (isteğe bağlı).composer self-update --2ÖnemliProjenizin bağımlı olduğu paketlerin Composer 2.x'i destekleyip desteklemediğini denetleyin. Proje kodunu ve yapılandırmasını güncellemeniz gerekebilir.
-
İndirme sırasında bir
Content-Lengthhatası oluşursa bunun nedeni genellikle veri indirmesinin kesintiye uğraması ve alınan gerçek verilerin beklenen değerle eşleşmemesidir.-
Composer önbelleğini temizleyip yükleme komutunu yeniden çalıştırabilirsiniz.
# Delete the .composer directory Remove-Item -Recurse -Force $HOME\.composer # Delete all content in the C:\tmp directory Remove-Item -Recurse -Force C:\tmp\*rm -rf ~/.composer/ && rm -rf /tmp/* Ağ dalgalanmaları indirme kesintilerine neden olabilir. Yükleme komutunu birkaç kez çalıştırabilirsiniz.
Ağ kararlılığınızı denetleyin. Ağ bağlantısının kararlı olduğundan emin olun ve yoğun saatlerde indirme yapmaktan kaçının.
-
Sorun 10: Composer'ı çalıştırdığınızda "Could not delete D:\www\touming_keyword_api\vendor\composer\tmp-7fd77eb46d69640d6040743642007957:This can be due to an antivirus or the Windows Search Indexer locking the file while they are analyzed" hatası alınıyor.
Olası nedenler
Composer bağımlılıkları yüklemeye çalıştığında geçici dosyaları silemiyor. Bunun nedeni antivirüs yazılımının veya Windows Arama Dizini Oluşturucusunun dosyayı kilitlemiş olması olabilir.
Çözümler
-
İzinleri denetleyin. Windows sisteminde Composer, yetersiz izinler nedeniyle gerekli dosyaları oluşturamıyor veya değiştiremiyor olabilir.
İzin sorunlarını önlemek için tüm Composer komutlarını yönetici modunda çalıştırdığınızdan emin olun.
Composer'ın ihtiyaç duyduğu dosya ve dizinlerin okuma ve yazma izinlerine sahip olduğunu onaylayın.
-
Paket sürümünün kullanılabilirliğini denetleyebilir, önbelleği temizleyebilir ve yeniden yükleyebilirsiniz.
-
Gerekli paketin mevcut sürümlerini denetleyin. Örneğin:
composer show alibabacloud/ecs-20140526 --all -
Composer önbelleğini temizleyin ve yeniden yükleyin:
composer clear-cache
-
-
Windows Arama hizmetinin çalışıp çalışmadığını denetleyin. Bu hizmet dosyaları indeksleyerek kilitlenmelerine neden olabilir. Bu hizmeti durdurmak için aşağıdaki adımları uygulayın:
Çalıştır iletişim kutusunu açmak için
Win + Rtuşlarına basın.services.mscyazın veEntertuşuna basın."Windows Search" hizmetini bulun, sağ tıklayın ve "Stop" seçeneğini belirleyin.
Hizmeti durdurduktan sonra Composer bağımlılıklarını yeniden yüklemeyi deneyin.
-
Dosyanın kilidini açın veya yükleme için yeni bir dizin oluşturun.
-
Komut satırını yönetici olarak çalıştırarak dosyanın kilidini açabilirsiniz:
CMD veya PowerShell'e sağ tıklayın ve "Run as administrator" seçeneğini belirleyin.
-
Kilitli dizini silmek için aşağıdaki komutu çalıştırın:
rmdir /S /Q "D:\www\touming_keyword_api\vendor\composer\tmp-7fd77eb46d69640d6040743642007957" Antivirüs yazılımı veya Windows Arama Dizini Oluşturucusu gibi hiçbir programın dosyayı kilitlemediğinden emin olun. Antivirüs yazılımını geçici olarak devre dışı bırakıp Composer komutunu yeniden çalıştırmayı deneyebilirsiniz.
-
Yükleme için yeni bir dizin oluşturun. Yeni bir dizin oluşturup Composer işlemlerini burada gerçekleştirebilirsiniz:
mkdir D:\new_directory cd D:\new_directory composer require alibabacloud/ecs-20140526 6.0.1
-
-
Yükleme sırasında 404 hatası oluşursa trafik yansıma kaynağını değiştirip yeniden yüklemeyi deneyebilirsiniz.
composer config -g repo.packagist composer https://packagist.org
D:\Appserv\PHPTutorial\WWW\changheyuedu>composer require alibabacloud/dysmsapi-20170525 2.0.8
./composer.json has been updated
Running composer update alibabacloud/dysmsapi-20170525
Loading composer repositories with package information
https://mirrors.aliyun.com/composer could not be fully loaded (curl error 61 while downloading https://mirrors.aliyun.com/composer/p2/alibabacloud/dysmsapi-20170525.json: Error while processing content unencoding: Unknown failure within decompression software.), package information was loaded from the local cache and may be out of date
Installation failed, reverting ./composer.json and ./composer.lock to their original content.
[Composer\Downloader\TransportException]
curl error 61 while downloading https://mirrors.aliyun.com/composer/p2/alibabacloud/dysmsapi-20170525.json: Error w
hile processing content unencoding: Unknown failure within decompression software.
Sorun 11: composer require alibabacloud/dysmsapi-20170525 komutunu çalıştırdığınızda "cURL error 61" hatası alınıyor.
Olası nedenler
Composer önbelleği sorunu: Yerel önbellek bozuk veya eksik.
Trafik yansıma kaynağı sorunu: Trafik yansıma kaynağı kararsız veya kullanılamıyor.
Ağ sorunu: Ağ bağlantısı kararsız veya bir güvenlik duvarı tarafından engelleniyor.
Composer sürümü sorunu: Eski bir Composer sürümü kullanılıyor.
Ortam yapılandırma sorunu: Ortam değişkenleri veya Composer yapılandırma dosyası anormal.
Çözümler
-
Ağ bağlantınızı denetleyin.
-
Ağın normal olup olmadığını test etmek için aşağıdaki komutu çalıştırın:
curl -I https://mirrors.aliyun.com/composer/p2/alibabacloud/dysmsapi-20170525.json Güvenlik duvarı ayarlarını denetleyin ve güvenlik duvarının
curlkomutunun harici kaynaklara erişimini engellemediğinden emin olun.Farklı bir ağ kullanmayı deneyin. Örneğin, kurumsal ağdan kişisel ağa geçerek ağ ortamını değiştirebilirsiniz.
-
-
Composer yapılandırmasını denetleyebilir ve doğrudan resmi merkezi depoyu kullanabilirsiniz.
composer config -g --list composer config -g repo.packagist composer https://packagist.org -
Yüklenen Composer paketini silebilir, yeniden yükleyebilir ve Composer önbelleğini temizleyebilirsiniz.
-
Yerel önbellek dizinini silin:
rm -rf ~/.composer -
Composer önbelleğini temizleyin:
composer clear-cache
-
-
Hata devam ederse ayrıntılı Composer günlüklerini denetleyebilirsiniz:
composer install --verbose
Soru 12: Alibaba Cloud SDK paketini yüklemek içincomposer çalıştırdığınızda "Your requirements could not be resolved to an installable set of packages." hatası alınıyor.**
Bu hata çeşitli nedenlerden dolayı oluşabilir. Aşağıdaki örnekler hatayı çözmenize yardımcı olabilir.
Örnek 1
Hata iletisi:
Your requirements could not be resolved to an installable set of packages.
Problem 1
- Root composer.json requires alibabacloud/cloudauth-20190307 3.4.1, found alibabacloud/cloudauth-20190307[dev-master, 1.0.0, ..., 1.0.7, 2.0.0, ..., 2.9.1, 3.0.0, ..., 3.3.0] but it does not match the constraint.
Installation failed, reverting ./composer.json and ./composer.lock to their original content.
Olası nedenler:
Belirtilen sürüm numarası (örneğin
3.4.1) mevcut olmayabilir veya yayınlanmamış olabilir.Kullandığınız Composer trafik yansıma kaynağı paketin en son sürümüyle eşitlenmemiş olabilir.
Bir ağ sorunu paketin doğru şekilde çekilmesini engelliyor olabilir.
Çözümler:
-
Paketin tüm kullanılabilir sürümlerini görüntülemek için aşağıdaki komutu çalıştırın:
composer show alibabacloud/XXXXXX --allcomposer.jsondosyasındaki sürümü kullanılabilir bir sürümle değiştirebilir ve ardından yeniden yüklemek içincomposer updatekomutunu çalıştırabilirsiniz. -
Composertrafik yansıma kaynağını değiştirebilirsiniz.-
Resmi Packagist trafik yansıma kaynağına geçmek için aşağıdaki komutu çalıştırın:
composer config -g repo.packagist composer https://repo.packagist.org -
Çin anakarasında Alibaba Cloud tarafından sağlanan hızlandırılmış trafik yansıma kaynağına geçin:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
Geçiş yaptıktan sonra önbelleği temizleyip yeniden yükleyebilirsiniz:
composer clear-cache composer install -
-
Ağ bağlantınızın normal olup olmadığını denetleyin ve kararlı bir ağ ortamı kullanmayı deneyin. Yükleme yine de başarısız olursa paket dosyasını
.zipveya.tar.gzbiçiminde manuel olarak indirip yerel bir yol kullanarak yükleyebilirsiniz:composer require alibabacloud/XXXXXX@dev --prefer-source
Örnek 2
Hata iletisi:
composer could not delete the root package (root/mr.appteam/version) defaulting to ... see https://getcomposer.org/root-version
Running composer update alibabacloud/cloudauth-20190307
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.
Problem 1
- Root composer.json requires alibabacloud/cloudauth-20190307 3.9.2 -> satisfiable by alibabacloud/cloudauth-20190307[3.9.2].
- alibabacloud/cloudauth-20190307 3.9.2 requires alibabacloud/tea-oss-utils ^0.3.1 -> satisfiable by alibabacloud/tea-oss-utils[0.3.1].
- alibabacloud/tea-oss-utils[0.3.0, ..., 0.3.1] require guzzlehttp/psr7 ^1.0 -> found guzzlehttp/psr7[1.0.0, ..., 1.9.1] but the package is fixed
Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.
Installation failed, reverting ./composer.json and ./composer.lock to their original content.
[root@ebs-171291 mrrapp.com]#
Neden:
alibabacloud/cloudauth-20190307:3.9.2 paketini yüklediğinizde bunun bağımlılığı olan alibabacloud/tea-oss-utils:0.3.1, guzzlehttp/psr7 sürümünün [1.0.0,...,2.0.0) aralığında olmasını gerektirir. Ancak şu anda yüklü olan guzzlehttp/psr7 sürümü [1.0.0,..,1.9.1] aralığında sabitlenmiştir ve bu durum bir bağımlılık çakışmasına neden olur.
Çözümler:
-
Bağımlılık sürümünü zorla güncelleyebilirsiniz.
composer require alibabacloud/cloudauth-20190307 3.9.2 -W -
composer.jsondosyasınınrequirebölümüne guzzlehttp/psr7 için bir sürüm kısıtlaması ekleyebilirsiniz (örneğin "guzzlehttp/psr7": "^1.0"). Ardından bağımlılıkları güncellemek için aşağıdaki komutu çalıştırın.composer update -
composer.lockdosyasını silip yeniden yüklemek için aşağıdaki komutu çalıştırabilirsiniz.composer install --prefer-source
Sorun 12: Bir OpenAPI çağırdığınızda "cURL error 60: SSL certificate problem: unable to get local issuer certificate" hata iletisi alınıyor.
Nedenler:
CA sertifikası paketi indirilmemiş: Sistemde güvenilir bir CA sertifikası dosyası eksik; bu durum cURL'in SSL sertifikasını doğrulamasını engeller.
PHP'nin cURL yapılandırmasında bir CA sertifikası yolu belirtilmemiş:
php.inidosyasındacurl.cainfoveyaopenssl.cafileparametresi doğru yapılandırılmamış.PHP hizmeti yeniden başlatılmamış:
php.inidosyası değiştirildikten sonra PHP hizmeti yeniden başlatılmamış, bu nedenle yapılandırma etkili olmamış.
Çözümler:
-
Mozilla CA Sertifika Deposu gibi güvenilir bir CA sertifikası indirebilirsiniz. İndirilen
cacert.pemdosyasını sabit bir dizine kaydedin.ÖnemliDosya yolunda Çince karakterler veya özel karakterler bulunmadığından emin olun; aksi takdirde potansiyel sorunlar oluşabilir.
-
PHP için SSL sertifika yolunu yapılandırabilirsiniz.
PHP yapılandırma dosyası
php.inidosyasını açın. Dosya konumunuphp --inikomutunu çalıştırarak bulabilirsiniz.-
php.inidosyasındacurl.cainfoöğesini bulun, değerini CA sertifikasının mutlak yolu olarak ayarlayın ve yapılandırma öğesinin başındaki noktalı virgülü (;) kaldırın.# Example curl.cainfo = "D:\path\to\cacert.pem" openssl.cafile = "D:\path\to\cacert.pem"Düzenleme sonrası dosyayı kaydedin.
NotÖrnekteki
D:\path\to\cacert.pemyolunu indirdiğiniz CA sertifikasının gerçek mutlak yoluyla değiştirin.
PHP hizmetini yeniden başlatın.
Sorun 13: Composer kurulumu "the package is fixed to version 1.0.3 (lock file version) or ralouphie/mimey 2.1.0 requires php ^5.4|^7.0 your php version (8.2.27) does not satisfy that requirement." iletisiyle başarısız oluyor.
Nedenler
-
Sürüm çakışmaları:
Bazı bağımlılıkların sürümleri
composer.lockdosyası tarafından kilitlenmiştir.Composer, varsayılan olarak bu kilitli bağımlılık paketlerini otomatik olarak güncellemez.
Örneğin,
alibabacloud/cloudauth-20190307paketialibabacloud/openplatform-20191219paketinin2.0.1sürümünü gerektirir ancak mevcut kilitli sürüm1.0.3sürümüdür.
-
PHP sürümü uyumsuzluğu:
PHP 8.2 kullanıyorsunuz ancak bazı bağımlılık paketleri yalnızca PHP 5.4 ile 7.x sürümlerini destekliyor.
Örneğin,
ralouphie/mimey 2.1.0paketi yalnızca PHP^5.4|^7.0sürümlerini destekler ancak ortamınız PHP8.2.27sürümündedir.
Çözümler
-
İlgili tüm bağımlılıkları zorla yükseltebilirsiniz:
composer update --with-all-dependencies # Or the short form: composer update -WNotBu işlem,
composer.locktarafından kilitlenen eski sürümler dahil olmak üzere tüm ilgili bağımlılık paketlerini yinelemeli olarak günceller ve sürüm çakışmalarını çözmeye yardımcı olur. -
composer.lockvevendor/dizinlerini temizleyip yeniden yükleyebilirsiniz. Bu yöntem, ciddi bağımlılık karmaşası durumunda önerilir.rm composer.lock vendor/ composer clear-cache composer installÖnemliBu işlem yüklü tüm bağımlılıkları kaldırır.
Bir bağımlılık paketi PHP 8'i desteklemiyorsa uyumluluğu sağlamak için geçici olarak PHP'nin daha önceki bir sürümüne düşürebilirsiniz.
Sorun 14: Script @php think service:discover handling the post-autoload-dump event returned with error code 255.
Nedenler
composer installveyaupdatekomutunu çalıştırdıktan sonra Composer, ThinkPHP'nin otomatik hizmet keşfi komutu olanphp think service:discoverkomutunu yürütmeyi başaramaz. Bu durum tüm yükleme işlemini kesintiye uğratır.Bellek taşması veya diğer hatalar.
Çözümler
-
Hizmet keşfi betiğini geçici olarak devre dışı bırakabilirsiniz. Bunu yapmak için projenin kök dizinindeki
composer.jsondosyasını değiştirin:{ "scripts": { "post-autoload-dump": "@php think service:discover" } }Şu şekilde değiştirin:
{ "scripts": { "post-autoload-dump": "@echo Skipping 'php think service:discover'" } }composer dump-autoloadkomutunu yeniden çalıştırın. -
PHP bellek sınırını artırabilirsiniz. Bunu yapmak için
php.inidosyasındaki aşağıdaki yapılandırmayı değiştirin:memory_limit = 512M
Sorun 15: Undefined property: Darabonba\OpenApi\Models\Config::$tlsMinVersion
Neden: alibabacloud/darabonba-openapi sürümü 0.2.14'ten önce.
Çözüm: alibabacloud/darabonba-openapi paketini 0.2.14 veya sonraki bir sürüme güncellemek için aşağıdaki komutu çalıştırın.
composer require alibabacloud/darabonba-openapi >=0.2.14
Teknik destek
Önceki sorunlara yönelik çözümler, Alibaba Cloud SDK'yı daha kolay kullanmanıza yardımcı olmak amacıyla hazırlanmıştır. Diğer sorunlarla karşılaşırsanız bizimle aşağıdaki yollardan biriyle iletişime geçebilirsiniz:
Destek talebi oluşturun: Alibaba Cloud Destek Talebi Oluşturma sayfası.
İlgili ihtiyaçlarınız veya geri bildirimleriniz varsa DingTalk grubuna katılarak Alibaba Cloud teknik desteği ile iletişime geçebilirsiniz. Grup numarası 60965016010'dur.