

AWS App Runner tidak akan lagi terbuka untuk pelanggan baru mulai 30 April 2026. Jika Anda ingin menggunakan App Runner, daftar sebelum tanggal tersebut. Pelanggan yang sudah ada dapat terus menggunakan layanan ini seperti biasa. Untuk informasi selengkapnya, lihat [perubahan AWS App Runner ketersediaan](https://docs.aws.amazon.com/apprunner/latest/dg/apprunner-availability-change.html).

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Menggunakan platform PHP
<a name="service-source-code-php"></a>

**penting**  
App Runner akan mengakhiri dukungan untuk **PHP 8.1** pada 31 Desember 2025. Untuk rekomendasi dan informasi lebih lanjut, lihat[Akhir dukungan untuk versi runtime terkelola](service-source-code.md#service-source-code.managed-platforms.eos).

Platform AWS App Runner PHP menyediakan runtime terkelola. Anda dapat menggunakan setiap runtime untuk membangun dan menjalankan kontainer dengan aplikasi web berdasarkan versi PHP. Saat Anda menggunakan runtime PHP, App Runner dimulai dengan image runtime PHP yang dikelola. Gambar ini didasarkan pada image [Amazon Linux Docker](https://hub.docker.com/_/amazonlinux) dan berisi paket runtime untuk versi PHP dan beberapa alat. App Runner menggunakan image runtime terkelola ini sebagai image dasar, dan menambahkan kode aplikasi Anda untuk membuat image Docker. Kemudian menyebarkan gambar ini untuk menjalankan layanan web Anda dalam sebuah wadah.

 Anda menentukan runtime untuk layanan App Runner saat [membuat layanan](manage-create.md) menggunakan konsol App Runner atau operasi API. [CreateService](https://docs.aws.amazon.com/apprunner/latest/api/API_CreateService.html) Anda juga dapat menentukan runtime sebagai bagian dari kode sumber Anda. Gunakan `runtime` kata kunci dalam [file konfigurasi App Runner](config-file.md) yang Anda sertakan dalam repositori kode Anda. Konvensi penamaan dari runtime terkelola adalah*<language-name><major-version>*. 

Untuk nama dan versi runtime PHP yang valid, lihat[Informasi rilis runtime PHP](service-source-code-php-releases.md).

App Runner memperbarui runtime untuk layanan Anda ke versi terbaru pada setiap penerapan atau pembaruan layanan. Jika aplikasi Anda memerlukan versi tertentu dari runtime terkelola, Anda dapat menentukannya menggunakan `runtime-version` kata kunci dalam file [konfigurasi App Runner](config-file.md). Anda dapat mengunci ke tingkat versi apa pun, termasuk versi mayor atau minor. App Runner hanya membuat pembaruan tingkat yang lebih rendah ke runtime layanan Anda.

Sintaks versi untuk runtime PHP: `major[.minor[.patch]]`

Misalnya: `8.1.10`

Berikut ini adalah contoh penguncian versi:
+ `8.1`— Kunci versi mayor dan minor. App Runner hanya memperbarui versi tambalan.
+ `8.1.10`— Kunci ke versi patch tertentu. App Runner tidak memperbarui versi runtime Anda.

**penting**  
 Jika Anda ingin menentukan [direktori sumber repositori kode untuk layanan App Runner Anda di lokasi selain direktori](service-source-code.md#service-source-code.source-directory) root repositori default, versi runtime terkelola PHP Anda harus PHP atau yang lebih baru. `8.1.22` Versi runtime PHP sebelumnya hanya `8.1.22` dapat menggunakan direktori sumber root default. 

**Topics**
+ [Konfigurasi runtime PHP](#service-source-code-php.config)
+ [Kompatibilitas](#service-source-code-php.compatibility)
+ [Contoh runtime PHP](#service-source-code-php.examples)
+ [Informasi rilis runtime PHP](service-source-code-php-releases.md)

## Konfigurasi runtime PHP
<a name="service-source-code-php.config"></a>

Saat memilih runtime terkelola, Anda juga harus mengonfigurasi, seminimal mungkin, membangun dan menjalankan perintah. Anda mengonfigurasinya saat [membuat](manage-create.md) atau [memperbarui](manage-configure.md) layanan App Runner. Anda dapat melakukan ini menggunakan salah satu metode berikut:
+ **Menggunakan konsol App Runner** — Tentukan perintah di bagian **Configure build** pada tab proses pembuatan atau konfigurasi.
+ **Menggunakan App Runner API** — Panggil operasi [CreateService](https://docs.aws.amazon.com/apprunner/latest/api/API_CreateService.html)atau [UpdateService](https://docs.aws.amazon.com/apprunner/latest/api/API_UpdateService.html)API. Tentukan perintah menggunakan `BuildCommand` dan `StartCommand` anggota tipe [CodeConfigurationValues](https://docs.aws.amazon.com/apprunner/latest/api/API_CodeConfigurationValues.html)data.
+ **Menggunakan [file konfigurasi](config-file.md)** — Tentukan satu atau beberapa perintah build hingga tiga fase build, dan satu perintah run yang berfungsi untuk memulai aplikasi Anda. Ada pengaturan konfigurasi opsional tambahan.

Menyediakan file konfigurasi adalah opsional. Saat membuat layanan App Runner menggunakan konsol atau API, Anda menentukan apakah App Runner mendapatkan setelan konfigurasi secara langsung saat dibuat atau dari file konfigurasi.

## Kompatibilitas
<a name="service-source-code-php.compatibility"></a>

Anda dapat menjalankan layanan App Runner di platform PHP menggunakan salah satu server web berikut: 
+ Apache HTTP Server
+ NGINX

Apache HTTP Serverdan NGINX kompatibel dengan PHP-FPM. Anda dapat memulai *Apache HTTP Server*dan *NGINX*dengan menggunakan salah satu dari berikut ini:
+ [Supervisord](http://supervisord.org/introduction.html#supervisor-components/) - Untuk informasi selengkapnya tentang menjalankan *supervisord*, lihat [Menjalankan supervisord](http://supervisord.org/running.html#running-supervisord). 
+ Skrip startup 

Untuk contoh tentang cara mengonfigurasi layanan App Runner Anda dengan platform PHP menggunakan *Apache HTTP Server* atau *NGINX*, lihat. [Sumber aplikasi PHP lengkap](#service-source-code-php.examples.end2end) 

### Struktur File
<a name="service-source-code-php.compatibility.file-structure"></a>

`index.php`Harus diinstal di `public` folder di bawah `root` direktori server web. 

**catatan**  
Kami menyarankan agar `supervisord.conf` file `startup.sh` atau disimpan di direktori root server web. Pastikan bahwa `start` perintah menunjuk ke lokasi di mana `supervisord.conf` file `startup.sh` atau disimpan.

 Berikut ini adalah contoh struktur file jika Anda menggunakan *supervisord*. 

```
/
├─ public/
│  ├─ index.php
├─ apprunner.yaml
├─ supervisord.conf
```

Berikut ini adalah contoh struktur file jika Anda menggunakan *skrip startup*.

```
/
├─ public/
│  ├─ index.php
├─ apprunner.yaml
├─ startup.sh
```

Sebaiknya simpan struktur file ini di [direktori sumber](service-source-code.md#service-source-code.source-directory) repositori kode yang ditujukan untuk layanan App Runner.

```
/<sourceDirectory>/
├─ public/
│  ├─ index.php
├─ apprunner.yaml
├─ startup.sh
```

**penting**  
 Jika Anda ingin menentukan [direktori sumber repositori kode untuk layanan App Runner Anda di lokasi selain direktori](service-source-code.md#service-source-code.source-directory) root repositori default, versi runtime terkelola PHP Anda harus PHP atau yang lebih baru. `8.1.22` Versi runtime PHP sebelumnya hanya `8.1.22` dapat menggunakan direktori sumber root default.   
App Runner memperbarui runtime untuk layanan Anda ke versi terbaru pada setiap penerapan atau pembaruan layanan. Layanan Anda akan menggunakan runtime terbaru secara default, kecuali Anda menentukan penguncian versi menggunakan `runtime-version` kata kunci dalam file [konfigurasi App Runner](config-file.md).

## Contoh runtime PHP
<a name="service-source-code-php.examples"></a>

Berikut ini adalah contoh file konfigurasi App Runner yang digunakan untuk membangun dan menjalankan layanan PHP. 

### File konfigurasi PHP minimal
<a name="service-source-code-php.examples.minimal"></a>

Contoh berikut adalah file konfigurasi minimal yang dapat Anda gunakan dengan runtime terkelola PHP. Untuk informasi selengkapnya tentang file konfigurasi minimal, lihat[Contoh file konfigurasi](config-file-examples.md#config-file-examples.managed).

**Example apprunner.yaml**  

```
version: 1.0 
runtime: php81
build:
  commands:
    build:
      - echo example build command for PHP
run:
  command: ./startup.sh
```

### File konfigurasi PHP yang diperluas
<a name="service-source-code-php.examples.extended"></a>

Contoh berikut menggunakan semua kunci konfigurasi dengan runtime terkelola PHP.

**catatan**  
Versi runtime yang digunakan dalam contoh ini adalah*8.1.10*. Anda dapat menggantinya dengan versi yang ingin Anda gunakan. Untuk versi runtime PHP terbaru yang didukung, lihat[Informasi rilis runtime PHP](service-source-code-php-releases.md).

**Example apprunner.yaml**  

```
version: 1.0
runtime: php81
build:
  commands:
     pre-build:
      - scripts/prebuild.sh
    build:
      - echo example build command for PHP
    post-build:
      - scripts/postbuild.sh
  env:
    - name: MY_VAR_EXAMPLE
      value: "example"
run:
  runtime-version: 8.1.10
  command: ./startup.sh
  network:
    port: 5000
    env: APP_PORT
  env:
    - name: MY_VAR_EXAMPLE
      value: "example"
```

### Sumber aplikasi PHP lengkap
<a name="service-source-code-php.examples.end2end"></a>

Contoh berikut adalah kode sumber aplikasi PHP yang dapat Anda gunakan untuk menyebarkan ke layanan runtime PHP menggunakan *Apache HTTP Server*atau. *NGINX* Contoh-contoh ini mengasumsikan bahwa Anda menggunakan struktur file default.

#### Menjalankan platform PHP dengan Apache HTTP Server menggunakan supervisord
<a name="service-source-code-php.examples.end2end.appache-supervisord"></a>

**Example Struktur file**  
+ `supervisord.conf`File dapat disimpan di mana saja di repositori. Pastikan bahwa `start` perintah menunjuk ke tempat `supervisord.conf` file disimpan.
+ `index.php`Harus diinstal di `public` folder di bawah `root` direktori.

```
/
├─ public/
│  ├─ index.php
├─ apprunner.yaml
├─ supervisord.conf
```

**Example supervisord.conf**  

```
[supervisord]
nodaemon=true

[program:httpd]
command=httpd -DFOREGROUND
autostart=true
autorestart=true
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0

[program:php-fpm]
command=php-fpm -F
autostart=true
autorestart=true
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0
```

**Example apprunner.yaml**  

```
version: 1.0
runtime: php81
build:
  commands:
    build:
      - PYTHON=python2 amazon-linux-extras install epel
      - yum -y install supervisor
run:
  command: supervisord
  network:
    port: 8080
    env: APP_PORT
```

**Example index.php**  

```
<html>
<head> <title>First PHP App</title> </head>
<body>
<?php
    print("Hello World!");
    print("<br>");
?>
</body>
</html>
```

#### Menjalankan platform PHP dengan Apache HTTP Server menggunakan startup script
<a name="service-source-code-php.examples.end2end.appache-startupscript"></a>

**Example Struktur file**  
+ `startup.sh`File dapat disimpan di mana saja di repositori. Pastikan bahwa `start` perintah menunjuk ke tempat `startup.sh` file disimpan.
+ `index.php`Harus diinstal di `public` folder di bawah `root` direktori.

```
/
├─ public/
│  ├─ index.php
├─ apprunner.yaml
├─ startup.sh
```

**Example startup.sh**  

```
#!/bin/bash

set -o monitor

trap exit SIGCHLD

# Start apache
httpd -DFOREGROUND &

# Start php-fpm
php-fpm -F &

wait
```

**catatan**  
Pastikan untuk menyimpan `startup.sh` file sebagai executable sebelum Anda mengkomitmennya ke repositori Git. Gunakan `chmod +x startup.sh` untuk mengatur izin eksekusi pada `startup.sh` file Anda. 
Jika Anda tidak menyimpan `startup.sh` file sebagai executable, masukkan `chmod +x startup.sh` sebagai `build` perintah dalam file Anda`apprunner.yaml`. 

**Example apprunner.yaml**  

```
version: 1.0
runtime: php81
build:
  commands:
    build:
      - echo example build command for PHP
run:
  command: ./startup.sh
  network:
    port: 8080
    env: APP_PORT
```

**Example index.php**  

```
<html>
<head> <title>First PHP App</title> </head>
<body>
<?php
    print("Hello World!");
    print("<br>");
?>
</body>
</html>
```

#### Menjalankan platform PHP dengan NGINX menggunakan supervisord
<a name="service-source-code-php.examples.end2end.nginx-supervisord"></a>

**Example Struktur file**  
+ `supervisord.conf`File dapat disimpan di mana saja di repositori. Pastikan bahwa `start` perintah menunjuk ke tempat `supervisord.conf` file disimpan.
+ `index.php`Harus diinstal di `public` folder di bawah `root` direktori.

```
/
├─ public/
│  ├─ index.php
├─ apprunner.yaml
├─ supervisord.conf
```

**Example supervisord.conf**  

```
[supervisord]
nodaemon=true

[program:nginx]
command=nginx -g "daemon off;"
autostart=true
autorestart=true
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0

[program:php-fpm]
command=php-fpm -F
autostart=true
autorestart=true
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0
```

**Example apprunner.yaml**  

```
version: 1.0
runtime: php81
build:
  commands:
    build:
      - PYTHON=python2 amazon-linux-extras install epel
      - yum -y install supervisor
run:
  command: supervisord
  network:
    port: 8080
    env: APP_PORT
```

**Example index.php**  

```
<html>
<head> <title>First PHP App</title> </head>
<body>
<?php
    print("Hello World!");
    print("<br>");
?>
</body>
</html>
```

#### Menjalankan platform PHP dengan NGINX menggunakan startup script
<a name="service-source-code-php.examples.end2end.nginx-startupscript"></a>

**Example Struktur file**  
+ `startup.sh`File dapat disimpan di mana saja di repositori. Pastikan bahwa `start` perintah menunjuk ke tempat `startup.sh` file disimpan. 
+ `index.php`Harus diinstal di `public` folder di bawah `root` direktori.

```
/
├─ public/
│  ├─ index.php
├─ apprunner.yaml
├─ startup.sh
```

**Example startup.sh**  

```
#!/bin/bash

set -o monitor

trap exit SIGCHLD

# Start nginx 
nginx -g 'daemon off;' &

# Start php-fpm
php-fpm -F &

wait
```

**catatan**  
Pastikan untuk menyimpan `startup.sh` file sebagai executable sebelum Anda mengkomitmennya ke repositori Git. Gunakan `chmod +x startup.sh` untuk mengatur izin eksekusi pada `startup.sh` file Anda. 
Jika Anda tidak menyimpan `startup.sh` file sebagai executable, masukkan `chmod +x startup.sh` sebagai `build` perintah dalam file Anda`apprunner.yaml`. 

**Example apprunner.yaml**  

```
version: 1.0
runtime: php81
build:
  commands:
    build:
      - echo example build command for PHP
run:
  command: ./startup.sh
  network:
    port: 8080
    env: APP_PORT
```

**Example index.php**  

```
<html>
<head> <title>First PHP App</title> </head>
<body>
<?php
    print("Hello World!");
    print("<br>");
?>
</body>
</html>
```

# Informasi rilis runtime PHP
<a name="service-source-code-php-releases"></a>

**penting**  
App Runner akan mengakhiri dukungan untuk **PHP 8.1** pada 31 Desember 2025. Untuk rekomendasi dan informasi lebih lanjut, lihat[Akhir dukungan untuk versi runtime terkelola](service-source-code.md#service-source-code.managed-platforms.eos).

Topik ini mencantumkan detail lengkap untuk versi runtime PHP yang didukung App Runner.


**Versi runtime yang didukung — build App Runner asli**  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/apprunner/latest/dg/service-source-code-php-releases.html)

**catatan**  
App Runner menyediakan proses build yang direvisi untuk runtime utama tertentu yang telah dirilis baru-baru ini. Karena itu, Anda akan melihat referensi ke build *App Runner yang direvisi dan build* *App Runner asli* di bagian tertentu dari dokumen ini. Untuk informasi selengkapnya, lihat [Versi runtime terkelola dan build App Runner](service-source-code.md#service-source-code.build-detail).