PHP là một ngôn ngữ lập trình mã nguồn mở được nhúng trong HTML. Nó chủ yếu được sử dụng để tạo các trang web động như blog, trang thương mại điện tử, v.v. Rasmus Lerdorf đã tạo ra nó vào năm 1994
CentOS 8 / RHEL 8 đi kèm với PHP v7. 2 theo mặc định
Trong bài đăng này, chúng ta sẽ xem cách cài đặt PHP 8. 0 trên CentOS 8 / RHEL 8
Thêm kho lưu trữ Remi
Remi, kho lưu trữ của bên thứ ba cung cấp nhiều phiên bản PHP [8. 0 / 7. 4 / 7. 3 / 7. 2] cho Red Hat Enterprise Linux
Kho lưu trữ Remi yêu cầu kho lưu trữ EPEL được kích hoạt trên hệ thống. Vì vậy, hãy cài đặt rpm cấu hình tự động kho lưu trữ EPEL mới nhất trên hệ thống để kích hoạt kho lưu trữ EPEL
Trong các hệ thống RHEL 8 / CentOS 8 Linux, cách tổ chức phần mềm đã thay đổi. các gói quan trọng hiện được chứa trong kho lưu trữ BaseOs
, trong khi kho lưu trữ AppStream
chứa nhiều phiên bản của một số ứng dụng và ngôn ngữ lập trình được sử dụng phổ biến nhất được tổ chức thành các mô-đun và được cập nhật độc lập với chu kỳ phát hành phân phối. Chiến lược này đã được áp dụng để tránh vấn đề bị mắc kẹt với một bản phát hành nhất định, quá lỗi thời hoặc quá mới của một phần mềm nhất định
Trong hướng dẫn này, bạn sẽ học
- Cách cài đặt PHP trên RHEL 8 / CentOS 8
- Các mô-đun phần mềm trong RHEL 8 / CentOS 8 là gì
- Cách cài đặt và chuyển đổi giữa các phiên bản khác nhau của mô-đun PHP
Các mô-đun php có sẵn trên RHEL 8
Yêu cầu phần mềm và quy ước được sử dụng
Yêu cầu phần mềm và Quy ước dòng lệnh Linux Danh mục Yêu cầu, Quy ước hoặc Phiên bản phần mềm được sử dụng Hệ thống RHEL 8 / Phần mềm CentOS 8Không cần phần mềm bổ sung để làm theo hướng dẫn này KhácQuyền chạy lệnh với quyền root. Quy ước # - yêu cầu các lệnh linux đã cho phải được thực thi với quyền root trực tiếp với tư cách là người dùng root hoặc bằng cách sử dụng lệnhsudo
$ - yêu cầu các lệnh linux đã cho được thực thi như một người dùng không có đặc quyền thông thường
PHP là gì?
PHP [PHP. Hypertext Preprocessor] không cần nhiều bản trình bày. ngôn ngữ lập trình có mục đích chung này ban đầu được tạo ra vào năm 1994 bởi Rasmus Lerdorf và nó được phát hành theo giấy phép PHP, dưới dạng phần mềm nguồn mở. Lĩnh vực ứng dụng chính của nó là web, nhưng ngôn ngữ này có thể được sử dụng trong các ngữ cảnh khác. RHEL 8 / CentOS 8 đi kèm với hai kho lưu trữ chính được kích hoạt. BaseOs
và AppStream
Cái đầu tiên chứa lõi
các gói của bản phân phối tuân theo vòng đời của chính bản phân phối đó; . Phần mềm chứa trong phần sau được sắp xếp theo
$ 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]nstalled2. Mỗi mô-đun cung cấp các phiên bản khác nhau của một ứng dụng giúp có thể chuyển đổi giữa các phiên bản có sẵn [nhưng không thể cài đặt chúng đồng thời]. Trong hướng dẫn này, chúng ta sẽ thấy việc cài đặt PHP và chuyển đổi giữa các phiên bản khác nhau của ngôn ngữ này trên các bản phân phối RHEL 8 / CentOS 8 dễ dàng như thế nào
Phiên bản PHP nào?
Trong khi 5. 6 của PHP hiện đã chính thức bị khai tử [nó đã đạt đến EOL vào ngày 1 tháng 1 năm 2019], ba nhánh của ngôn ngữ lập trình hiện đang được duy trì.
$ 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]nstalled3, thực tế chỉ nhận được các bản sửa lỗi bảo mật và sẽ được vá cho đến ngày 1 tháng 12 năm 2019, và các phiên bản
$ 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]nstalled4 và
$ 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]nstalled5, sẽ được hỗ trợ tương ứng cho đến ngày 30 tháng 11 năm 2020 và ngày 6 tháng 12 năm 2021
Phiên bản PHP được cung cấp theo mặc định trong RHEL 8 / CentOS 8, từ kho lưu trữ AppStream
là
$ 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]nstalled7, vì chúng tôi có thể xác minh bằng cách chạy lệnh
$ 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]nstalled8, trả về kết quả sau
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 : //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.
Có các phiên bản PHP khác có sẵn trong kho lưu trữ AppStream
không?. Để trả lời câu hỏi này, chúng ta có thể chạy một lệnh con chuyên dụng của dnf,
$ sudo dnf module install php:7.1/default0 và hỏi thông tin về mô-đun PHP, bằng cách sử dụng hành động
$ sudo dnf module install php:7.1/default1
$ 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
Khi chạy lệnh
$ sudo dnf module install php:7.1/default2, theo mặc định, tất cả các mô-đun có sẵn sẽ được hiển thị. Để giới hạn truy vấn chỉ với một mô-đun cụ thể, chúng tôi cung cấp tên mô-đun cho lệnh. Trong trường hợp này, chúng ta có thể thấy rằng tồn tại hai luồng cho mô-đun PHP, bao gồm các phiên bản
$ 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]nstalled3 và
$ 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]nstalled4 của ngôn ngữ và các thư viện liên quan. Như chúng ta đã thấy, phiên bản sau là phiên bản được cài đặt theo mặc định. trong đầu ra của lệnh chúng tôi chạy ở trên, điều này được đánh dấu bằng cách sử dụng dấu
$ sudo dnf module install php:7.1/default5 trong cột thứ hai, như được chỉ định trong chú giải, là viết tắt của
$ sudo dnf module install php:7.1/default6
Một phần thú vị khác của đầu ra là cột
$ sudo dnf module install php:7.1/default7, nơi các cấu hình có sẵn cho luồng được báo cáo. Nhiều cấu hình có thể được cài đặt đồng thời và mỗi cấu hình hiểu một bộ gói khác nhau. Ký hiệu
$ sudo dnf module install php:7.1/default5 cũng được sử dụng ở đây để đánh dấu cấu hình mặc định được chọn khi cài đặt luồng
Để cài đặt gói của một luồng cụ thể của mô-đun phần mềm, chúng ta phải sử dụng ký hiệu
$ sudo dnf module install php:7.1/default9. Ví dụ, để cài đặt phiên bản
$ 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]nstalled3 của PHP, chúng ta có thể chạy
$ sudo dnf module install php:7.1/default
Trong trường hợp này, chúng tôi có thể bỏ qua tên hồ sơ, vì
$ sudo dnf module install php:7.1/default6 được sử dụng tự động nếu một tên khác không được chỉ định. Nếu chúng tôi sử dụng cùng một lệnh mà chúng tôi đã chạy ở trên, bây giờ chúng tôi có thể thấy rằng luồng
$ 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]nstalled3 được đánh dấu bằng
$ 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 language3, viết tắt của từ đã bật và cấu hình
$ sudo dnf module install php:7.1/default6 của luồng được đánh dấu bằng
$ 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 language5, cho biết rằng cấu hình của luồng đã được cài đặt
$ 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
Nếu chúng tôi đã cài đặt một luồng và chúng tôi muốn chuyển sang một luồng khác có sẵn, chúng tôi chỉ cần cài đặt luồng sau. các gói sẽ được nâng cấp hoặc hạ cấp tự động, tùy thuộc vào tình huống. Ví dụ: để chuyển sang luồng
$ 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]nstalled4, chúng tôi sẽ chạy
$ 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
Tương tự, nếu chúng tôi muốn xóa một luồng mô-đun cụ thể, chúng tôi có thể sử dụng hành động
$ 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 language7 thay vì hành động “cài đặt”. Điều này khiến một luồng bị xóa. nếu chúng tôi chỉ định một cấu hình, chỉ các gói thuộc cấu hình đó bị xóa, nếu không, tất cả các cấu hình của luồng đều được quan tâm bởi hành động. Ví dụ: để gỡ cài đặt tất cả các gói thuộc tất cả các cấu hình của luồng
$ 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]nstalled4, chúng tôi chỉ cần chạy
$ sudo dnf module remove php:7.2
Thay vào đó, để chỉ xóa các gói liên quan đến cấu hình
$ 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 language9 của cùng một luồng, chúng tôi sẽ chạy
$ sudo dnf module remove php:7.2/devel
kết luận
Bản phát hành mới của Red Hat Enterprise Linux, đi kèm với sự thay đổi trong cách tổ chức phần mềm. Kho lưu trữ BaseOs
chứa các gói đại diện cho cốt lõi của bản phân phối và tuân theo chu kỳ phát hành của nó, thay vào đó, kho lưu trữ AppStream
chứa phần mềm không gian người dùng được tổ chức trong các mô-đun cung cấp các phiên bản khác nhau hoặc “luồng” có sẵn để cài đặt. PHP cũng được cung cấp theo cách này