Function Compute mendukung PHP sebagai runtime terkelola. Halaman ini mencakup versi PHP yang didukung, paket dan ekstensi bawaan, serta cara menginstal ekstensi kustom.
Runtime PHP
| Versi | Sistem operasi | Arsitektur |
|---|---|---|
| PHP 7.2 | Linux | x86_64 |
Paket bawaan
Paket-paket berikut telah dipra-instal dan tersedia tanpa perlu pengaturan tambahan.
| Paket | Versi | Deskripsi |
|---|---|---|
| oss | v2.4.3 | Object Storage Service (OSS) SDK untuk PHP |
| tablestore | v4.1.1 | Tablestore SDK untuk PHP |
| mns | v1.3.5.5 | Simple Message Queue (formerly MNS) SDK untuk PHP |
| fc | v1.2.1 | Function Compute SDK untuk PHP |
Ekstensi bawaan
Ekstensi-ekstensi berikut diaktifkan secara default pada runtime PHP 7.2.
Untuk menampilkan semua ekstensi yang terinstal saat runtime, sertakan print_r(get_loaded_extensions()); dalam kode fungsi Anda.bcmath, bz2, calendar, Core, ctype, curl, date, dom, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, imagick, json, libxml, mbstring, memcached, mysqli, mysqlnd, openSSL, pcntl, pcre, PDO, pdo_mysql, Phar, posix, protobuf, readline, redis, Reflection, session, shmop, SimpleXML, soap, sockets, SPL, standard, sysvmsg, sysvsem, sysvshm, tokenizer, Xdebug, xml, xmlreader, xmlrpc, xmlwriter, Zend OPcache, zip, zlib
Contoh: mengurai string JSON
Contoh berikut menggunakan ekstensi bawaan json untuk mengurai string JSON dan mencetak hasilnya ke stdout.
<?php
function handler($event, $context) {
var_dump(json_decode('{"a":123, "b":true, "c":"abcd", "d":{"a":123}}', true));
return "bye";
}Menginstal ekstensi non-bawaan
Jika ekstensi yang Anda butuhkan tidak ada dalam daftar bawaan, instal menggunakan image Docker runtime PHP dan deploy bersama dengan kode fungsi Anda. Langkah-langkah berikut menggunakan MongoDB sebagai contoh.
Prasyarat
Sebelum memulai, pastikan Anda telah:
Menginstal Docker di mesin Anda. Untuk informasi lebih lanjut, lihat bagian "Install Docker" pada Install Serverless Devs and Docker.
Fungsi dengan waktu proses PHP telah dibuat. Untuk informasi selengkapnya, lihat bagian "Buat fungsi" dalam Mengelola fungsi.
Menginstal dan mendeploy ekstensi
Di direktori proyek Anda, jalankan kontainer runtime PHP dan pasang direktori saat ini ke
/code:Pada Windows, ganti
$(pwd)dengan jalur mutlak.sudo docker run -v $(pwd):/code -it --entrypoint="" registry.cn-beijing.aliyuncs.com/aliyunfc/runtime-php7.2:latest bashDi dalam kontainer, instal ekstensi MongoDB:
pecl install mongodbCari file
.soyang telah dikompilasi:mongodb.soSalin file ekstensi ke direktori
/code(yang dipetakan ke direktori proyek Anda):cp /usr/local/lib/php/extensions/no-debug-non-zts-20170718/mongodb.so /codeKeluar dari kontainer:
exitVerifikasi bahwa
mongodb.soada di direktori proyek Anda:lsOutput yang diharapkan:
mongodb.soMasuk ke Konsol Function Compute. Di panel navigasi sebelah kiri, klik Services & Functions.
Di bilah navigasi atas, pilih wilayah. Pada halaman Services, klik layanan target.
Klik fungsi target. Pada tab Code, buat folder bernama
extensiondi direktori yang sama dengan file handler Anda.Unggah
mongodb.soke folderextension, lalu buat file bernamamongodb.inidi folder yang sama.Tambahkan konten berikut ke
mongodb.inidan simpan file tersebut:extension=/code/extension/mongodb.so
Ekstensi kustom lainnya
Unduh paket ekstensi pra-build berikut sesuai kebutuhan Anda: