PHP 5 telah mencapai akhir dukungan dan akan
dihentikan penggunaannya
pada 31 Januari 2026. Setelah penghentian penggunaan, Anda tidak akan dapat men-deploy aplikasi PHP 5, meskipun organisasi Anda sebelumnya menggunakan kebijakan organisasi untuk mengaktifkan kembali deployment runtime lama. Aplikasi PHP 5 yang sudah ada akan terus berjalan dan menerima traffic setelah
tanggal penghentiannya. Sebaiknya Anda
bermigrasi ke versi PHP terbaru yang didukung.
File php.ini
Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
Anda dapat menyertakan file php.ini dengan aplikasi App Engine. File ini memungkinkan Anda menyesuaikan perilaku perintah penafsir PHP.
Tentang php.ini
File php.ini
harus ditempatkan di direktori dasar aplikasi (direktori yang sama dengan file app.yaml
). File ini dimuat saat penafsir PHP diinisialisasi, dan sebelum kode aplikasi Anda dijalankan.
File ini mengikuti sintaksis yang sama dengan file .ini lainnya. Berikut contoh sederhananya:
; This is a simple php.ini file on App Engine
;
; This is a directive set to "On"
widget_compression = "On"
Daftar perintah inti, beserta nilai modenya yang dapat diubah, dipublikasikan di php.net. Perintah php.ini
yang ditangani oleh ekstensi didokumentasikan di halaman dari ekstensi itu sendiri.
Anda dapat mengganti perintah PHP yang memiliki salah satu nilai mode yang dapat diubah berikut:
PHP_INI_SYSTEM
PHP_INI_ALL
PHP_INI_PERDIR
Perhatikan bahwa beberapa fungsi telah dinonaktifkan dalam implementasi PHP App Engine. Perintah yang menargetkan fungsi ini tidak akan berpengaruh.
Serangkaian ekstensi yang dapat dimuat secara dinamis dapat diaktifkan menggunakan perintah extension
.
Perintah PHP untuk App Engine
Perintah berikut dikhususkan untuk lingkungan App Engine. Perintah tersebut dapat dimasukkan dalam file php.ini.
google_app_engine.enable_curl_lite
- Mengaktifkan "cURL lite", versi cURL bawaan khusus App Engine, saat ditetapkan ke "1".
"cURL lite" dapat digunakan seperti halnya Anda menggunakan fungsi cURL standar, tetapi fungsi ini memanggil URL Fetch di latar belakang alih-alih soket, sehingga fungsi tanpa URL Fetch yang setara akan menampilkan CurlLiteMethodNotSupportedException
.
Catatan: Aplikasi tidak dapat mengaktifkan ekstensi "curl.so" dan "cURL lite" secara bersamaan, karena hal ini membebani fungsi cURL.
google_app_engine.enable_functions
- Fungsi yang telah dinonaktifkan sementara di App Engine, tetapi dapat diaktifkan kembali menggunakan perintah ini. Cantumkan nama fungsi dalam string yang dipisahkan koma:
google_app_engine.enable_functions = "phpversion, phpinfo"
google_app_engine.allow_include_gs_buckets
- Mengizinkan aplikasi Anda menggunakan pernyataan include
atau require
dengan file yang disimpan di Google Cloud Storage.
Catatan: Anda dapat menggunakan #default#
untuk bucket default. Nilai ini akan otomatis diganti pada saat runtime dengan nama bucket default Anda saat ini.
Misalnya, cantumkan bucket default, beserta bucket bucket_1
dan bucket_2
yang berisi file dalam string yang dipisahkan koma:
google_app_engine.allow_include_gs_buckets = "#default#, bucket_1, bucket_2"
Anda juga dapat menentukan bucket dan jalur ke file yang dapat disertakan, misalnya:
google_app_engine.allow_include_gs_buckets = "bucket_1/path_x"
Saat pemeriksaan dilakukan untuk file yang dapat disertakan dari Google Cloud Storage, jalur yang diberikan diperlakukan sebagai awalan yang harus cocok dengan awal nama file agar dapat disertakan atau diwajibkan. Misalnya, menggunakan contoh jalur di atas, jalur yang diberikan akan memungkinkan pengguna menyertakan file dari gs://bucket_1/path_x/...
karena awalannya cocok, tetapi bukan dari gs://bucket_1 or gs://bucket_1/path_y/
karena awalannya tidak cocok.
Jika file yang diupload dipindahkan ke bucket penyertaan yang diizinkan, peringatan akan dikeluarkan untuk memberi tahu pengguna tentang potensi serangan LFI. Jika hal ini terjadi, sebaiknya gunakan jalur yang lebih ketat.
Catatan: jalur diperlakukan sebagai awalan file, sehingga dapat berisi file tertentu, misalnya, google_app_engine.allow_include_gs_buckets = "bucket_1/path_x.ext", "bucket_2/path_z/some_file.ext
.
google_app_engine.disable_readonly_filesystem
- Secara default, aplikasi PHP tidak diizinkan untuk menulis ke sistem file.
Menyetel perintah ini ke "1" akan mencabut pembatasan lingkungan pengembangan lokal.
Namun, setelan ini tidak berlaku untuk aplikasi yang berjalan dalam lingkungan production, yang selalu tunduk pada pembatasan sandbox.
Kecuali dinyatakan lain, konten di halaman ini dilisensikan berdasarkan Lisensi Creative Commons Attribution 4.0, sedangkan contoh kode dilisensikan berdasarkan Lisensi Apache 2.0. Untuk mengetahui informasi selengkapnya, lihat Kebijakan Situs Google Developers. Java adalah merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2025-08-19 UTC.
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Sulit dipahami","hardToUnderstand","thumb-down"],["Informasi atau kode contoh salah","incorrectInformationOrSampleCode","thumb-down"],["Informasi/contoh yang saya butuhkan tidak ada","missingTheInformationSamplesINeed","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 2025-08-19 UTC."],[[["\u003cp\u003eThe \u003ccode\u003ephp.ini\u003c/code\u003e file, placed in the base directory of an App Engine application, allows customization of PHP interpreter directives before application code execution.\u003c/p\u003e\n"],["\u003cp\u003eYou can override PHP directives with changeable mode values such as \u003ccode\u003ePHP_INI_SYSTEM\u003c/code\u003e, \u003ccode\u003ePHP_INI_ALL\u003c/code\u003e, and \u003ccode\u003ePHP_INI_PERDIR\u003c/code\u003e, excluding those targeting disabled functions.\u003c/p\u003e\n"],["\u003cp\u003eApp Engine provides specific directives within \u003ccode\u003ephp.ini\u003c/code\u003e, including \u003ccode\u003egoogle_app_engine.enable_curl_lite\u003c/code\u003e to use "cURL lite," and \u003ccode\u003egoogle_app_engine.enable_functions\u003c/code\u003e to re-enable certain soft-disabled functions.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003egoogle_app_engine.allow_include_gs_buckets\u003c/code\u003e directive permits the use of \u003ccode\u003einclude\u003c/code\u003e or \u003ccode\u003erequire\u003c/code\u003e statements with files stored in specified Google Cloud Storage buckets, with path prefix matching.\u003c/p\u003e\n"],["\u003cp\u003eIn local development, \u003ccode\u003egoogle_app_engine.disable_readonly_filesystem\u003c/code\u003e can be set to "1" to allow filesystem writing, but this is not applicable in production due to sandbox restrictions.\u003c/p\u003e\n"]]],[],null,["# The php.ini File\n\nYou can include a php.ini file with your App Engine application. This file\nlets you customize the behavior of the PHP interpreter directives.\n\nAbout php.ini\n-------------\n\nThe `php.ini` file should be\nplaced in the base directory of an application (the same directory as the\n`app.yaml` file). It is loaded when the PHP interpreter is\ninitialized, and before your application code is run.\n\nThe file follows the same syntax as\n[other .ini files](https://en.wikipedia.org/wiki/INI_file). A simple\nexample might look like: \n\n```php\n; This is a simple php.ini file on App Engine\n;\n; This is a directive set to \"On\"\nwidget_compression = \"On\"\n```\n\nA list of the core directives, along with their changeable mode values,\n[is published on php.net](http://www.php.net/manual/en/ini.list.php).\nThe `php.ini` directives handled by extensions are documented on the\nrespective pages of the extensions themselves.\n\nYou may override any PHP directive that has one of the following changeable mode values:\n\n- `PHP_INI_SYSTEM`\n- `PHP_INI_ALL`\n- `PHP_INI_PERDIR`\n\nNote that some functions\n[have been\ndisabled in the App Engine implementation of PHP](/appengine/docs/legacy/standard/php/runtime#disabled_functions). Directives that target\nthese functions will have no effect.\n\nA set of [dynamically loadable extensions](/appengine/docs/legacy/standard/php/runtime#dynamically_loadable_extensions) can be enabled using the\n`extension` directive.\n\nPHP Directives for App Engine\n-----------------------------\n\nThe following directives are specific to the App Engine environment. They can\nbe included in the php.ini file.\n\n- **`google_app_engine.enable_curl_lite`** - Enables \"cURL lite\", a built-in, App Engine-specific version of cURL, when set to \"1\". \"cURL lite\" can be used exactly as you would use the standard [cURL functions](http://php.net/manual/en/ref.curl.php), but it calls [URL Fetch](/appengine/docs/legacy/standard/php/issue-requests) under the hood rather than sockets, thus functions with no URL Fetch equivalent, throw a `CurlLiteMethodNotSupportedException`.\n\n Note: An app can't enable the \"curl.so\" extension and \"cURL lite\" at the same time,\n as the latter overloads the cURL functions.\n- **`google_app_engine.enable_functions`** - Functions that have been [soft\n disabled](/appengine/docs/legacy/standard/php/runtime#functions_that_can_be_manually_enabled) in App Engine, but can be re-enabled using this directive. List the function names in a comma delimited string: \n\n ```\n google_app_engine.enable_functions = \"phpversion, phpinfo\"\n ```\n- **`google_app_engine.allow_include_gs_buckets`** - Allows your application to use the [`include`](http://php.net/manual/en/function.include.php) or [`require`](http://us1.php.net/manual/en/function.require.php) statements with files stored in [Google Cloud\n Storage](/appengine/docs/legacy/standard/php/googlestorage).\n\n \u003cbr /\u003e\n\n Note: You can use `#default#` for the default bucket; this value\n will be automatically replaced at runtime with your current default bucket name.\n\n For example, list the default bucket, along with buckets `bucket_1` and `bucket_2`\n containing the files in a comma delimited string: \n\n ```\n google_app_engine.allow_include_gs_buckets = \"#default#, bucket_1, bucket_2\"\n ```\n\n You can also specify a bucket and path to files that can be included, for example: \n\n ```\n google_app_engine.allow_include_gs_buckets = \"bucket_1/path_x\"\n ```\n\n When the check is performed for which files may be included from Google Cloud Storage, the\n supplied path is treated as a prefix that must match the start of the file name in order for it\n to be included or required. For example using the path example above, the supplied\n path would allow users to include files from `gs://bucket_1/path_x/...`\n because the prefix matches but not from `gs://bucket_1 or gs://bucket_1/path_y/` because\n the prefix doesn't match.\n\n If an uploaded file is moved to an allowed include bucket, a warning\n is generated to alert the user to a potential\n [LFI](https://en.wikipedia.org/wiki/File_inclusion_vulnerability)\n attack. If this happens, you should consider using a more\n restrictive path.\n\n **Note:** the path is treated as a file\n prefix; so it could include a specific file\n as well, for example, `google_app_engine.allow_include_gs_buckets = \"bucket_1/path_x.ext\", \"bucket_2/path_z/some_file.ext`.\n- **`google_app_engine.disable_readonly_filesystem`** - By default PHP applications are not allowed to write to the filesystem. Setting this directive to \"1\" will lift the restriction for the local development environment. However, the setting does not apply to applications running in production, which are always subjected to the [sandbox restrictions](/appengine/docs/legacy/standard/php/runtime#the_sandbox)."]]