Selama konfigurasi awal server, salah satu langkah terpenting adalah penginstalan ekstensi PHP – yang diperlukan untuk sebagian besar CMS, termasuk WordPress, Magento, dan Laravel yang populer. Pada artikel ini, saya akan memberi tahu Anda skrip PHP mana yang harus diinstal dan bagaimana melakukannya melalui konsol. Kami akan menginstalnya di Ubuntu 20. 04, tetapi sintaks perintah yang dijelaskan di bawah ini dapat diadaptasi ke sistem Linux lainnya
Menginstal PHP7. 4 untuk Apache
Pengguna web server ini hanya perlu menjalankan dua perintah secara berurutan
sudo apt update sudo apt install php libapache2-mod-php sudo systemctl restart apache2PHP 7. 4 Panduan Instalasi untuk Nginx
Server web ini tidak mendukung pemrosesan PHP secara langsung, sehingga memerlukan FastCGI - pengelola proses PHP–FPM agar berfungsi. Melalui konsol kami masuk
sudo apt update sudo apt install php-fpm systemctl status php7.4-fpm _Cara menginstal ekstensi PHP di Linux
Modul paket ini adalah pustaka yang dikompilasi yang memperluas fungsi dasar PHP. Mereka sering dibutuhkan untuk programmer dan webmaster untuk bekerja, karena mereka membantu mengimplementasikan banyak fitur menarik. Untuk menginstal paket, gunakan perintah
sudo apt install php-[extname]- php-mysql — diperlukan saat bekerja dengan database, paling sering disatukan dengan paket bahasa utama;
- php-ctype — diperlukan jika terjadi kesalahan Fatal selama operasi. Panggil ke fungsi yang tidak terdefinisi ctype_digit() di /wp-admin/includes/file. php;
- php-dom — terkadang diperlukan saat bekerja dengan hosting Windows, tetapi paling sering tidak dibutuhkan;
- php-exif — diperlukan untuk bekerja dengan data meta foto;
- php-gd — digunakan saat memproses gambar, sering dibutuhkan;
- php-iconv — mengonversi string dari satu penyandian ke penyandian lainnya;
- php-json — Dukungan JSON;
- php-posix — digunakan di kelas WP_Filesystem_Direct
- php-mbstring — diperlukan, diperlukan untuk pemrosesan string;
- php-zip, php-zlib — berguna bagi mereka yang bekerja dengan arsip
Secara umum, daftar lengkap semua ekstensi PHP yang ada diperkirakan ratusan modul berbeda, yang sebagian besar sangat terspesialisasi dan digunakan oleh spesialis TI untuk mengoptimalkan tugas kerja.
Anda juga dapat menginstal ekstensi PHP melalui panel kontrol ISPmanager atau lainnya – di sana, di tab yang sesuai, Anda dapat mengunduh dan menginstal semua paket yang diperlukan tanpa konsol
Sedikit tentang PECL dan kesimpulannya
Saya juga harus menyebutkan repositori ekstensi asli untuk PHP yang ditulis dalam bahasa C. Mereka digunakan jika tidak mungkin menerapkan beberapa ide dalam PHP - misalnya, memuat ulang operator. Semua modul dalam repositori PECL dikembangkan sesuai ketat dengan standar pengkodean yang diadopsi oleh tim pengembangan PHP, sehingga kualitas pekerjaan mereka tidak boleh membuat Anda ragu.
Jika Anda masih memiliki pertanyaan tentang cara memasang dan menghubungkan ekstensi PHP ke server Anda, hubungi pakar kami melalui Livechat atau telepon. Kami akan menjawab semua pertanyaan Anda dalam kompetensi kami
Repositori ini berisi skrip yang dapat digunakan untuk menginstal ekstensi PHP dengan mudah di dalam image PHP Docker resmi
Skrip akan menginstal semua paket APT/APK yang diperlukan;
Gambar buruh pelabuhan yang didukung adalah semua versi Alpine/Debian, kecuali untuk PHP 5. 5 di mana kami hanya mendukung Debian 8 (jessie) (yaitu, FROM php:8.2-cli RUN curl -sSL //github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions -o - | sh -s \ gd \ gmp \ exif \ opcache4, FROM php:8.2-cli RUN curl -sSL //github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions -o - | sh -s \ gd \ gmp \ exif \ opcache5, FROM php:8.2-cli RUN curl -sSL //github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions -o - | sh -s \ gd \ gmp \ exif \ opcache6, FROM php:8.2-cli RUN curl -sSL //github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions -o - | sh -s \ gd \ gmp \ exif \ opcache7, FROM php:8.2-cli RUN curl -sSL //github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions -o - | sh -s \ gd \ gmp \ exif \ opcache8). Lihat juga catatan di bagian
Penggunaan
Anda memiliki dua cara untuk menggunakan skrip ini dalam FROM php:8.2-cli RUN curl -sSL //github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions -o - | sh -s \ gd \ gmp \ exif \ opcache9s Anda. Anda dapat mengunduh skrip dengan cepat, atau Anda dapat mengambilnya dari gambar FROM php:7.2-cli COPY --from=mlocati/php-extension-installer /usr/bin/install-php-extensions /usr/local/bin/ RUN install-php-extensions gd xdebug0 Docker Hub. Dengan metode pertama Anda yakin akan selalu mendapatkan skrip versi terbaru, dengan metode kedua prosesnya lebih cepat karena Anda akan menggunakan gambar lokal
Misalnya, berikut beberapa FROM php:8.2-cli RUN curl -sSL //github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions -o - | sh -s \ gd \ gmp \ exif \ opcache9 yang memasang ekstensi GD dan xdebug PHP
Mengunduh skrip dengan cepat
Dengan Dockerfile
FROM php:7.2-cli ADD //github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions /usr/local/bin/ RUN chmod +x /usr/local/bin/install-php-extensions && \ install-php-extensions gd xdebug
Dengan ikal
FROM php:7.2-cli RUN curl -sSLf \ -o /usr/local/bin/install-php-extensions \ //github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions && \ chmod +x /usr/local/bin/install-php-extensions && \ install-php-extensions gd xdebug
Dengan eksekusi langsung dari curl
FROM php:8.2-cli RUN curl -sSL //github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions -o - | sh -s \ gd \ gmp \ exif \ opcache
Menyalin skrip dari gambar Docker
FROM php:7.2-cli COPY --from=mlocati/php-extension-installer /usr/bin/install-php-extensions /usr/local/bin/ RUN install-php-extensions gd xdebug_
Alternatif yang tidak memperbesar ukuran gambar dengan alat tersebut
RUN --mount=type=bind,from=mlocati/php-extension-installer:1.5,source=/usr/bin/install-php-extensions,target=/usr/local/bin/install-php-extensions \ install-php-extensions pcntl
Peringatan . dengan menggunakan metode ini, Anda dapat menggunakan versi lama dari gambar FROM php:7.2-cli COPY --from=mlocati/php-extension-installer /usr/bin/install-php-extensions /usr/local/bin/ RUN install-php-extensions gd xdebug0.
Untuk memastikan instruksi FROM php:7.2-cli COPY --from=mlocati/php-extension-installer /usr/bin/install-php-extensions /usr/local/bin/ RUN install-php-extensions gd xdebug_3 menggunakan versi terbaru, Anda dapat menjalankannya
docker pull mlocati/php-extension-installer
Menginstal versi ekstensi tertentu
Cukup tambahkan FROM php:7.2-cli COPY --from=mlocati/php-extension-installer /usr/bin/install-php-extensions /usr/local/bin/ RUN install-php-extensions gd xdebug_4 ke nama modul. Sebagai contoh
install-php-extensions xdebug-2.9.7
Skrip juga mendukung penyelesaian versi yang kompatibel dengan mengawali versi dengan tanda sisipan (FROM php:7.2-cli COPY --from=mlocati/php-extension-installer /usr/bin/install-php-extensions /usr/local/bin/ RUN install-php-extensions gd xdebug5). Sebagai contoh
# Install the most recent xdebug 2.x version (for example 2.9.8) install-php-extensions xdebug-^2 # Install the most recent xdebug 2.8.x version (for example 2.8.1) install-php-extensions xdebug-^2.8
Ekstensi versi pra-rilis yang tersedia di FROM php:7.2-cli COPY --from=mlocati/php-extension-installer /usr/bin/install-php-extensions /usr/local/bin/ RUN install-php-extensions gd xdebug6 dapat disiapkan dengan menambahkan akhiran nama ekstensi dengan statusnya i. e. FROM php:7.2-cli COPY --from=mlocati/php-extension-installer /usr/bin/install-php-extensions /usr/local/bin/ RUN install-php-extensions gd xdebug7, FROM php:7.2-cli COPY --from=mlocati/php-extension-installer /usr/bin/install-php-extensions /usr/local/bin/ RUN install-php-extensions gd xdebug8, FROM php:7.2-cli COPY --from=mlocati/php-extension-installer /usr/bin/install-php-extensions /usr/local/bin/ RUN install-php-extensions gd xdebug9, RUN --mount=type=bind,from=mlocati/php-extension-installer:1.5,source=/usr/bin/install-php-extensions,target=/usr/local/bin/install-php-extensions \ install-php-extensions pcntl0, RUN --mount=type=bind,from=mlocati/php-extension-installer:1.5,source=/usr/bin/install-php-extensions,target=/usr/local/bin/install-php-extensions \ install-php-extensions pcntl1 atau RUN --mount=type=bind,from=mlocati/php-extension-installer:1.5,source=/usr/bin/install-php-extensions,target=/usr/local/bin/install-php-extensions \ install-php-extensions pcntl2. Sebagai contoh
install-php-extensions xdebug-beta
TIP. Ketika versi terbaru yang tersedia di FROM php:7.2-cli COPY --from=mlocati/php-extension-installer /usr/bin/install-php-extensions /usr/local/bin/ RUN install-php-extensions gd xdebug_6 tidak stabil, dan Anda ingin mempertahankan versi stabil terakhir, paksakan dengan membubuhkan nama ekstensi dengan status RUN --mount=type=bind,from=mlocati/php-extension-installer:1.5,source=/usr/bin/install-php-extensions,target=/usr/local/bin/install-php-extensions \ install-php-extensions pcntl4. Sebagai contoh
install-php-extensions mongodb-stable
Menginstal dari kode sumber
Anda juga dapat menginstal ekstensi PHP dari kode sumber (asalkan dilengkapi dengan file RUN --mount=type=bind,from=mlocati/php-extension-installer:1.5,source=/usr/bin/install-php-extensions,target=/usr/local/bin/install-php-extensions \ install-php-extensions pcntl5 atau RUN --mount=type=bind,from=mlocati/php-extension-installer:1.5,source=/usr/bin/install-php-extensions,target=/usr/local/bin/install-php-extensions \ install-php-extensions pcntl6)
Format yang diterima adalah
- Versi pendek untuk repositori yang dihosting di GitHub
Misalnya, untuk repositori GitHub php-memcached-dev/php-memcached, Anda cukup menulisFROM php:7.2-cli RUN curl -sSLf \ -o /usr/local/bin/install-php-extensions \ //github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions && \ chmod +x /usr/local/bin/install-php-extensions && \ install-php-extensions gd xdebug0
- URL yang menyediakan arsip yang berisi kode sumber
ContohFROM php:7.2-cli RUN curl -sSLf \ -o /usr/local/bin/install-php-extensions \ //github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions && \ chmod +x /usr/local/bin/install-php-extensions && \ install-php-extensions gd xdebug1
- Jalur absolut dari direktori lokal
ContohFROM php:7.2-cli RUN curl -sSLf \ -o /usr/local/bin/install-php-extensions \ //github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions && \ chmod +x /usr/local/bin/install-php-extensions && \ install-php-extensions gd xdebug2
Memasang komposer
Anda juga dapat menginstal komposer, dan Anda juga dapat menentukan versi utamanya, atau versi lengkapnya
Contoh
FROM php:7.2-cli RUN curl -sSLf \ -o /usr/local/bin/install-php-extensions \ //github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions && \ chmod +x /usr/local/bin/install-php-extensions && \ install-php-extensions gd xdebug3
Masalah dengan sertifikat Let's Encrypt
Sertifikat root CA dari Let's Encrypt berubah (detail lebih lanjut di sini)
Itu merusak distribusi linux lama, yaitu
- Debian Jessie (8)
- Peregangan Debian (9)
- Alpine Linux 3. 7
- Alpine Linux 3. 8
Skrip ini dapat memperbaiki masalah ini. cukup berikan RUN --mount=type=bind,from=mlocati/php-extension-installer:1.5,source=/usr/bin/install-php-extensions,target=/usr/local/bin/install-php-extensions \ install-php-extensions pcntl_7 sebagai argumen
FROM php:7.2-cli RUN curl -sSLf \ -o /usr/local/bin/install-php-extensions \ //github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions && \ chmod +x /usr/local/bin/install-php-extensions && \ install-php-extensions gd xdebug4
Ekstensi PHP yang didukung
EkstensiPHP 5. 5PHP 5. 6PHP 7. 0PHP 7. 1 PHP 7. 2 PHP 7. 3 PHP 7. 4PHP 8. 0PHP 8. 1 PHP 8. 2amqp✓✓✓✓✓✓✓✓✓apcu✓✓✓✓✓✓✓ pulaJumlah ekstensi yang didukung. 129
PS. ekstensi PHP pra-instal dikecualikan dari daftar ini. Anda dapat mencantumkannya dengan perintah berikut (ubah RUN --mount=type=bind,from=mlocati/php-extension-installer:1.5,source=/usr/bin/install-php-extensions,target=/usr/local/bin/install-php-extensions \ install-php-extensions pcntl8 untuk mencerminkan versi PHP yang Anda minati)
FROM php:7.2-cli RUN curl -sSLf \ -o /usr/local/bin/install-php-extensions \ //github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions && \ chmod +x /usr/local/bin/install-php-extensions && \ install-php-extensions gd xdebug5
Konfigurasi
Anda dapat mengonfigurasi perilaku skrip, serta menyempurnakan beberapa ekstensi agar sesuai dengan kebutuhan Anda, dengan menggunakan variabel lingkungan
Ini sebuah contoh
FROM php:7.2-cli RUN curl -sSLf \ -o /usr/local/bin/install-php-extensions \ //github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions && \ chmod +x /usr/local/bin/install-php-extensions && \ install-php-extensions gd xdebug6
Berikut daftar semua variabel lingkungan yang didukung
ExtensionVariabel lingkunganDeskripsiRUN --mount=type=bind,from=mlocati/php-extension-installer:1.5,source=/usr/bin/install-php-extensions,target=/usr/local/bin/install-php-extensions \ install-php-extensions pcntl9Secara default skrip akan menginstal dan mengaktifkan ekstensiJika Anda hanya ingin menginstalnya (tanpa mengaktifkannya), Anda dapat mengatur variabel lingkungan ini
Untuk mengaktifkan ekstensi di lain waktu Anda dapat menjalankan perintah docker pull mlocati/php-extension-installer0 (misalnya. docker pull mlocati/php-extension-installer_1)
Awas. menginstal beberapa ekstensi PHP mengharuskan ekstensi PHP lainnya sudah diaktifkan, jadi gunakan fitur ini dengan bijak. docker pull mlocati/php-extension-installer2Secara default skrip akan menghapus cache apt/apk/pear untuk menghemat ruang disk. Anda dapat menonaktifkannya dengan menyetel variabel lingkungan inilzfdocker pull mlocati/php-extension-installer3Secara default docker pull mlocati/php-extension-installer4 mengkompilasi ekstensi docker pull mlocati/php-extension-installer5 untuk memilih kecepatan daripada ukuran; . Secara default kelas docker pull mlocati/php-extension-installer_7 didefinisikan di root namespace. Anda dapat menggunakan variabel lingkungan ini untuk menentukan custom namespacegddocker pull mlocati/php-extension-installer8Sejak PHP 8. 1, gd mendukung format AVIF. Mengaktifkannya memerlukan kompilasi libaom/libdav1d/libyuv/libavif di Debian dan Alpine 3. 14-, yang memakan waktu. Anda dapat menonaktifkan dukungan AVIF dengan menyetel variabel lingkungan ini di Debian dan Alpine 3. 14-oci8 & pdo_ocidocker pull mlocati/php-extension-installer9Ekstensi PHP oci8 dan pdo_oci memerlukan Oracle Instant Client. Untuk menghemat ruang disk, kami menginstal versi Basic Lite. jika Anda ingin menginstal versi Basic (non-lite) cukup atur variabel lingkungan inihttp, intl, mongodbinstall-php-extensions xdebug-2.9.70Beberapa ekstensi memerlukan perpustakaan ICU, gunakan tanda ini untuk menginstal perpustakaan ICU yang lebih kecil, tetapi hanya dalam bahasa Inggris, di Alpine 3. 16 dan selanjutnyapspellinstall-php-extensions xdebug-2.9.71Konfigurasikan bahasa yang akan disediakan (misalnya. install-php-extensions xdebug-2.9.72). Jika dihilangkan, kita anggap ________20______3
Persyaratan khusus
Beberapa ekstensi memiliki persyaratan khusus
ExtensionRequirementsddtrace• Tidak tersedia di install-php-extensions xdebug-2.9.74 image docker• Tidak tersedia di install-php-extensions xdebug-2.9.7_5 image docker
• Tidak tersedia di install-php-extensions xdebug-2.9.76 docker imagesgeos• Tidak tersedia di install-php-extensions xdebug-2.9.74 docker images
• Tidak tersedia di install-php-extensions xdebug-2.9.7_5 image docker
• Tidak tersedia di install-php-extensions xdebug-2.9.7_9 image docker
• Tidak tersedia di # Install the most recent xdebug 2.x version (for example 2.9.8) install-php-extensions xdebug-^2 # Install the most recent xdebug 2.8.x version (for example 2.8.1) install-php-extensions xdebug-^2.80 image dockerlz4Tidak tersedia di install-php-extensions xdebug-2.9.76 image dockermemprof• Tidak tersedia di install-php-extensions xdebug-2.9.74 image docker
• Tidak tersedia di install-php-extensions xdebug-2.9.7_5 image docker
• Tidak tersedia di install-php-extensions xdebug-2.9.7_9 image docker
• Tidak tersedia di # Install the most recent xdebug 2.x version (for example 2.9.8) install-php-extensions xdebug-^2 # Install the most recent xdebug 2.8.x version (for example 2.8.1) install-php-extensions xdebug-^2.80 image docker
• Tidak tersedia di # Install the most recent xdebug 2.x version (for example 2.9.8) install-php-extensions xdebug-^2 # Install the most recent xdebug 2.8.x version (for example 2.8.1) install-php-extensions xdebug-^2.86 image docker
• Tidak tersedia di # Install the most recent xdebug 2.x version (for example 2.9.8) install-php-extensions xdebug-^2 # Install the most recent xdebug 2.8.x version (for example 2.8.1) install-php-extensions xdebug-^2.87 image docker
• Tidak tersedia di # Install the most recent xdebug 2.x version (for example 2.9.8) install-php-extensions xdebug-^2 # Install the most recent xdebug 2.8.x version (for example 2.8.1) install-php-extensions xdebug-^2.88 image docker
• Tidak tersedia di # Install the most recent xdebug 2.x version (for example 2.9.8) install-php-extensions xdebug-^2 # Install the most recent xdebug 2.8.x version (for example 2.8.1) install-php-extensions xdebug-^2.89 image docker
• Tidak tersedia di install-php-extensions xdebug-beta0 docker imagesparallelMembutuhkan image dengan PHP yang dikompilasi dengan thread-safety diaktifkan (install-php-extensions xdebug-beta1)parleTidak tersedia di install-php-extensions xdebug-2.9.76 docker imagespdo_sqlsrv• Tidak tersedia di install-php-extensions xdebug-2.9.74 docker images
• Tidak tersedia di install-php-extensions xdebug-2.9.7_5 image docker
• Tidak tersedia di arsitektur ARMspthreadsMemerlukan gambar dengan PHP yang dikompilasi dengan thread-safety diaktifkan (install-php-extensions xdebug-beta1)simdjson• Tidak tersedia di install-php-extensions xdebug-2.9.74 gambar buruh pelabuhan
• Tidak tersedia di install-php-extensions xdebug-2.9.7_5 image docker
• Tidak tersedia di install-php-extensions xdebug-2.9.7_6 image docker
• Tidak tersedia di install-php-extensions xdebug-beta9 docker imagesnatriumTidak tersedia di install-php-extensions xdebug-2.9.76 docker imagessqlsrv• Tidak tersedia di install-php-extensions xdebug-2.9.74 docker images
• Tidak tersedia di install-php-extensions xdebug-2.9.7_5 image docker
• Tidak tersedia di install-php-extensions mongodb-stable3 image docker
• Tidak tersedia di install-php-extensions mongodb-stable4 image docker
• Tidak tersedia di arsitektur ARMtensor• Tidak tersedia di install-php-extensions xdebug-beta0 image docker
• Tidak tersedia di install-php-extensions mongodb-stable6 docker imagesvips• Tidak tersedia di install-php-extensions xdebug-2.9.74 docker images
• Tidak tersedia di install-php-extensions xdebug-2.9.7_5 image docker
• Tidak tersedia di install-php-extensions xdebug-2.9.7_9 image docker
• Tidak tersedia di install-php-extensions xdebug-2.9.7_6 image docker
Bagaimana saya tahu distribusi Linux mana yang saya gunakan?
Anda dapat menjalankan perintah ini
FROM php:7.2-cli RUN curl -sSLf \ -o /usr/local/bin/install-php-extensions \ //github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions && \ chmod +x /usr/local/bin/install-php-extensions && \ install-php-extensions gd xdebug7
Sebagai contoh
- untuk Debian 11 (Bullseye) Anda akan melihat
FROM php:7.2-cli RUN curl -sSLf \ -o /usr/local/bin/install-php-extensions \ //github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions && \ chmod +x /usr/local/bin/install-php-extensions && \ install-php-extensions gd xdebug8
- untuk Alpine Linux 3. 14 Anda akan melihat
FROM php:7.2-cli RUN curl -sSLf \ -o /usr/local/bin/install-php-extensions \ //github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions && \ chmod +x /usr/local/bin/install-php-extensions && \ install-php-extensions gd xdebug_9
Tes
Saat mengirimkan permintaan penarikan, Tindakan GitHub dijalankan untuk memeriksa apakah ekstensi PHP yang terpengaruh benar-benar berfungsi (lihat di bawah)
Selain itu, kami juga memeriksa bahwa versi ekstensi baru di repositori PECL akan tetap berfungsi. Ini dilakukan secara terjadwal dengan Tindakan GitHub lainnya
Jika terjadi kegagalan, pesan dikirim ke Saluran Telegram
Jangan ragu untuk berlangganan untuk menerima pemberitahuan kegagalan
Bagaimana berkontribusi
Memformat kode
Sebelum mengirimkan permintaan penarikan apa pun, Anda harus menjalankan skrip FROM php:7.2-cli RUN curl -sSLf \ -o /usr/local/bin/install-php-extensions \ //github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions && \ chmod +x /usr/local/bin/install-php-extensions && \ install-php-extensions gd xdebug01 di direktori FROM php:7.2-cli RUN curl -sSLf \ -o /usr/local/bin/install-php-extensions \ //github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions && \ chmod +x /usr/local/bin/install-php-extensions && \ install-php-extensions gd xdebug02 (atau FROM php:7.2-cli RUN curl -sSLf \ -o /usr/local/bin/install-php-extensions \ //github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions && \ chmod +x /usr/local/bin/install-php-extensions && \ install-php-extensions gd xdebug03 di Windows)
Jika Anda tidak melakukannya, dan jika ada kesalahan gaya pengkodean, Anda akan melihat bahwa FROM php:7.2-cli RUN curl -sSLf \ -o /usr/local/bin/install-php-extensions \ //github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions && \ chmod +x /usr/local/bin/install-php-extensions && \ install-php-extensions gd xdebug04 dan/atau FROM php:7.2-cli RUN curl -sSLf \ -o /usr/local/bin/install-php-extensions \ //github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions && \ chmod +x /usr/local/bin/install-php-extensions && \ install-php-extensions gd xdebug05 Tindakan GitHub akan gagal
Errornya akan seperti ini
FROM php:8.2-cli RUN curl -sSL //github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions -o - | sh -s \ gd \ gmp \ exif \ opcache0
Jadi, Anda harus memperbaiki garis yang disorot (yang ada di FROM php:7.2-cli RUN curl -sSLf \ -o /usr/local/bin/install-php-extensions \ //github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions && \ chmod +x /usr/local/bin/install-php-extensions && \ install-php-extensions gd xdebug06) dengan mengganti apa yang Anda lihat setelah FROM php:7.2-cli RUN curl -sSLf \ -o /usr/local/bin/install-php-extensions \ //github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions && \ chmod +x /usr/local/bin/install-php-extensions && \ install-php-extensions gd xdebug07 dengan apa yang Anda lihat setelah FROM php:7.2-cli RUN curl -sSLf \ -o /usr/local/bin/install-php-extensions \ //github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions && \ chmod +x /usr/local/bin/install-php-extensions && \ install-php-extensions gd xdebug08
Menambahkan dukungan ke ekstensi PHP baru?
- ubah skrip docker pull mlocati/php-extension-installer_4
- perbarui file FROM php:7.2-cli RUN curl -sSLf \ -o /usr/local/bin/install-php-extensions \ //github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions && \ chmod +x /usr/local/bin/install-php-extensions && \ install-php-extensions gd xdebug_10, tambahkan baris baru dengan pegangan ekstensi dan daftar versi PHP yang didukung
- jika ekstensi membutuhkan gambar ZTS
tambahkan baris baru ke file FROM php:7.2-cli RUN curl -sSLf \ -o /usr/local/bin/install-php-extensions \ //github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions && \ chmod +x /usr/local/bin/install-php-extensions && \ install-php-extensions gd xdebug_11, dengan pegangan ekstensi diikuti dengan spasi dan install-php-extensions xdebug-beta1
Lihat permintaan tarik ini sebagai contoh
Mengubah versi PHP yang didukung untuk ekstensi PHP yang sudah didukung?
- ubah skrip docker pull mlocati/php-extension-installer_4
- perbarui file FROM php:7.2-cli RUN curl -sSLf \ -o /usr/local/bin/install-php-extensions \ //github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions && \ chmod +x /usr/local/bin/install-php-extensions && \ install-php-extensions gd xdebug_10, tambahkan versi PHP baru ke baris yang ada sesuai dengan ekstensi yang diperbarui
Lihat permintaan tarik ini sebagai contoh
Meningkatkan kode untuk ekstensi yang sudah didukung?
Jika Anda mengubah beberapa kode yang memengaruhi satu atau lebih ekstensi, harap tambahkan baris dengan FROM php:7.2-cli RUN curl -sSLf \ -o /usr/local/bin/install-php-extensions \ //github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions && \ chmod +x /usr/local/bin/install-php-extensions && \ install-php-extensions gd xdebug15 ke pesan salah satu pull request yang dilakukan. Dengan begitu, pekerjaan pengujian akan memeriksa ekstensi meskipun Anda tidak menyentuh file FROM php:7.2-cli RUN curl -sSLf \ -o /usr/local/bin/install-php-extensions \ //github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions && \ chmod +x /usr/local/bin/install-php-extensions && \ install-php-extensions gd xdebug10
Berikut adalah contoh pesan komit
FROM php:8.2-cli RUN curl -sSL //github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions -o - | sh -s \ gd \ gmp \ exif \ opcache1
Pengujian hanya memeriksa penginstalan satu ekstensi PHP dalam satu waktu. Jika Anda ingin menguji pemasangan lebih banyak ekstensi PHP secara bersamaan, gunakan pesan komit seperti ini
FROM php:8.2-cli RUN curl -sSL //github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions -o - | sh -s \ gd \ gmp \ exif \ opcache2
Jika pull request Anda berisi beberapa commit, kami akan mencentang "Test. " pesan dari setiap komit. Jika Anda ingin berhenti mengurai komit berikutnya, tambahkan FROM php:7.2-cli RUN curl -sSLf \ -o /usr/local/bin/install-php-extensions \ //github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions && \ chmod +x /usr/local/bin/install-php-extensions && \ install-php-extensions gd xdebug17 di "Test. "baris, misalnya
FROM php:8.2-cli RUN curl -sSL //github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions -o - | sh -s \ gd \ gmp \ exif \ opcache_3
Lihat permintaan tarik ini sebagai contoh
Persyaratan PHP dan opsi konfigurasi
Ekstensi PHP yang dipublikasikan di arsip PECL berisi file RUN --mount=type=bind,from=mlocati/php-extension-installer:1.5,source=/usr/bin/install-php-extensions,target=/usr/local/bin/install-php-extensions \ install-php-extensions pcntl5 (atau RUN --mount=type=bind,from=mlocati/php-extension-installer:1.5,source=/usr/bin/install-php-extensions,target=/usr/local/bin/install-php-extensions \ install-php-extensions pcntl6) yang menjelaskan versi PHP yang didukung dan opsi yang dapat digunakan untuk mengompilasinya. Saat kami menambahkan dukungan untuk ekstensi PHP baru, dan saat versi baru ekstensi PHP dirilis, kami harus memeriksa kendala tersebut
Ini tugas yang agak membosankan, jadi saya mengembangkan sebuah proyek yang memungkinkan Anda dengan mudah memeriksa kendala tersebut. Anda dapat menemukannya di https. //mlocati. github. io/pecl-info (di sini Anda dapat menemukan kode sumbernya)