Làm cách nào tôi có thể chạy nhiều phiên bản php trong Ubuntu?

Bạn muốn chạy nhiều dự án bằng các phiên bản PHP khác nhau?

Nội dung bài viết

điều kiện tiên quyết

Hãy cập nhật kho lưu trữ trước khi cài đặt PHP


$ sudo apt install software-properties-common ca-certificates lsb-release apt-transport-https 

$ LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php

$ sudo apt update

Các lệnh trên sẽ thêm Ondrej PPA, đây là PPA chính cho các phiên bản PHP được hỗ trợ với nhiều phần mở rộng PECL

Ngoài ra, hướng dẫn này chỉ hoạt động cho phiên bản Ubuntu sau

  • 22. 04
  • 21. 04
  • 20. 04
  • 18. 04

Cài đặt nhiều phiên bản PHP

Tại thời điểm viết bài này, các phiên bản gói PHP sau có sẵn để cài đặt

  • php5. 6
  • php7. 0
  • php7. 1
  • php7. 2
  • php7. 3
  • php7. 4
  • php8. 0
  • php8. 1

Để cài đặt các phiên bản PHP bạn chọn, chỉ cần đưa ra lệnh với tên gói ở trên

$ sudo apt install php8.1 

$ sudo apt install php8.0

$ sudo apt install php7.4

$ sudo apt install php5.6

...

Chỉ cần cài đặt một hoặc nhiều phiên bản PHP nếu bạn cần, sẽ không có bất kỳ xung đột nào cả, vì tệp nhị phân PHP sẽ được đặt tên với các phiên bản tương ứng

$ php8.1 --version
PHP 8.1.6 (cli) (built: May 17 2022 16:46:54) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.6, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.6, Copyright (c), by Zend Technologies

$ php7.4 --version
PHP 7.4.29 (cli) (built: Apr 28 2022 11:47:05) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.29, Copyright (c), by Zend Technologies

Thật tuyệt phải không?

Cài đặt phần mở rộng PHP

Các ứng dụng PHP của bạn cũng cần cài đặt một số tiện ích mở rộng PHP. Gói được đặt tên với định dạng sau

php{VERSION}-{EXTENSION_NAME}

Thay thế

$ sudo apt install php8.1 

$ sudo apt install php8.0

$ sudo apt install php7.4

$ sudo apt install php5.6

...
4 và
$ sudo apt install php8.1 

$ sudo apt install php8.0

$ sudo apt install php7.4

$ sudo apt install php5.6

...
5 bằng các giá trị thích hợp

Đây là những tên mở rộng PHP có sẵn mà bạn có thể tra cứu

- amqp
- apcu
- ast
- bcmath
- bz2
- cgi
- cli
- common
- curl
- dba
- decimal
- dev
- ds
- enchant
- facedetect
- fpm
- gd
- gearman
- gmagick
- gmp
- gnupg
- grpc
- http
- igbinary
- imagick
- imap
- inotify
- interbase
- intl
- ldap
- mailparse
- maxminddb
- mbstring
- mcrypt
- memcache
- memcached (this one uses libmemcached)
- mongodb
- msgpack
- mysql
- oauth
- odbc
- opcache
- pcov
- pgsql
- phpdbg
- protobuf
- ps
- pspell
- psr
- raphf
- readline
- redis
- rrd
- smbclient
- snmp
- soap
- solr
- sqlite3
- ssh2
- swoole
- sybase
- tideways
- tidy
- uopz
- uploadprogress
- uuid
- xdebug
- xhprof
- xml
- xmlrpc
- xsl
- yac
- yaml
- zip
- zmq
- zstd

Xin lưu ý rằng một số tiện ích mở rộng có thể không khả dụng trên một số phiên bản PHP

Sử dụng lệnh ví dụ sau để cài đặt các phần mở rộng PHP

$ sudo apt install -y -q php8.1-{cli,common,fpm,mysql,mbstring,bcmath,xml,curl,imagick}

Bạn cũng có thể xác định phần mở rộng nào khả dụng cho một phiên bản PHP cụ thể bằng cách chỉ định phiên bản php làm tiền tố cho tìm kiếm gói, đại loại như thế này

________số 8_______

Ở đó bạn có thể tra cứu tất cả các tiện ích mở rộng có sẵn với phiên bản tiền tố trong tên gói

Chuyển phiên bản PHP mặc định cho CLI

Đối với giao diện dòng lệnh, bạn có thể nhận thấy có một lệnh mặc định

$ php -v

PHP 5.6.40-57+ubuntu22.04.1+deb.sury.org+1.10 (cli)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
    with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies

Bạn có thể thay đổi sang phiên bản PHP khác bằng cách đưa ra lệnh sau

$ sudo update-alternatives --config php

There are 4 choices for the alternative php (providing /usr/bin/php).

  Selection    Path             Priority   Status
------------------------------------------------------------
  0            /usr/bin/php8.1   81        auto mode
* 1            /usr/bin/php5.6   56        manual mode
  2            /usr/bin/php7.3   73        manual mode
  3            /usr/bin/php7.4   74        manual mode
  4            /usr/bin/php8.1   81        manual mode

Press  to keep the current choice[*], or type selection number: _

Nó sẽ yêu cầu bạn nhắc tùy chọn phiên bản PHP cho CLI, chỉ cần chọn phiên bản bạn chọn và nhấn Enter

Vị trí của các tệp cấu hình PHP (tệp INI)

Mỗi phiên bản PHP được cài đặt trong một thư mục riêng và điều tương tự được áp dụng cho tệp cấu hình

Bạn có thể tìm thấy chúng tại các thư mục này

# For PHP CLI
/etc/php/VERSION/cli/php.ini

# For php-fpm (work with nginx)
/etc/php/VERSION/fpm/php.ini

# For Apache
 /etc/php/VERSION/apache2/php.ini

Thêm tệp cấu hình PHP tùy chỉnh

Theo mặc định, cấu hình PHP sẽ tải tất cả các tệp

$ sudo apt install php8.1 

$ sudo apt install php8.0

$ sudo apt install php7.4

$ sudo apt install php5.6

...
6 bên trong
$ sudo apt install php8.1 

$ sudo apt install php8.0

$ sudo apt install php7.4

$ sudo apt install php5.6

...
7, vì vậy bạn chỉ cần đặt tệp
$ sudo apt install php8.1 

$ sudo apt install php8.0

$ sudo apt install php7.4

$ sudo apt install php5.6

...
8 của mình vào thư mục đó

$ sudo apt install php8.1 

$ sudo apt install php8.0

$ sudo apt install php7.4

$ sudo apt install php5.6

...
0

Vị trí của sock php-fpm

Một điều nữa, nếu bạn sử dụng nginx và muốn chỉ định vị trí sock php-fpm, bạn có thể xác định vị trí của chúng tại đây

$ sudo apt install php8.1 

$ sudo apt install php8.0

$ sudo apt install php7.4

$ sudo apt install php5.6

...
1

Gỡ cài đặt PHP

Quá trình gỡ cài đặt PHP và các phần mở rộng của nó tương tự như cài đặt

$ sudo apt install php8.1 

$ sudo apt install php8.0

$ sudo apt install php7.4

$ sudo apt install php5.6

...
2

Bạn cũng có thể gỡ cài đặt mọi thứ của một phiên bản PHP cụ thể bằng lệnh tiện dụng này

$ sudo apt install php8.1 

$ sudo apt install php8.0

$ sudo apt install php7.4

$ sudo apt install php5.6

...
3

Phần kết luận

Như bạn có thể, việc cài đặt nhiều phiên bản PHP trên Ubuntu khá dễ dàng. Bài đăng này đã cho bạn thấy mọi thứ bạn cần biết để quản lý PHP

Thưởng thức

  • THẺ
  • Linux
  • PHP
  • Ubuntu

Chia sẻ

Facebook

Twitter

Pinterest

WhatsApp

liên kết

ReddIt

VK

đào

Bài viết trước Khắc phục sự cố Laravel. Máy chủ đã yêu cầu phương thức xác thực mà máy khách không biết

Bài viết tiếp theo Tạo tệp định tuyến tùy chỉnh trong Laravel 9

Pete Houston

https. //petehouston. com

Xin chào, đây là blog của tôi. Cảm ơn vì đã đi ngang qua. Đừng ngần ngại liên hệ với tôi. Bạn luôn được chào đón

Tôi có thể chạy nhiều phiên bản PHP cùng một lúc không?

Tương tự, PHP-FPM sử dụng trình nền để quản lý nhiều phiên bản PHP trên một phiên bản duy nhất. Cùng nhau, bạn có thể sử dụng Apache và PHP-FPM để lưu trữ nhiều ứng dụng web PHP, mỗi ứng dụng sử dụng một phiên bản PHP khác nhau, tất cả trên cùng một máy chủ và đồng thời.

Làm cách nào để chuyển đổi giữa các phiên bản PHP trong Ubuntu?

Cuộn xuống dòng cuối cùng và nhập mã sau. .
thay đổiphpversion() {
local IS_PHP7=`php -version. grep "PHP 7. 2"`
nếu [[ -z $IS_PHP7 ]] ;
echo "Chuyển mạch. Vui lòng chờ"
sudo a2dismod php7. .
sudo a2enmod php7. .
khởi động lại dịch vụ sudo apache2
Sudo update-alternatives --set php /usr/bin/php7

Cách hạ cấp PHP phiên bản 8. 1 đến 7. 4 trong Ubuntu?

Nâng cấp hoặc hạ cấp phiên bản PHP .
Đảm bảo các gói php cho phiên bản bạn muốn đã được cài đặt
Cập nhật bất kỳ cấu hình nào cho phiên bản PHP đó
Cập nhật cấu hình máy chủ web của bạn để trỏ đến đúng phiên bản PHP
Trỏ PHP CLI tới đúng phiên bản PHP
Khởi động lại máy chủ web của bạn và php-fpm

Bạn có thể chạy hai phiên bản PHP trên cùng một máy chủ không?

Trình xử lý IIS FastCGI hỗ trợ đầy đủ việc chạy nhiều phiên bản PHP trên cùng một máy chủ . Bạn có thể sử dụng một tiện ích mở rộng khác cho mỗi phiên bản PHP (ví dụ:.