Menggunakan platform PHP - AWS App Runner

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

Menggunakan platform PHP

Platform AWS App Runner PHP menyediakan runtime terkelola. Anda dapat menggunakan setiap runtime untuk membangun dan menjalankan container 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 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 menggunakan konsol App Runner atau operasi API. CreateService Anda juga dapat menentukan runtime sebagai bagian dari kode sumber Anda. Gunakan runtime kata kunci dalam file konfigurasi App Runner yang Anda sertakan dalam repositori kode Anda. Konvensi penamaan runtime terkelola adalah. <language-name><major-version>

Untuk nama dan versi runtime PHP yang valid, lihatInformasi rilis runtime PHP.

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. 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 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.

Konfigurasi runtime PHP

Saat memilih runtime terkelola, Anda juga harus mengonfigurasi, seminimal mungkin, membangun dan menjalankan perintah. Anda mengonfigurasinya saat membuat atau memperbarui 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 CreateServiceatau UpdateServiceAPI. Tentukan perintah menggunakan BuildCommand dan StartCommand anggota tipe CodeConfigurationValuesdata.

  • Menggunakan file konfigurasi — 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

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 Serverdan NGINXdengan menggunakan salah satu dari berikut ini:

Untuk contoh tentang cara mengonfigurasi layanan App Runner Anda dengan platform PHP menggunakan Apache HTTP Server atau NGINX, lihat. Sumber aplikasi PHP lengkap

Struktur File

index.phpHarus 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 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 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.

Contoh runtime PHP

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

Contoh berikut adalah file konfigurasi minimal yang dapat Anda gunakan dengan runtime terkelola PHP. Untuk informasi selengkapnya tentang file konfigurasi minimal, lihatContoh file konfigurasi.

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

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, lihatInformasi rilis runtime PHP.

contoh 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"

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

Menjalankan platform PHP dengan Apache HTTP Server menggunakan supervisord

contoh Struktur file
catatan
  • supervisord.confFile dapat disimpan di mana saja di repositori. Pastikan bahwa start perintah menunjuk ke tempat supervisord.conf file disimpan.

  • index.phpHarus diinstal di public folder di bawah root direktori.

/ ├─ public/ │ ├─ index.php ├─ apprunner.yaml ├─ supervisord.conf
contoh 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
contoh 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
contoh 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

contoh Struktur file
catatan
  • startup.shFile dapat disimpan di mana saja di repositori. Pastikan bahwa start perintah menunjuk ke tempat startup.sh file disimpan.

  • index.phpHarus diinstal di public folder di bawah root direktori.

/ ├─ public/ │ ├─ index.php ├─ apprunner.yaml ├─ startup.sh
contoh 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 Andaapprunner.yaml.

contoh 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
contoh 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

contoh Struktur file
catatan
  • supervisord.confFile dapat disimpan di mana saja di repositori. Pastikan bahwa start perintah menunjuk ke tempat supervisord.conf file disimpan.

  • index.phpHarus diinstal di public folder di bawah root direktori.

/ ├─ public/ │ ├─ index.php ├─ apprunner.yaml ├─ supervisord.conf
contoh 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
contoh 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
contoh 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

contoh Struktur file
catatan
  • startup.shFile dapat disimpan di mana saja di repositori. Pastikan bahwa start perintah menunjuk ke tempat startup.sh file disimpan.

  • index.phpHarus diinstal di public folder di bawah root direktori.

/ ├─ public/ │ ├─ index.php ├─ apprunner.yaml ├─ startup.sh
contoh 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 Andaapprunner.yaml.

contoh 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
contoh index.php
<html> <head> <title>First PHP App</title> </head> <body> <?php print("Hello World!"); print("<br>"); ?> </body> </html>