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
...
0Vị 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
...
1Gỡ 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
...
2Bạ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
...
3Phầ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ẻ
liên kết
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