PHP runtime Function Compute secara default menyertakan ekstensi umum. Untuk mengurangi waktu cold-start fungsi atau memenuhi kebutuhan bisnis tertentu, Anda dapat mengontrol ekstensi yang dimuat dengan menyediakan file konfigurasi INI kustom.
Topik ini menggunakan contoh penghapusan ekstensi protobuf. Pendekatan yang sama berlaku untuk menambahkan atau menghapus ekstensi bawaan apa pun. Untuk daftar lengkap ekstensi bawaan yang tersedia, lihat Built-in PHP packages.
Cara kerja
Ketika variabel lingkungan PHP_INI_SCAN_DIR diatur, PHP runtime akan memindai direktori tersebut untuk mencari file INI dan hanya memuat ekstensi yang tercantum dalam file-file tersebut. Dengan demikian, Anda dapat secara eksplisit mengontrol ekstensi yang aktif, menggantikan perilaku default.
Menghapus ekstensi bawaan
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Fungsi Function Compute yang menggunakan PHP runtime
Akses ke paket kode fungsi dan pengaturan variabel lingkungan fungsi tersebut
Prosedur
Buat direktori
extensiondi direktori yang sama dengan file entri fungsi Anda.Struktur direktori harus tampak seperti berikut:
. |____extension | |____my_ext.ini |____index.phpBuat file
my_ext.inidi dalam direktoriextension, lalu cantumkan ekstensi yang ingin dimuat.Untuk menghapus suatu ekstensi, beri komentar dengan awalan titik koma (
;). Contoh berikut menampilkan daftar lengkap ekstensi denganprotobufyang dikomentari:extension=session.so extension=ftp.so extension=shmop.so extension=bcmath.so extension=gettext.so extension=pcntl.so extension=simplexml.so extension=xmlreader.so extension=bz2.so extension=gmp.so extension=pdo.so extension=soap.so extension=xmlrpc.so extension=calendar.so extension=iconv.so extension=pdo_mysql.so extension=sockets.so extension=xmlwriter.so extension=ctype.so extension=imagick.so extension=phar.so extension=sysvmsg.so extension=dom.so extension=json.so extension=posix.so extension=sysvsem.so extension=exif.so extension=zip.so extension=memcached.so extension=mbstring.so ;extension=protobuf.so extension=sysvshm.so extension=fileinfo.so extension=mysqli.so extension=redis.so extension=tokenizer.so extension=zip.so extension=memcached.so zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20170718/opcache.so zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20170718/xdebug.soCatatanEkstensi seperti OPcache dan Xdebug memerlukan direktif
zend_extensionalih-alihextension.Buat fungsi menggunakan paket kode dari direktori di atas. Untuk detailnya, lihat Create a function.
Atur variabel lingkungan
PHP_INI_SCAN_DIRke jalur mutlak direktoriextensiondalam paket penyebaran Anda.Sebagai contoh, jika kode Anda dideploy ke
/code, aturPHP_INI_SCAN_DIRmenjadi/code/extension.
Setelah konfigurasi disimpan, PHP runtime hanya akan memuat ekstensi yang tercantum dalam file
my_ext.ini. Ekstensiprotobuftidak lagi dimuat.