Topik ini menjelaskan runtime PHP yang didukung oleh Function Compute untuk menulis kode fungsi Anda.
Runtime PHP
Tabel berikut mencantumkan runtime PHP yang didukung oleh Function Compute.
Versi | Sistem operasi | Arsitektur |
PHP 7.2 | Linux | x86_64 |
Paket PHP bawaan
Function Compute menyediakan paket bawaan berikut untuk runtime PHP.
Paket | Versi | Referensi |
oss | v2.4.3 | |
tablestore | v4.1.1 | |
mns | v1.3.5.5 | Alibaba Cloud Simple Message Queue (sebelumnya MNS) SDK for PHP |
fc | v1.2.1 |
Ekstensi PHP bawaan
Built-in extensions
Untuk melihat dan mencetak informasi tentang ekstensi PHP yang terpasang, 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 | Tidak ada | Tidak ada |
Built-in extension example
Contoh kode berikut menggunakan json untuk mengurai string JSON dan mengembalikan konten yang diurai ke stdout:
<?php
function handler($event, $context) {
var_dump(json_decode('{"a":123, "b":true, "c":"abcd", "d":{"a":123}}', true));
return "bye";
} Instal ekstensi PHP non-bawaan
Untuk menginstal ekstensi non-bawaan untuk runtime PHP, ikuti langkah-langkah berikut. Contoh berikut menginstal MongoDB.
Prerequisites
Docker telah diinstal. Untuk informasi lebih lanjut tentang prosedur, lihat Langkah 2: Konfigurasi Serverless Devs.
Fungsi yang berjalan dalam runtime PHP telah dibuat. Untuk informasi lebih lanjut tentang prosedur, lihat Buat Fungsi Acara.
Procedure
Jalankan perintah berikut di direktori proyek untuk memulai gambar runtime PHP dan mount direktori saat ini ke direktori /code wadah:
sudo docker run -v $(pwd):/code -it --entrypoint="" registry.cn-beijing.aliyuncs.com/aliyunfc/runtime-php7.2:latest bashCatatanJika komputer Anda menjalankan Windows, Anda dapat mengubah
$(pwd)menjadi direktori absolut tertentu.Instal ekstensi MongoDB dan salin mongodb.so ke direktori /code.
Jalankan perintah berikut untuk menginstal ekstensi MongoDB di dalam wadah:
pecl install mongodbJalankan perintah berikut untuk menemukan ekstensi ZIP:
find /usr -name "mongodb.so"Jalankan perintah berikut untuk menyalin file ekstensi ke direktori /code:
cp /usr/local/lib/php/extensions/no-debug-non-zts-20170718/mongodb.so /codeJalankan perintah berikut untuk keluar dari wadah:
exitJalankan perintah berikut untuk memeriksa apakah file mongodb.so ada. Jika file tersebut ada, itu disimpan di komputer Anda.
lsPotongan kode berikut menunjukkan keluaran yang diharapkan:
mongodb.so
Masuk ke Konsol Function Compute. Di panel navigasi kiri, klik Functions.
Di bilah navigasi atas, pilih wilayah. Di halaman Functions, klik fungsi yang ingin Anda kelola.
Di halaman Rincian Fungsi fungsi Anda, klik tab Code. Kemudian, buat folder extension di direktori tempat file handler disimpan.
CatatanFolder extension yang Anda buat harus berada pada level yang sama dengan bootstrap.
Tambahkan file mongodb.so ke folder extension, dan buat file mongodb.ini di folder extension.
Edit file mongodb.ini.
Tambahkan konten berikut ke file mongodb.ini dan simpan file:
extension=/code/extension/mongodb.so
Jika Anda ingin menginstal ekstensi kustom lainnya, klik tautan di bawah ini untuk mengunduh file yang sesuai jika diperlukan:
Informasi tambahan
Untuk informasi lebih lanjut tentang cara membuat ekstensi kustom berdasarkan ekstensi bawaan, lihat Bagaimana cara menambah atau menghapus ekstensi bawaan dari runtime PHP?
Jika Anda menggunakan runtime kustom dan ingin menginstal ekstensi MongoDB, lihat Cara menginstal ekstensi kustom dalam runtime kustom.