Dalam sistem Linux RHEL 8 / CentOS 8, cara pengorganisasian perangkat lunak telah berubah:paket-paket penting sekarang terdapat dalam BaseOs
repositori, sedangkan AppStream
satu berisi beberapa versi dari beberapa aplikasi dan bahasa pemrograman yang paling umum digunakan yang diatur dalam modul, dan diperbarui secara independen dari siklus rilis distribusi. Strategi ini telah diadopsi untuk menghindari masalah terjebak dengan rilis perangkat lunak tertentu yang terlalu usang atau terlalu baru.
Dalam tutorial ini Anda akan mempelajari:
- Cara menginstal PHP di RHEL 8 / CentOS 8
- Apa yang dimaksud dengan modul perangkat lunak di RHEL 8 / CentOS 8
- Cara menginstal dan beralih di antara versi modul PHP yang berbeda
Persyaratan dan Konvensi Perangkat Lunak yang Digunakan
Kategori | Persyaratan, Konvensi, atau Versi Perangkat Lunak yang Digunakan |
---|---|
Sistem | RHEL 8 / CentOS 8 |
Perangkat Lunak | Tidak diperlukan software tambahan untuk mengikuti tutorial ini |
Lainnya | Izin untuk menjalankan perintah dengan hak akses root. |
Konvensi | # – membutuhkan perintah linux yang diberikan untuk dieksekusi dengan hak akses root baik secara langsung sebagai pengguna root atau dengan menggunakan sudo perintah$ – membutuhkan perintah linux yang diberikan untuk dieksekusi sebagai pengguna biasa yang tidak memiliki hak istimewa |
Apa itu PHP?
PHP (PHP:Hypertext Preprocessor) tidak memerlukan banyak presentasi:bahasa pemrograman tujuan umum ini awalnya dibuat pada tahun 1994 oleh Rasmus Lerdorf dan dirilis di bawah lisensi PHP, sebagai perangkat lunak sumber terbuka. Bidang aplikasi utamanya adalah web, tetapi bahasanya dapat digunakan dalam konteks lain. RHEL 8 / CentOS 8 hadir dengan dua repositori utama yang diaktifkan:BaseOs
dan AppStream
.
Yang pertama berisi paket
inti dari distribusi yang mengikuti siklus hidup dari distribusi itu sendiri; yang kedua berisi versi berbeda dari beberapa aplikasi ruang pengguna, yang diperbarui secara independen dari distribusi utama. Perangkat lunak yang terkandung dalam yang terakhir diatur dalam modules
. Setiap modul menyediakan versi aplikasi yang berbeda yang memungkinkan untuk beralih di antara yang tersedia (tetapi tidak untuk menginstalnya secara bersamaan). Dalam tutorial ini kita akan melihat betapa mudahnya menginstal PHP dan beralih di antara berbagai versi bahasa ini pada distribusi RHEL 8 / CentOS 8.
Versi PHP apa?
Sementara versi 5.6 PHP sekarang secara resmi mati (mencapai EOL pada 1 Jan 2019), tiga cabang bahasa pemrograman saat ini dipertahankan:7.1
, yang sebenarnya hanya menerima perbaikan keamanan dan akan ditambal hingga 1 Des 2019, dan versi 7.2
dan 7.3
, yang akan didukung masing-masing hingga 30 Nov 2020 dan 6 Des 2021.
Versi PHP disediakan secara default di RHEL 8 / CentOS 8, dari AppStream
repositori adalah 7.2.11
, karena kami dapat memverifikasi dengan menjalankan dnf info php
perintah, yang mengembalikan output berikut:
Available Packages Name : php Version : 7.2.11 Release : 1.el8+2002+9409c40c Arch : x86_64 Size : 1.5 M Source : php-7.2.11-1.el8+2002+9409c40c.src.rpm Repo : rhel-8-for-x86_64-appstream-beta-rpms Summary : PHP scripting language for creating dynamic web sites URL : http://www.php.net/ License : PHP and Zend and BSD and MIT and ASL 1.0 Description : PHP is an HTML-embedded scripting language. PHP attempts to make it : easy for developers to write dynamically generated web pages. PHP also : offers built-in database integration for several commercial and : non-commercial database management systems, so writing a : database-enabled webpage with PHP is fairly simple. The most common : use of PHP coding is probably as a replacement for CGI scripts. : : The php package contains the module (often referred to as mod_php) : which adds support for the PHP language to Apache HTTP Server.
Apakah ada versi PHP lain yang tersedia di AppStream
gudang?. Untuk menjawab pertanyaan ini, kita dapat menjalankan sub-perintah khusus dari dnf, modules
, dan menanyakan informasi tentang modul PHP, dengan menggunakan list
tindakan:
$ sudo dnf module list php Red Hat Enterprise Linux 8 for x86_64 - AppStream Beta (RPMs) Name Stream Profiles Summary php 7.1 devel, minimal, default [d] PHP scripting language php 7.2 [d] devel, minimal, default [d] PHP scripting language Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
Saat menjalankan dnf module list
perintah, secara default, semua modul yang tersedia akan ditampilkan. Untuk membatasi kueri hanya ke modul tertentu, kami memberikan nama modul ke perintah. Dalam hal ini kita dapat melihat bahwa ada dua aliran untuk modul PHP, meliputi versi 7.1
dan 7.2
bahasa dan perpustakaan terkait. Seperti yang kita lihat, versi terakhir adalah yang terinstal secara default:dalam output dari perintah yang kita jalankan di atas, ini disorot oleh penggunaan [d]
tandai di kolom kedua, yang, sebagaimana ditentukan dalam legenda, adalah singkatan dari default
.
Bagian lain yang menarik dari output adalah Profiles
kolom, tempat profil yang tersedia untuk streaming dilaporkan. Beberapa profil dapat diinstal secara bersamaan dan masing-masing dari mereka memahami kumpulan paket yang berbeda. [d]
notasi juga digunakan di sini untuk menandai profil default yang dipilih saat memasang aliran.
Untuk menginstal paket aliran tertentu dari modul perangkat lunak, kita harus menggunakan name:stream/profile
notasi. Misalnya, untuk menginstal versi 7.1
dari PHP, kita dapat menjalankan:
$ sudo dnf module install php:7.1/default
Dalam hal ini kita bisa menghilangkan nama profil, karena default
digunakan secara otomatis jika yang lain tidak ditentukan. Jika kita menggunakan perintah yang sama dengan yang kita jalankan di atas, sekarang kita dapat melihat bahwa 7.1
aliran ditandai dengan [e]
, yang berarti diaktifkan, dan default
profil aliran ditandai dengan [i]
, yang menunjukkan bahwa profil aliran telah diinstal:
$ sudo dnf module list php Red Hat Enterprise Linux 8 for x86_64 - AppStream Beta (RPMs) Name Stream Profiles Summary php 7.1 [e] devel, minimal, default [d] [i] PHP scripting language php 7.2 [d] devel, minimal, default [d] PHP scripting language
Jika kita telah menginstal aliran dan ingin beralih ke aliran lain yang tersedia, kita cukup menginstal yang terakhir:paket akan ditingkatkan atau diturunkan secara otomatis, tergantung pada situasinya. Untuk beralih ke 7.2
streaming, misalnya, kita akan menjalankan:
$ sudo dnf module install php:7.2/default ======================================================================================================================================================= Package Arch Version Repository Size ======================================================================================================================================================= Upgrading: php-common x86_64 7.2.11-1.el8+2002+9409c40c rhel-8-for-x86_64-appstream-beta-rpms 653 k php-mbstring x86_64 7.2.11-1.el8+2002+9409c40c rhel-8-for-x86_64-appstream-beta-rpms 580 k php-xml x86_64 7.2.11-1.el8+2002+9409c40c rhel-8-for-x86_64-appstream-beta-rpms 188 k php-fpm x86_64 7.2.11-1.el8+2002+9409c40c rhel-8-for-x86_64-appstream-beta-rpms 1.6 M php-json x86_64 7.2.11-1.el8+2002+9409c40c rhel-8-for-x86_64-appstream-beta-rpms 73 k php-cli x86_64 7.2.11-1.el8+2002+9409c40c rhel-8-for-x86_64-appstream-beta-rpms 3.1 M Switching module streams: php 7.1 -> 7.2 Transaction Summary ======================================================================================================================================================= Upgrade 6 Packages Total download size: 6.2 M Is this ok [y/N]: y
Demikian pula, jika kita ingin menghapus aliran modul tertentu, kita dapat menggunakan remove
tindakan alih-alih yang "instal". Ini menyebabkan aliran dihapus:jika kami menentukan profil, hanya paket milik profil itu yang dihapus, jika tidak, semua profil aliran tertarik dengan tindakan tersebut. Misalnya, untuk menghapus instalasi semua paket milik semua profil 7.2
streaming, kita cukup menjalankan:
$ sudo dnf module remove php:7.2
Untuk menghapus hanya paket yang terkait dengan devel
profil aliran yang sama, sebagai gantinya, kami akan menjalankan:
$ sudo dnf module remove php:7.2/devel
Kesimpulan
Rilis baru Red Hat Enterprise Linux, hadir dengan perubahan cara perangkat lunak diatur. BaseOs
repositori berisi paket-paket yang mewakili inti distribusi, dan mengikuti siklus rilisnya, AppStream
satu sebagai gantinya, berisi perangkat lunak ruang pengguna yang diatur dalam modul yang menyediakan versi berbeda, atau "aliran" yang tersedia untuk diinstal:PHP juga disediakan dengan cara ini.
Versi PHP yang tersedia secara
default di RHEL 8 / CentOS 8 adalah 7.1.20
dan 7.2.11
. Anda dapat menginstal versi bahasa pemrograman lain dari repositori eksternal, seperti Remi, tetapi saya sarankan untuk tetap menggunakan sumber perangkat lunak default jika tidak benar-benar diperlukan untuk melakukan sebaliknya.