PHP7 có sẵn và được hỗ trợ trên OL7. Kênh phân phối YUM phải được bật theo cách thủ công để các gói RPM khả dụng
1. Chỉnh sửa /etc/yum. repo. d/public-yum-ol7. repo và đảm bảo rằng bạn đã bật repo “ol7_software_collections”
Bạn có thích PHP không? . Đây là một bản chụp nhanh về những gì chúng ta sẽ xem xét trong bài viết này. PHP8 trên phiên bản A1 [Arm] OCI chạy Oracle Linux 8
Oracle Linux có sẵn PHP dưới dạng RPM dễ cài đặt [sudo dnf install php]. Hãy nhìn vào nó
$ dnf info php
Last metadata expiration check: 6:04:47 ago on Tue 03 May 2022 02:19:09 PM GMT.
Available Packages
Name : php
Version : 7.2.24
Release : 1.module+el8.2.0+5510+6771133c
Architecture : aarch64
Size : 1.4 M
Source : php-7.2.24-1.module+el8.2.0+5510+6771133c.src.rpm
Repository : ol8_appstream
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.
Điều này tốt nếu bạn muốn sử dụng PHP7, nhưng với PHP8 là bản phát hành chính mới nhất, đôi khi có thể cần đến PHP8. Nếu bạn đang sử dụng phiên bản dựa trên x86_64 [hay còn gọi là amd64], Remirepo có RPM được tạo sẵn giúp bạn dễ dàng cài đặt PHP8. Có một nhược điểm - remirepo không có RPM arm64 [còn gọi là aarch64]
Có một số tùy chọn để chạy PHP8 trên arm64 [và OL8]
- Cài đặt bằng RPM dựng sẵn
- Biên dịch từ nguồn
Tùy chọn 1 nghe có vẻ là một ý tưởng tuyệt vời, ngoại trừ việc không có nguồn đáng tin cậy, nổi tiếng nào cho RPM dựng sẵn [ít nhất là tôi biết tại thời điểm viết bài này]. Đến một nhà cung cấp RPM bên thứ ba không đáng tin cậy có thể đáng sợ và thường không phải là một ý kiến hay. Hiện tại, điều này loại trừ tùy chọn này
Tùy chọn 2 - Biên dịch từ nguồnChúng tôi còn lại với việc biên dịch PHP8 từ nguồn. Đây không phải là khủng khiếp. Nó đơn giản là phức tạp hơn và chậm hơn một chút so với lộ trình RPM dựng sẵn. Đây là "con đường dễ dàng" để làm việc này
Bạn cần tự hỏi mình có cần Apache hay không. Đối với nhiều ứng dụng PHP, chúng dựa trên web và yêu cầu máy chủ web. Apache chỉ là một máy chủ web có thể được sử dụng [những gì tôi đang chọn trong bài viết này]. Thoải mái thích nghi với nhu cầu cụ thể của bạn
Tài liệu PHP có hướng dẫn dựa trên. Bắt đầu bằng cách cài đặt Apache
sudo dnf install -y httpd httpd-devel
sudo systemctl start httpd
Bây giờ hãy mở [các] cổng/giao thức cần thiết
sudo firewall-cmd --zone=public --add-port=80/tcp
sudo systemctl restart firewalld
Lưu ý rằng bạn có thể sẽ cần mở các cổng khác nhau. TCP/80 thường được sử dụng cho HTTP không được mã hóa [mà bạn thực sự không muốn sử dụng cho bất kỳ thứ gì nằm ngoài kiểm soát, thử nghiệm đơn giản, nếu có]
Nhận URL tải xuống PHP mới nhất từ https. //www. php. net/downloads và sử dụng nó thay cho URL mà tôi đã cung cấp bên dưới [để đảm bảo bạn nhận được phiên bản mới nhất và tốt nhất mà bạn cần]
wget //www.php.net/distributions/php-8.1.4.tar.gz
tar -xzvf php-8.1.4.tar.gz
cd php-8.1.4
Rõ ràng là khi URL PHP thay đổi, tên tệp cũng vậy. Số dặm của bạn có thể thay đổi — đảm bảo tham chiếu đúng URL và tên tệp [vì bài viết này sẽ trở nên lỗi thời]
Tiếp theo, hãy cài đặt hàng loạt công cụ phát triển mà chúng ta sẽ cần biên dịch từ nguồn
sudo dnf group install -y "Development Tools"
sudo dnf install -y re2c bison autoconf make libtool ccache libxml2-devel sqlite-devel libxml2 sqlite sqlite-devel
Điều này sẽ cài đặt rất nhiều gói. Điều này có thể được cắt bớt đi một chút, nhưng trừ khi bạn thực sự eo hẹp về dung lượng lưu trữ và/hoặc có kết nối Internet quá tệ, thì đây không phải là vấn đề
Bây giờ chúng tôi đã sẵn sàng để biên dịch và cài đặt
./buildconf
./configure --with-apxs2=$[which apxs] --enable-opcache
make -j1 [should match number of cores - get via nproc]
make TEST_PHP_ARGS=-j4 test [set -j to # cores]
sudo make install
Tại thời điểm này, chúng tôi đã cài đặt PHP, nhưng Apache không biết. Đã đến lúc nói với Apache cách xử lý. tập tin php. Chỉnh sửa [hoặc tạo] tệp /etc/httpd/conf. mô-đun. d/00-php. conf [bạn sẽ cần sudo để làm điều này — đại loại như sudo nano /etc/httpd/conf. mô-đun. d/00-php. conf hoặc tương tự] và đặt các nội dung sau vào đó
/etc/httpd/conf. mô-đun. d/00-php. conf
SetHandler application/x-httpd-php
Tiếp theo Apache cần được khởi động lại
sudo systemctl restart httpd
Đã đến lúc kiểm tra mọi thứ và đảm bảo rằng nó đang hoạt động. Để thực hiện việc này, hãy tạo một tệp mới tại /var/www/html/index. php và đặt các nội dung sau vào đó
/var/www/html/chỉ mục. php
________số 8Trước khi bạn nói điều đó… tôi biết. HTML ở trên thật tệ và không đầy đủ [không có thẻ đầu, v.v. ]. Mặc dù nó ngắn nhưng nó hiển thị tốt trong trình duyệt
To see it in action, go to your web browser and look at ///index.php. It’s not fancy, but it does show us that PHP is working well with Apache [rendering the “Hello world!” text on the screen].
Điều gì sẽ xảy ra nếu bạn chỉ cần PHP mà không cần Apache? . Đó là những gì chúng ta đang nói về tiếp theo…
Không có ApacheBắt đầu bằng cách lấy URL tải xuống PHP mới nhất từ https. //www. php. net/downloads và sử dụng nó thay cho URL bên dưới [để đảm bảo bạn nhận được phiên bản mới nhất và tốt nhất mà bạn cần]
wget //www.php.net/distributions/php-8.1.4.tar.gz
tar -xzvf php-8.1.4.tar.gz
cd php-8.1.4
Cũng giống như cài đặt Apache, bạn sẽ cần sử dụng đúng tên tệp và URL [mới hơn]
Tiếp tục bằng cách cài đặt nhiều công cụ phát triển cần thiết để biên dịch từ nguồn
sudo dnf group install -y "Development Tools"
sudo dnf install -y re2c bison autoconf make libtool ccache libxml2-devel sqlite-devel libxml2 sqlite sqlite-devel
Đây là cách làm “lười biếng”. Gcc và bạn bè [và các trình biên dịch cần thiết khác] có thể được cài đặt riêng lẻ, có thể tiết kiệm một chút thời gian, dung lượng lưu trữ và băng thông. Nhưng vì dung lượng lưu trữ và băng thông tương đối rẻ và có tính sẵn sàng cao, tôi sẽ chọn con đường dễ dàng/lười biếng
Hãy biên dịch và cài đặt PHP
sudo dnf install -y httpd httpd-devel
sudo systemctl start httpd
1thì đấy. chúng tôi có thành công. PHP đã được cài đặt và sẵn sàng cho niềm vui viết kịch bản của bạn
như một thùng chứaĐôi khi chúng tôi muốn triển khai ứng dụng PHP8 trong vùng chứa. Đây là một Dockerfile mà bạn có thể thấy hữu ích [một lần nữa, hãy đảm bảo cập nhật URL và tên tệp mới nhất]
sudo dnf install -y httpd httpd-devel
sudo systemctl start httpd
2Lưu ý cách sử dụng đối số bản dựng TARGETPLATFORM. Điều này cho phép bạn dễ dàng xây dựng vùng chứa cho một kiến trúc khác. Giả sử bạn đang sử dụng hệ thống AMD64 [còn gọi là x86_64] và muốn tạo hình ảnh bộ chứa cho arm64 [còn gọi là aarch64]. Điều này có thể được thực hiện với
sudo dnf install -y httpd httpd-devel
sudo systemctl start httpd
3Làm thế nào là mát mẻ đó?. Vâng, tôi cũng thích nó
Phần kết luậnVâng, chúng tôi đã có một cuộc hành trình nhỏ tốt đẹp. Giờ đây, chúng tôi có một cách để dễ dàng chạy các phiên bản OCI PHP8 trên Arm [A1] chạy Oracle Linux 8. Có các giải pháp cho cả khối lượng công việc phiên bản và vùng chứa nghĩa là chúng tôi có thể linh hoạt xử lý bất cứ điều gì xảy ra theo cách của mình. Giữ cho các bit trôi chảy cho đến lần tiếp theo…