Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan platform PHP Elastic Beanstalk
AWS Elastic Beanstalk menyediakan dan mendukung berbagai cabang platform untuk berbagai versi PHP. Platform mendukung aplikasi web PHP yang berjalan berdiri sendiri atau di bawah Composer. Lihat PHP di dokumen AWS Elastic Beanstalk Platform untuk daftar lengkap cabang platform yang didukung.
Elastic Beanstalk menyediakan opsi konfigurasi yang dapat Anda gunakan untuk menyesuaikan perangkat lunak yang berjalan pada instans EC2 Amazon di lingkungan Elastic Beanstalk Anda. Anda dapat mengonfigurasi variabel lingkungan yang diperlukan oleh aplikasi Anda, mengaktifkan rotasi log ke Amazon S3, memetakan folder di sumber aplikasi Anda yang berisi file statis ke jalur yang disajikan oleh server proxy, dan mengatur pengaturan inisialisasi PHP umum.
Pilihan konfigurasi tersedia di konsol Elastic Beanstalk untuk memodifikasi konfigurasi dari lingkungan yang sedang berjalan. Agar Anda tidak kehilangan konfigurasi lingkungan ketika mengakhirinya, Anda dapat menggunakan konfigurasi tersimpan untuk menyimpan pengaturan dan kemudian menerapkannya ke lingkungan lain.
Untuk menyimpan pengaturan di kode sumber, Anda dapat menyertakan file konfigurasi. Pengaturan di file konfigurasi diterapkan setiap kali Anda membuat lingkungan atau men-deploy aplikasi Anda. Anda juga dapat menggunakan file konfigurasi untuk menginstal paket, menjalankan skrip, dan melakukan operasi penyesuaian instans lainnya selama deployment.
Jika Anda menggunakan Composer, Anda dapat menyertakan file composer.json di paket sumber untuk menginstal paket selama deployment.
Untuk konfigurasi PHP lanjutan dan pengaturan PHP yang tidak disediakan sebagai opsi konfigurasi, Anda dapat menggunakan file konfigurasi untuk menyediakan file INI yang dapat memperluas dan mengganti pengaturan default yang diterapkan oleh Elastic Beanstalk, atau menginstal ekstensi tambahan.
Pengaturan yang diterapkan di konsol Elastic Beanstalk menimpa pengaturan yang sama dalam file konfigurasi, jika ada. Hal tersebut memungkinkan Anda memiliki pengaturan default di file konfigurasi, dan mengganti keduanya dengan pengaturan khusus lingkungan di konsol tersebut. Untuk informasi selengkapnya tentang yang diutamakan, dan metode lain untuk mengubah pengaturan, lihat Opsi konfigurasi.
Untuk detail tentang berbagai cara memperluas platform berbasis Linux Elastic Beanstalk, lihat Memperluas platform Linux Elastic Beanstalk.
Topik platform PHP
Menginstal AWS SDK for PHP
Jika Anda perlu mengelola AWS sumber daya dari dalam aplikasi Anda, instal file AWS SDK untuk PHP. Misalnya, dengan SDK for PHP, Anda dapat menggunakan Amazon DynamoDB (DynamoDB) untuk menyimpan informasi pengguna dan sesi tanpa membuat basis data relasional.
Untuk menginstal SDK for PHP dengan Composer
$ composer require aws/aws-sdk-php
Untuk informasi lebih lanjut, lihat AWS SDK for PHP
Pertimbangan untuk PHP 8.1 di Amazon Linux 2
Baca bagian ini jika Anda menggunakan PHP 8.1 di cabang platform Amazon Linux 2.
catatan
Informasi dalam topik ini hanya berlaku untuk PHP 8.1 di cabang platform Amazon Linux 2. Ini tidak berlaku untuk cabang platform PHP berdasarkan AL2 023. Ini juga tidak berlaku untuk cabang platform PHP 8.0 Amazon Linux 2.
Elastic Beanstalk menyimpan paket RPM terkait PHP 8.1 untuk PHP 8.1 di cabang platform Amazon Linux 2 EC2 pada instance di direktori lokal, bukan repositori Amazon Linux. Anda dapat menggunakan rpm -i untuk menginstal paket. Dimulai dengan PHP 8.1 Platform Versi 3.5.0, Elastic Beanstalk menyimpan paket RPM terkait PHP 8.1 di direktori lokal berikut. EC2
/opt/elasticbeanstalk/RPMS
Contoh berikut menginstal php-debuginfo paket.
$rpm -i /opt/elasticbeanstalk/RPMS/php-debuginfo-8.1.8-1.amzn2.x86_64.rpm
Versi dalam nama paket akan bervariasi sesuai dengan versi aktual yang tercantum di direktori EC2 lokal/opt/elasticbeanstalk/RPMS
. Gunakan sintaks yang sama untuk menginstal paket PHP 8.1 RPM lainnya.
Perluas bagian berikut untuk menampilkan daftar paket RPM yang kami sediakan.
Daftar berikut menyediakan paket RMP yang disediakan platform Elastic Beanstalk PHP 8.1 di Amazon Linux 2. Ini terletak di direktori lokal/opt/elasticbeanstalk/RPMS
.
Nomor versi 8.1.8-1 dan 3.7.0-1 dalam nama paket yang tercantum hanyalah sebuah contoh.
-
php-8.1.8-1.amzn2.x86_64.rpm
-
php-bcmath-8.1.8-1.amzn2.x86_64.rpm
-
php-cli-8.1.8-1.amzn2.x86_64.rpm
-
php-common-8.1.8-1.amzn2.x86_64.rpm
-
php-dba-8.1.8-1.amzn2.x86_64.rpm
-
php-dbg-8.1.8-1.amzn2.x86_64.rpm
-
php-debuginfo-8.1.8-1.amzn2.x86_64.rpm
-
php-devel-8.1.8-1.amzn2.x86_64.rpm
-
php-embedded-8.1.8-1.amzn2.x86_64.rpm
-
php-enchant-8.1.8-1.amzn2.x86_64.rpm
-
php-fpm-8.1.8-1.amzn2.x86_64.rpm
-
php-gd-8.1.8-1.amzn2.x86_64.rpm
-
php-gmp-8.1.8-1.amzn2.x86_64.rpm
-
php-intl-8.1.8-1.amzn2.x86_64.rpm
-
php-ldap-8.1.8-1.amzn2.x86_64.rpm
-
php-mbstring-8.1.8-1.amzn2.x86_64.rpm
-
php-mysqlnd-8.1.8-1.amzn2.x86_64.rpm
-
php-odbc-8.1.8-1.amzn2.x86_64.rpm
-
php-opcache-8.1.8-1.amzn2.x86_64.rpm
-
php-pdo-8.1.8-1.amzn2.x86_64.rpm
-
php-pear-1.10.13-1.amzn2.noarch.rpm
-
php-pgsql-8.1.8-1.amzn2.x86_64.rpm
-
php-process-8.1.8-1.amzn2.x86_64.rpm
-
php-pspell-8.1.8-1.amzn2.x86_64.rpm
-
php-snmp-8.1.8-1.amzn2.x86_64.rpm
-
php-soap-8.1.8-1.amzn2.x86_64.rpm
-
php-sodium-8.1.8-1.amzn2.x86_64.rpm
-
php-xml-8.1.8-1.amzn2.x86_64.rpm
-
php-pecl-imagick-3.7.0-1.amzn2.x86_64.rpm
-
php-pecl-imagick-debuginfo-3.7.0-1.amzn2.x86_64.rpm
-
php-pecl-imagick-devel-3.7.0-1.amzn2.noarch.rpm
Anda dapat menggunakan paket PEAR dan PECL untuk menginstal ekstensi umum. Untuk informasi lebih lanjut tentang PEAR, lihat situs web PEAR PHP Extension and Application Repository
Contoh perintah berikut menginstal ekstensi Memcached.
$pecl install memcache
Atau Anda juga bisa menggunakan yang berikut ini:
$pear install pecl/memcache
Contoh perintah berikut menginstal ekstensi Redis.
$pecl install redis
Atau Anda juga bisa menggunakan yang berikut ini:
$pear install pecl/redis
Mengonfigurasi lingkungan PHP Anda
Anda dapat menggunakan konsol Elastic Beanstalk untuk mengaktifkan rotasi log ke Amazon S3, mengonfigurasi variabel yang dapat dibaca aplikasi Anda dari lingkungan, dan mengubah pengaturan PHP.
Untuk mengonfigurasi lingkungan PHP Anda di konsol Elastic Beanstalk
Buka konsol Elastic Beanstalk, dan di daftar Wilayah, pilih konsol Elastic
Beanstalk. Wilayah AWS -
Di panel navigasi, pilih Lingkungan, dan kemudian pilih nama lingkungan Anda dari daftar.
Pada panel navigasi, pilih Konfigurasi.
-
Dalam kategori konfigurasi Pembaruan, pemantauan, dan pencatatan, pilih Edit.
Pengaturan PHP
-
Server proksi – Server proksi yang akan digunakan pada instans lingkungan Anda. Secara default, nginx digunakan.
-
Akar dokumen – Folder yang berisi halaman default situs Anda. Jika halaman selamat datang Anda tidak berada di akar paket sumber Anda, tentukan folder yang memuatnya itu relatif terhadap jalur akar. Misalnya,
/public
jika halaman selamat datang berada dalam folder bernamapublic
. -
Batas memori – Jumlah maksimum memori yang dapat dialokasikan oleh skrip. Misalnya,
512M
. -
Kompresi output Zlib – Atur ke
On
untuk memampatkan respons. -
Ijinkan URL fopen – Atur ke
Off
untuk mencegah skrip mengunduh file dari lokasi jarak jauh. -
Kesalahan tampilan – Atur ke
On
untuk menampilkan pesan kesalahan internal untuk debugging. -
Waktu eksekusi maks – Waktu maksimum dalam detik yang boleh dijalankan skrip sebelum lingkungan mengakhirinya.
Opsi log
Bagian Opsi Log memiliki dua pengaturan:
-
Profil instans– Menentukan profil instans yang memiliki izin untuk mengakses bucket Amazon S3 yang terkait dengan aplikasi Anda.
-
Aktifkan rotasi file log ke Amazon S3 — Menentukan apakah file log untuk EC2 instans Amazon aplikasi Anda disalin ke bucket Amazon S3 yang terkait dengan aplikasi Anda.
File statis
Untuk meningkatkan kinerja, Anda dapat menggunakan bagian File statis untuk mengkonfigurasi server proxy untuk melayani file statis (misalnya, HTML atau gambar) dari satu set direktori di dalam aplikasi web Anda. Untuk setiap direktori, Anda mengatur jalur virtual ke pemetaan direktori. Saat server proksi menerima permintaan untuk file di jalur yang ditentukan, server langsung menyajikan file daripada merutekan permintaan ke aplikasi Anda.
Untuk detail tentang mengonfigurasi file statis menggunakan file konfigurasi atau konsol Elastic Beanstalk, lihat. Menyajikan file statis
Properti lingkungan
Bagian Properti Lingkungan memungkinkan Anda menentukan pengaturan konfigurasi lingkungan pada EC2 instance Amazon yang menjalankan aplikasi Anda. Pengaturan ini diteruskan sebagai pasangan nilai kunci ke aplikasi.
Kode aplikasi Anda dapat mengakses properti lingkungan dengan menggunakan fungsi $_SERVER
atau get_cfg_var
.
$endpoint = $_SERVER['API_ENDPOINT'];
Lihat Variabel lingkungan dan pengaturan perangkat lunak lainnya untuk informasi selengkapnya.
Ruang nama untuk konfigurasi
Anda dapat menggunakan file konfigurasi untuk mengatur opsi konfigurasi dan melakukan tugas-tugas konfigurasi instans lain selama deployment. Opsi konfigurasi dapat berupa platform khusus atau berlaku untuk semua platform di layanan Elastic Beanstalk secara keseluruhan. Opsi konfigurasi diatur ke dalam ruang nama.
Ruang nama berikut mengonfigurasi layanan proxy dan opsi khusus PHP Anda:
-
aws:elasticbeanstalk:environment:proxy:staticfiles— mengkonfigurasi proxy lingkungan untuk melayani file statis. Anda menentukan pemetaan jalur virtual ke direktori aplikasi.
-
aws:elasticbeanstalk:environment:proxy— tentukan server proxy lingkungan.
-
aws:elasticbeanstalk:container:php:phpini— konfigurasikan opsi khusus PHP. Namespace ini termasuk
composer_options
, yang tidak tersedia di konsol Elastic Beanstalk. Opsi ini menetapkan opsi kustom untuk digunakan saat menginstal dependensi menggunakan Komposer melalui perintah.composer.phar install
Untuk informasi selengkapnya tentang perintah ini, termasuk opsi yang tersedia, lihat menginstaldi situs getcomposer.org.
Contoh berikut file konfigurasi menentukan opsi file statis yang memetakan sebuah direktori bernama staticimages
ke jalur /images
, dan menampilkan pengaturan untuk masing-masing opsi yang tersedia di namespace aws:elasticbeanstalk:container:php:phpini
:
contoh .ebextensions/php-settings.config
option_settings:
aws:elasticbeanstalk:environment:proxy:
ProxyServer: apache
aws:elasticbeanstalk:environment:proxy:staticfiles:
/images: staticimages
aws:elasticbeanstalk:container:php:phpini:
document_root: /public
memory_limit: 128M
zlib.output_compression: "Off"
allow_url_fopen: "On"
display_errors: "Off"
max_execution_time: 60
composer_options: vendor/package
catatan
Namespace aws:elasticbeanstalk:environment:proxy:staticfiles
tidak ditegaskan pada cabang platform Amazon Linux AMI PHP (Amazon Linux 2 yang terdahulu).
Elastic Beanstalk memberikan banyak opsi konfigurasi untuk menyesuaikan lingkungan Anda. Selain file konfigurasi, Anda juga dapat mengatur opsi konfigurasi menggunakan konsol tersebut, konfigurasi tersimpan, EB CLI, atau AWS CLI. Untuk informasi selengkapnya, lihat Opsi konfigurasi.
Menginstal dependensi aplikasi PHP Elastic Beanstalk Anda
Topik ini menjelaskan cara mengkonfigurasi aplikasi Anda untuk menginstal paket PHP lain yang diperlukan. Aplikasi Anda mungkin memiliki dependensi pada paket PHP lainnya. Anda dapat mengonfigurasi aplikasi Anda untuk menginstal dependensi ini pada instans Amazon Elastic Compute Cloud (Amazon EC2) lingkungan. Atau, Anda dapat menyertakan dependensi aplikasi Anda dalam paket sumber dan men-deploy mereka dengan aplikasi. Bagian berikut membahas kedua cara tersebut.
Gunakan file Composer untuk menginstal dependensi pada instans
Gunakan composer.json
file di root sumber proyek Anda untuk menggunakan komposer untuk menginstal paket yang diperlukan aplikasi Anda pada EC2 instance Amazon lingkungan Anda.
contoh composer.json
{
"require": {
"monolog/monolog": "1.0.*"
}
}
Saat file composer.json
ada, Elastic Beanstalk menjalankan composer.phar install
untuk menginstal dependensi. Anda dapat menambahkan opsi untuk ditambahkan ke perintah dengan mengatur opsi composer_options dalam namespace aws:elasticbeanstalk:container:php:phpini
.
Sertakan dependensi dalam paket sumber
Jika aplikasi Anda memiliki dependensi dalam jumlah yang banyak, menginstalnya mungkin perlu waktu lama. Hal ini dapat meningkatkan operasi penskalaan dan deployment, karena dependensi diinstal pada setiap instans baru.
Untuk menghindari dampak negatif pada waktu deployment, gunakan Composer di lingkungan pengembangan Anda untuk menetapkan dependensi dan menginstalnya ke folder vendor
.
Untuk menyertakan dependensi dalam paket sumber aplikasi Anda
-
Jalankan perintah berikut:
%
composer install -
Sertakan folder
vendor
yang dihasilkan di dalam akar paket sumber aplikasi Anda.
Ketika Elastic Beanstalk menemukan folder vendor
pada instans, file composer.json
akan diabaikan (meskipun ada). Aplikasi Anda kemudian menggunakan dependensi dari folder vendor
.
Memperbarui Komposer pada Elastic Beanstalk
Topik ini menjelaskan cara mengkonfigurasi Elastic Beanstalk agar Composer tetap up to date. Anda mungkin harus memperbarui Composer jika Anda melihat kesalahan ketika Anda mencoba untuk menginstal paket dengan file Composer, atau jika Anda tidak dapat menggunakan versi platform terbaru. Di antara pembaruan platform, Anda dapat memperbarui Composer di instance lingkungan Anda melalui penggunaan file konfigurasi di folder Anda .ebextensions.
Anda dapat memperbarui sendiri Komposer dengan konfigurasi berikut.
commands:
01updateComposer:
command: /usr/bin/composer.phar self-update 2.7.0
Pengaturan opsi berikut menetapkan variabel COMPOSER_HOME
lingkungan, yang mengkonfigurasi lokasi cache Komposer.
option_settings:
- namespace: aws:elasticbeanstalk:application:environment
option_name: COMPOSER_HOME
value: /home/webapp/composer-home
Anda dapat menggabungkan keduanya dalam file konfigurasi yang sama di .ebextensions
folder Anda.
contoh .ebextensions/composer.config
commands:
01updateComposer:
command: /usr/bin/composer.phar self-update 2.7.0
option_settings:
- namespace: aws:elasticbeanstalk:application:environment
option_name: COMPOSER_HOME
value: /home/webapp/composer-home
catatan
Karena pembaruan instalasi Komposer pada rilis platform 22 Februari 2024, AL2 023 dan rilis platform 28 Februari 2024, AL2 pembaruan mandiri Komposer mungkin gagal jika disetel saat pembaruan mandiri COMPOSER_HOME
dijalankan.
Perintah gabungan berikut akan gagal dijalankan: export COMPOSER_HOME=/home/webapp/composer-home && /usr/bin/composer.phar
self-update 2.7.0
Namun, contoh sebelumnya akan berhasil. Pada contoh sebelumnya, pengaturan opsi untuk tidak COMPOSER_HOME
akan diteruskan ke 01updateComposer
eksekusi, dan itu tidak akan diatur ketika perintah pembaruan mandiri dijalankan.
penting
Jika Anda menghilangkan nomor versi dari perintah composer.phar self-update
, Composer akan memperbarui ke versi terbaru yang tersedia setiap kali Anda men-deploy kode sumber, dan ketika instans baru disediakan oleh Auto Scaling. Hal ini dapat menyebabkan operasi penskalaan dan deployment gagal jika versi Composer yang dirilis tidak kompatibel dengan aplikasi Anda.
Untuk informasi lebih lanjut tentang Platform PHP Elastic Beanstalk, termasuk versi Composer, lihat versi platform PHP dalam dokumen Platform AWS Elastic Beanstalk .
Memperluas php.ini dalam konfigurasi Elastic Beanstalk Anda
Gunakan file konfigurasi dengan blok files
untuk menambahkan file .ini
ke /etc/php.d/
pada instans di lingkungan Anda. File konfigurasi utama, php.ini
, menarik pengaturan dari file pada folder ini dalam urutan abjad. Banyak ekstensi diaktifkan secara default oleh file dalam folder ini.
contoh .ebextensions/mongo.config
files:
"/etc/php.d/99mongo.ini":
mode: "000755"
owner: root
group: root
content: |
extension=mongo.so