Dokumen ini menjawab pertanyaan umum mengenai penggunaan PHP SDK untuk membantu Anda mengembangkan aplikasi secara lebih efisien.
Pemeriksaan lingkungan
-
Pastikan lingkungan PHP telah terinstal dengan benar dan versi PHP adalah 5.6 atau lebih baru.
-
Instal Composer secara global di sistem Anda.
Versi PHP yang digunakan untuk menginstal SDK dengan Composer harus sama atau lebih lama daripada versi PHP saat runtime. Misalnya, jika Anda menginstal SDK di lingkungan PHP 7.2, direktori vendor yang dihasilkan hanya dapat digunakan dengan PHP 7.2 atau lebih baru. Jika Anda menyalinnya ke lingkungan PHP 5.6, akan terjadi masalah ketidakcocokan versi dependensi.
Permasalahan
Masalah 1: Masalah dalam meneruskan parameter AccessKey
Gejala: Muncul kesalahan saat kode dijalankan. Jika pesan kesalahan berisi informasi berikut, hal ini menunjukkan bahwa kredensial Alibaba Cloud (AccessKey) belum dikonfigurasi dengan benar.
-
SDK V2.0: AlibabaCloud\Tea\Exception\TeaUnableRetryError: code: 400, AccessKeyId is mandatory for this action.
-
SDK V1.0: Fatal error: Uncaught AlibabaCloud\Client\Exception\ClientException: AccessKey ID cannot be empty in XXX.
Solusi:
-
Jalankan perintah berikut untuk memeriksa apakah variabel lingkungan `ALIBABA_CLOUD_ACCESS_KEY_ID` dan `ALIBABA_CLOUD_ACCESS_KEY_SECRET` telah dikonfigurasi:
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%Jika AccessKey yang benar dikembalikan, konfigurasi berhasil. Jika nilai yang dikembalikan kosong atau salah, Anda dapat mencoba mengatur ulang variabel lingkungan tersebut. Untuk informasi selengkapnya, lihat Konfigurasi variabel lingkungan pada sistem Linux, macOS, dan Windows.
-
Periksa kode Anda untuk kesalahan terkait AccessKey.
Contoh kesalahan umum:
$config = new Config([ "accessKeyId" => getenv("yourAccessKeyID"), "accessKeySecret" => getenv("yourAccessKeySecret") ]);Contoh yang benar:
$config = new Config([ "accessKeyId" => getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), "accessKeySecret" => getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET") ]);Catatangetenv("ALIBABA_CLOUD_ACCESS_KEY_ID")
dan `getenv()` mengambil nilai `ALIBABA_CLOUD_ACCESS_KEY_ID` dan `ALIBABA_CLOUD_ACCESS_KEY_SECRET` dari variabel lingkungan.
PentingJangan menyematkan AccessKey Anda secara langsung dalam teks biasa di kode produksi. Praktik ini menimbulkan risiko keamanan.
Masalah 2: Muncul pesan kesalahan "cURL error 60: SSL certificate problem: unable to get local issuer certificate" atau "curl error 28 while downloading https://repo.packagist.org/packages.json: SSL connection timeout" saat memanggil OpenAPI.
Penyebab
-
Masalah konektivitas jaringan: Jaringan lokal tidak stabil, atau firewall memblokir koneksi SSL.
-
Masalah konfigurasi proxy: Proxy tidak dikonfigurasi dengan benar, sehingga mencegah akses ke sumber daya eksternal.
-
Masalah sertifikat SSL: Sistem lokal tidak mempercayai beberapa sertifikat SSL, yang menyebabkan timeout koneksi.
Solusi
-
Periksa konektivitas jaringan Anda. Pastikan Anda dapat mengakses Internet dan koneksi jaringan stabil.
-
Konfigurasikan Composer untuk menggunakan proxy:
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 -
Unduh sertifikat CA tepercaya:
-
Unduh sertifikat CA tepercaya, seperti Mozilla CA Certificate Store.
-
Konfigurasikan jalur sertifikat SSL untuk PHP. Di file php.ini, cari `curl.cainfo`, atur nilainya ke jalur mutlak sertifikat CA, lalu hapus simbol komentar (;) di awal item konfigurasi tersebut.
-
Mulai ulang layanan PHP.
-
-
Percayai sertifikat tanda tangan sendiri (opsional). Jika masalah koneksi disebabkan oleh sertifikat tanda tangan sendiri, Anda dapat mengizinkan Composer untuk mengabaikan validasi SSL. Hal ini tidak disarankan untuk lingkungan produksi.
composer config --global -- disable-sslPentingOperasi ini menonaktifkan validasi SSL secara sementara. Pastikan untuk menjalankan perintah
composer config --global --enable-sslnanti agar validasi SSL diaktifkan kembali dan keamanan sistem terjamin.
Masalah 3: Muncul kesalahan "PHP Fatal error: Class 'Darabonba\OpenApi\Models\Config' not found" saat runtime.
Kesalahan ini terjadi karena fitur autoload Composer tidak diaktifkan. Solusi:
Saat Composer mengunduh dependensi, direktori `vendor` yang dihasilkan berisi file `autoload.php`. Anda dapat menambahkan pernyataan require_once ke kode aplikasi Anda.
require_once(<jalur ke file autoload.php di direktori vendor>)
Masalah 4: Muncul kesalahan "PHP Fatal error: Uncaught exception 'GuzzleHttp\Exception\RequestException' with message 'cURL error 3'" saat runtime.
Kesalahan ini terjadi karena RegionId atau Endpoint salah. Solusi:
Pastikan wilayah yang Anda pilih mendukung layanan yang dipanggil. Anda dapat menemukan endpoint produk di halaman utama produk di OpenAPI Developer Portal. Sebagai contoh, untuk Short Message Service, login ke OpenAPI Portal. Di bilah navigasi atas, pilih Short Message Service. Di halaman ikhtisar Short Message Service, klik tab Daftar Wilayah Layanan. Lihat ID Wilayah (seperti cn-beijing, cn-hangzhou, atau cn-shanghai) dan Endpoint Layanan (yaitu dysmsapi.aliyuncs.com untuk wilayah di Tiongkok daratan dan dysmsapi.ap-southeast-1.aliyuncs.com untuk wilayah di luar Tiongkok) untuk setiap wilayah. Pastikan RegionId dan Endpoint dalam kode Anda sesuai dengan daftar ini.
Masalah 5: Muncul kesalahan "Could not fetch [repository], please review your configured GitHub OAuth token" saat runtime.
Kesalahan ini terjadi karena kredensial GitHub yang diberikan ke Composer salah atau telah kedaluwarsa. Solusi:
Paket SDK Alibaba Cloud tidak memerlukan kredensial GitHub.
-
Jika Anda menginstal Composer dari sumber tidak resmi dan tidak memerlukan kredensial GitHub untuk mengakses repositori privat, Anda dapat menghapus file `auth.json` di direktori Composer.
-
Jika Anda memerlukan kredensial GitHub untuk mengakses repositori privat, Anda dapat memperbarui token sesuai petunjuk Composer.
Masalah 6: Pemanggilan API mengalami timeout dan melaporkan kesalahan "cURL error 28: Resolving timed out after 5000 milliseconds (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://dysmsapi.aliyuncs.com".
Timeout dapat disebabkan oleh berbagai faktor. Bagian berikut menjelaskan penyebab umum dan solusinya:
Masalah konektivitas jaringan
Deskripsi: Permintaan tidak dapat mencapai server tujuan karena jaringan antara klien dan server terputus atau tidak stabil.
Solusi:
Gunakan perintah ping atau curl untuk menguji konektivitas antara host lokal Anda dan endpoint produk cloud. Misalnya, jika pemanggilan operasi SendSms mengalami timeout, Anda dapat menggunakan ping dysmsapi.aliyuncs.com atau curl -v https://dysmsapi.aliyuncs.com untuk menguji konektivitas.
-
Jika perintah mengalami timeout atau tidak mengembalikan respons, periksa apakah firewall atau router lokal Anda memiliki kebijakan pemblokiran.
-
Jika perintah mengembalikan respons, Anda dapat mengatur periode timeout yang wajar untuk mencegah kegagalan permintaan akibat konfigurasi yang tidak tepat. Untuk informasi selengkapnya, lihat Konfigurasi timeout. Contoh kode berikut:
// Atur timeout dalam parameter runtime. Ini hanya berlaku untuk permintaan yang menggunakan instance parameter runtime ini.
$runtimeOptions = new RuntimeOptions();
$runtimeOptions->connectTimeout = $connectionTimeoutMillis;
Waktu pemrosesan API yang lama
Deskripsi: Waktu yang dibutuhkan API tujuan untuk memproses permintaan melebihi periode timeout baca yang dikonfigurasi.
Solusi: Anda dapat mengonfigurasi periode timeout baca agar sesuai dengan waktu respons API yang lebih lama. Untuk informasi selengkapnya, lihat Konfigurasi timeout. Misalnya, Anda dapat mengonfigurasi parameter timeout baca untuk memperpanjang periode timeout baca untuk permintaan saat ini. Contoh kode berikut:
// Atur timeout dalam parameter runtime. Ini hanya berlaku untuk permintaan yang menggunakan instance parameter runtime ini.
$runtimeOptions = new RuntimeOptions();
$runtimeOptions->readTimeout = $readTimeoutMillis;
Masalah 7: Muncul kesalahan "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 ..." saat runtime.
Kesalahan ini terjadi karena ekstensi curl untuk PHP tidak tersedia. Solusi:
Untuk sistem Ubuntu/Debian:
sudo apt-get install php-curl
Untuk sistem CentOS/Fedora/RHEL:
sudo yum install php-curl
Masalah 9: Saat menjalankan perintah composer require, muncul pesan kesalahan "[Composer\Downloader\TransportException], The file could not be downloaded (HTTP/1.1 404 Not Found)" atau "your requirements could not be resolved to an installable set of packages".
[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)
Kemungkinan penyebab
-
Sumber cermin lalu lintas yang Anda gunakan, seperti cermin Alibaba Cloud, mungkin belum menyinkronkan informasi paket terbaru secara tepat waktu. Hal ini menyebabkan beberapa file hilang.
-
URL sumber cermin lalu lintas mungkin telah berubah, atau jalurnya salah.
Solusi
-
Periksa dan pastikan Anda menggunakan sumber cermin lalu lintas yang benar.
-
Jalankan perintah berikut untuk melihat sumber cermin lalu lintas Composer yang saat ini dikonfigurasi:
composer config -g --list -
Cermin penuh
ComposerAlibaba Cloud:https://mirrors.aliyun.com/composer/composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ -
Cermin penuh
ComposerTsinghua:https://mirrors.tuna.tsinghua.edu.cn/composer/composer config -g repo.packagist composer https://mirrors.tuna.tsinghua.edu.cn/composer/
-
-
Anda dapat menonaktifkan sementara sumber cermin lalu lintas dan langsung menggunakan repositori pusat resmi. Untuk melakukannya, modifikasi atau hapus konfigurasi
repositoriesdicomposer.json, atau jalankan perintahcomposer config --unset repos.url.# Gunakan repositori Composer resmi. composer config -g repo.packagist composer https://packagist.org -
Periksa konektivitas jaringan Anda. Jaringan yang tidak stabil dapat mencegah file diunduh dengan benar. Anda dapat mencoba beralih ke lingkungan jaringan berbeda atau menggunakan VPN.
-
Jika muncul pesan saat menjalankan perintah yang menunjukkan bahwa versi Composer terlalu lama (`
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.`), Anda dapat memperbarui ke versi terbaru (opsional).# Perbarui Composer ke versi terbaru. composer self-update # Gunakan composer.phar untuk menjalankan versi terbaru. composer self-update --1 -
Jika muncul peringatan
Composersaat menjalankan perintah, hal ini menunjukkan bahwa dukungan untukComposer 1akan dihentikan. Untuk kompatibilitas dan keamanan yang lebih baik, Anda dapat meningkatkan ke versi 2.x (opsional).composer self-update --2PentingPeriksa apakah paket yang digunakan proyek Anda mendukung Composer 2.x. Anda mungkin perlu memperbarui kode dan konfigurasi proyek.
-
Jika terjadi kesalahan
Content-Lengthselama pengunduhan, biasanya karena pengunduhan data terganggu, dan data aktual yang diterima tidak sesuai dengan nilai yang diharapkan.-
Anda dapat menghapus cache Composer dan menjalankan kembali perintah instalasi.
# Hapus direktori .composer Remove-Item -Recurse -Force $HOME\.composer # Hapus semua konten di direktori C:\tmp Remove-Item -Recurse -Force C:\tmp\*rm -rf ~/.composer/ && rm -rf /tmp/* -
Fluktuasi jaringan dapat menyebabkan gangguan pengunduhan. Anda dapat menjalankan perintah instalasi beberapa kali.
-
Periksa stabilitas jaringan Anda. Pastikan koneksi jaringan stabil dan hindari pengunduhan selama jam sibuk.
-
Masalah 10: Muncul kesalahan "Could not delete D:\www\touming_keyword_api\vendor\composer\tmp-7fd77eb46d69640d6040743642007957:Hal ini dapat disebabkan oleh perangkat lunak antivirus atau Windows Search Indexer yang mengunci file saat dianalisis" saat menjalankan Composer.
Kemungkinan penyebab
Saat Composer mencoba menginstal dependensi, file sementara tidak dapat dihapus. Hal ini mungkin karena perangkat lunak antivirus atau Windows Search Indexer telah mengunci file tersebut.
Solusi
-
Periksa izin. Pada sistem Windows, Composer mungkin gagal membuat atau memodifikasi file yang diperlukan karena izin yang tidak mencukupi.
-
Pastikan semua perintah Composer dijalankan dalam mode administrator untuk menghindari masalah izin.
-
Konfirmasi bahwa file dan direktori yang diperlukan oleh Composer memiliki izin baca dan tulis.
-
-
Anda dapat memeriksa ketersediaan versi paket, menghapus cache, dan menginstal ulang.
-
Periksa versi yang tersedia dari paket yang diperlukan. Contohnya:
composer show alibabacloud/ecs-20140526 --all -
Hapus cache Composer dan instal ulang:
composer clear-cache
-
-
Periksa apakah layanan Windows Search sedang berjalan. Layanan ini mungkin mengindeks file, sehingga mengunci file tersebut. Untuk menghentikan layanan ini, lakukan langkah-langkah berikut:
-
Tekan
Win + Runtuk membuka kotak dialog Run. -
Masukkan
services.mscdan tekanEnter. -
Temukan layanan "Windows Search", klik kanan, lalu pilih "Stop".
-
Setelah layanan dihentikan, coba instal dependensi Composer lagi.
-
-
Buka kunci file atau buat direktori baru untuk instalasi.
-
Anda dapat membuka kunci file dengan menjalankan command line sebagai administrator:
-
Klik kanan CMD atau PowerShell dan pilih "Run as administrator".
-
Jalankan perintah berikut untuk menghapus direktori yang terkunci:
rmdir /S /Q "D:\www\touming_keyword_api\vendor\composer\tmp-7fd77eb46d69640d6040743642007957" -
Pastikan tidak ada program, seperti perangkat lunak antivirus atau Windows Search Indexer, yang mengunci file tersebut. Anda dapat mencoba menonaktifkan sementara perangkat lunak antivirus dan menjalankan kembali perintah Composer.
-
-
Buat direktori baru untuk instalasi. Anda dapat membuat direktori baru dan melakukan operasi Composer di dalamnya:
mkdir D:\new_directory cd D:\new_directory composer require alibabacloud/ecs-20140526 6.0.1
-
-
Jika terjadi kesalahan 404 selama instalasi, Anda dapat mengubah sumber cermin lalu lintas dan mencoba menginstal ulang.
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.
Masalah 11: Muncul "cURL error 61" saat menjalankan composer require alibabacloud/dysmsapi-20170525.
Kemungkinan penyebab
-
Masalah cache Composer: Cache lokal rusak atau tidak lengkap.
-
Masalah sumber cermin lalu lintas: Sumber cermin lalu lintas tidak stabil atau tidak tersedia.
-
Masalah jaringan: Koneksi jaringan tidak stabil atau diblokir oleh firewall.
-
Masalah versi Composer: Menggunakan versi Composer yang sudah usang.
-
Masalah konfigurasi lingkungan: Variabel lingkungan atau file konfigurasi Composer tidak normal.
Solusi
-
Periksa konektivitas jaringan Anda.
-
Jalankan perintah berikut untuk menguji apakah jaringan normal:
curl -I https://mirrors.aliyun.com/composer/p2/alibabacloud/dysmsapi-20170525.json -
Periksa pengaturan firewall untuk memastikan firewall tidak memblokir
curldari mengakses sumber daya eksternal. -
Coba gunakan jaringan berbeda. Anda dapat mengganti lingkungan jaringan, misalnya dari jaringan kantor ke jaringan pribadi.
-
-
Anda dapat memeriksa konfigurasi Composer dan langsung menggunakan repositori pusat resmi.
composer config -g --list composer config -g repo.packagist composer https://packagist.org -
Anda dapat menghapus paket Composer yang telah diinstal, menginstal ulang, dan menghapus cache Composer.
-
Hapus direktori cache lokal:
rm -rf ~/.composer -
Hapus cache Composer:
composer clear-cache
-
-
Jika kesalahan tetap berlanjut, Anda dapat memeriksa log Composer secara detail:
composer install --verbose
Pertanyaan 12: Saat menjalankancomposer untuk menginstal paket SDK Alibaba Cloud, muncul kesalahan berikut: "Your requirements could not be resolved to an installable set of packages.".
Kesalahan ini dapat terjadi karena berbagai alasan. Contoh berikut dapat membantu Anda mengatasi kesalahan tersebut.
Contoh 1
Pesan kesalahan:
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.
Kemungkinan penyebab:
-
Nomor versi yang ditentukan, seperti
3.4.1, mungkin tidak ada atau belum dirilis. -
Sumber cermin lalu lintas Composer yang Anda gunakan belum disinkronkan dengan versi terbaru paket tersebut.
-
Masalah jaringan mencegah paket ditarik dengan benar.
Solusi:
-
Jalankan perintah berikut untuk melihat semua versi paket yang tersedia:
composer show alibabacloud/XXXXXX --allAnda dapat mengubah versi di file
composer.jsonmenjadi versi yang tersedia, lalu jalankancomposer updateuntuk menginstal ulang. -
Anda dapat mengganti sumber cermin lalu lintas
Composer.-
Jalankan perintah berikut untuk beralih ke sumber cermin lalu lintas Packagist resmi:
composer config -g repo.packagist composer https://repo.packagist.org -
Beralih ke sumber cermin lalu lintas akselerasi yang disediakan Alibaba Cloud di Tiongkok daratan:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
Setelah beralih, Anda dapat menghapus cache dan menginstal ulang:
composer clear-cache composer install -
-
Periksa apakah koneksi jaringan Anda normal dan coba gunakan lingkungan jaringan yang stabil. Jika instalasi tetap gagal, Anda dapat mencoba mengunduh manual file paket dalam format
.zipatau.tar.gzdan menginstalnya menggunakan jalur lokal:composer require alibabacloud/XXXXXX@dev --prefer-source
Contoh 2
Pesan kesalahan:
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]#
Penyebab:
Saat menginstal alibabacloud/cloudauth-20190307:3.9.2, dependensinya alibabacloud/tea-oss-utils:0.3.1 memerlukan guzzlehttp/psr7 versi `[1.0.0,...,2.0.0)`. Namun, versi guzzlehttp/psr7 yang saat ini terinstal difiksasi pada `[1.0.0,..,1.9.1]`, yang menyebabkan konflik dependensi.
Solusi:
-
Anda dapat memaksa pembaruan versi dependensi.
composer require alibabacloud/cloudauth-20190307 3.9.2 -W -
Di bagian `require` file
composer.json, Anda dapat menambahkan batasan versi untuk guzzlehttp/psr7, seperti "guzzlehttp/psr7": "^1.0". Lalu, jalankan perintah berikut untuk memperbarui dependensi.composer update -
Anda dapat menghapus
composer.lockdan menjalankan perintah berikut untuk menginstal ulang.composer install --prefer-source
Masalah 12: Muncul pesan kesalahan "cURL error 60: SSL certificate problem: unable to get local issuer certificate" saat memanggil OpenAPI.
Penyebab:
-
Paket sertifikat CA belum diunduh: Sistem tidak memiliki file sertifikat CA tepercaya, sehingga cURL tidak dapat memverifikasi sertifikat SSL.
-
Konfigurasi cURL PHP tidak menentukan jalur sertifikat CA: Parameter
curl.cainfoatauopenssl.cafiletidak dikonfigurasi dengan benar di filephp.ini. -
Layanan PHP tidak dimulai ulang: Layanan PHP tidak dimulai ulang setelah file
php.inidimodifikasi, sehingga konfigurasi tidak berlaku.
Solusi:
-
Anda dapat mengunduh sertifikat CA tepercaya, seperti Mozilla CA Certificate Store. Simpan file
cacert.pemyang diunduh ke direktori tetap.PentingPastikan jalur file tidak mengandung karakter Tionghoa atau karakter khusus untuk menghindari potensi masalah.
-
Anda dapat mengonfigurasi jalur sertifikat SSL untuk PHP.
-
Buka file konfigurasi PHP
php.ini. Anda dapat menemukan lokasi file dengan menjalankan perintahphp --ini. -
Di file
php.ini, temukancurl.cainfo, atur nilainya ke jalur mutlak sertifikat CA, dan hapus tanda titik koma (;) di awal item konfigurasi tersebut.# Contoh curl.cainfo = "D:\path\to\cacert.pem" openssl.cafile = "D:\path\to\cacert.pem"Simpan file setelah diedit.
CatatanGanti jalur
D:\path\to\cacert.pemdalam contoh dengan jalur mutlak aktual sertifikat CA yang Anda unduh.
-
-
Mulai ulang layanan PHP.
Masalah 13: Instalasi Composer gagal dengan pesan "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."
Penyebab
-
Konflik versi:
-
Versi beberapa dependensi dikunci oleh file
composer.lock. -
Secara default, Composer tidak memperbarui otomatis paket dependensi yang dikunci ini.
-
Sebagai contoh,
alibabacloud/cloudauth-20190307memerlukan versi2.0.1darialibabacloud/openplatform-20191219, tetapi versi yang saat ini dikunci adalah1.0.3.
-
-
Ketidakcocokan versi PHP:
-
Anda menggunakan PHP 8.2, tetapi beberapa paket dependensi hanya mendukung PHP 5.4 hingga 7.x.
-
Sebagai contoh,
ralouphie/mimey 2.1.0hanya mendukung PHP^5.4|^7.0, tetapi lingkungan Anda menggunakan PHP8.2.27.
-
Solusi
-
Anda dapat memaksa peningkatan semua dependensi terkait:
composer update --with-all-dependencies # Atau bentuk singkatnya: composer update -WCatatanOperasi ini memperbarui secara rekursif semua paket dependensi terkait, termasuk versi lama yang dikunci oleh `composer.lock`, untuk membantu menyelesaikan konflik versi.
-
Anda dapat menghapus
composer.lockdanvendor/lalu menginstal ulang. Ini direkomendasikan untuk kebingungan dependensi yang parah.rm composer.lock vendor/ composer clear-cache composer installPentingOperasi ini menghapus semua dependensi yang telah diinstal.
-
Jika paket dependensi tidak mendukung PHP 8, Anda dapat menurunkan sementara ke versi PHP sebelumnya untuk memastikan kompatibilitas.
Masalah 14: Skrip @php think service:discover yang menangani event post-autoload-dump mengembalikan kode kesalahan 255.
Penyebab
-
Setelah menjalankan `composer install` atau `update`, Composer gagal menjalankan perintah penemuan layanan otomatis ThinkPHP,
php think service:discover. Hal ini mengganggu seluruh proses instalasi. -
Overflow memori atau kesalahan lainnya.
Solusi
-
Anda dapat menonaktifkan sementara skrip penemuan layanan. Untuk melakukannya, modifikasi file
composer.jsondi direktori root proyek:{ "scripts": { "post-autoload-dump": "@php think service:discover" } }Ubah menjadi:
{ "scripts": { "post-autoload-dump": "@echo Skipping 'php think service:discover'" } }Jalankan kembali
composer dump-autoload. -
Anda dapat menambah batas memori PHP. Untuk melakukannya, modifikasi konfigurasi berikut di file
php.ini:memory_limit = 512M
Masalah 15: Undefined property: Darabonba\OpenApi\Models\Config::$tlsMinVersion
Penyebab: Versi alibabacloud/darabonba-openapi lebih lama dari 0.2.14.
Solusi: Jalankan perintah berikut untuk memperbarui alibabacloud/darabonba-openapi ke versi 0.2.14 atau lebih baru.
composer require alibabacloud/darabonba-openapi >=0.2.14
Dukungan teknis
Solusi untuk permasalahan di atas bertujuan membantu Anda menggunakan SDK Alibaba Cloud dengan lebih mudah. Jika Anda mengalami masalah lain, Anda dapat menghubungi kami melalui salah satu cara berikut:
-
Kirim tiket: Halaman Pengajuan Tiket Alibaba Cloud.
-
Jika Anda memiliki kebutuhan atau masukan terkait, Anda dapat bergabung dengan grup DingTalk untuk menghubungi dukungan teknis Alibaba Cloud. Nomor grupnya adalah 60965016010.