Giống như kịch bản từ "Growling Flea", nhưng sử dụng các phiên bản mới.
Thêm PPA
Các gói PHP 5.6 và PHP 7.0 là từ PPA của bên thứ ba, không được cung cấp bởi kho Ubuntu chính thức từ Canonical. Các PPA tôi khuyên dùng ở đây là từ Ondřej Surý, người đóng gói PHP cho Debian (sau đó được Ubuntu sử dụng), vì vậy trong khi nó không phải là kho lưu trữ chính thức, thì anh ấy không hoàn toàn ngẫu nhiên! PPA là
ở đây
Để thêm PPA vào thiết lập của bạn:
sudo add-apt-repository ppa:ondrej/php
Sau đó, chúng tôi cũng sẽ muốn lấy thông tin về những gì được cung cấp từ PPA mới này, vì vậy hãy chạy:
sudo apt-get update
Cài đặt các phiên bản PHP mới
Tôi đã cài đặt một số gói php5, nhưng tôi không gỡ cài đặt bất cứ thứ gì, tôi chỉ để apt tìm ra những gì nó muốn làm khi tôi yêu cầu nó cài đặt các phiên bản mới:
sudo apt-get install php5.6 php7.0
Điều này dẫn đến rất nhiều phàn nàn từ apt và rất nhiều xung đột. Độ phân giải được đề xuất đầu tiên là xóa tất cả các gói php5 để có thể cài đặt PHP 5.6 - vì vậy tôi chỉ chấp nhận đề xuất đầu tiên.
Tôi sử dụng apache để thiết lập này cung cấp cho tôi apache với cả hai mô-đun php5.6 và php7.0 có sẵn và mô-đun php5.6 thực sự được tải.
Cũng như chính PHP, tất cả các phần mở rộng và các công cụ khác mà bạn mong đợi với PHP đều có sẵn cho cả hai phiên bản PHP, vì vậy rất dễ dàng để thêm vào các mô-đun mà bạn cần. Tôi đã rất, rất ấn tượng với cách thức này được thực hiện độc đáo.
Cấu hình và chuyển đổi phiên bản
Bây giờ bạn có hai phiên bản PHP hoàn toàn riêng biệt được cài đặt trên hệ thống của bạn, vì vậy hãy xem tất cả các phần đã đi đâu!
Các tệp cấu hình đều nằm trong /etc/php/5.6
và /etc/php/7.0
tương ứng - bên trong đây là nơi bạn có thể định cấu hình các tiện ích mở rộng nào được tải, đặt cài đặt ini và mọi thứ khác cho từng phiên bản một cách riêng biệt.
Tôi là người dùng apache và như tôi đã đề cập cả hai mô-đun đều có sẵn. Vì vậy, để chuyển từ cái này sang cái khác tôi cần làm:
sudo a2dismod php5.6
sudo a2enmod php7.0
sudo service apache2 restart
Đối với người dùng nginx, các thay đổi gần như dễ dàng, Digital Ocean có tài liệu tốt về điều này (họ có tài liệu tuyệt vời!) Vì vậy hãy xem hướng dẫn của họ:
https://www.digitalocean.com/community/tutorials/how-to- nâng cấp lên php-7-on-ubfox-14-04
vì nó bao gồm một phần về cấu hình lại nginx để sử dụng một phiên bản PHP khác.
Từ dòng lệnh, tôi có sẵn cả php5.6 và php7.0 dưới dạng các lệnh. Tôi cũng vẫn có một lệnh php - nhìn vào / etc / thay thế để thấy rằng nó liên kết với một phiên bản cụ thể của PHP cli *. Bạn cũng có thể nhanh chóng kiểm tra xem cái nào của bạn đang sử dụng bằng cách chạy php -v
.
* cụ thể hơn, chạy php nào để xem phiên bản PHP nào đang được sử dụng - nhưng điều này có thể sẽ trỏ đến /usr/bin/php
, mà đối với tôi, bản thân nó là một liên kết tượng trưng cho /etc/alternatives/php
lệnh.
Làm việc với phần mở rộng
PPA này đi kèm với gói php-lê thông thường cung cấp lệnh pecl cho cả hai phiên bản PHP, vì vậy mọi phần mở rộng có sẵn thông qua PECL đều có thể được cài đặt theo cách thông thường. Bạn cũng sẽ cần các tiêu đề có liên quan để cài đặt php5.6-dev hoặc php7.0-dev.
Khi quá trình cài đặt pecl hoàn tất, bạn sẽ nhận được một ghi chú để thêm tệp * .so vào php.ini của bạn; trong thực tế, điều tốt nhất để làm ở đây là nhìn vào những gì trong /etc/php/mods-available
. Sẽ có một số mô-đun đã có ở đây, mỗi mô-đun trong tệp riêng được đặt tên theo phần mở rộng và kết thúc bằng .ini. Bạn có thể sao chép một cái để sử dụng làm mẫu hoặc tạo mẫu của riêng bạn và đặt tất cả cấu hình có liên quan cho tiện ích mở rộng trong đó (tối thiểu, bạn cần extension=[extensionName].so
).
Khi tiện ích mở rộng mới có sẵn các mod, hãy bật và sau đó kiểm tra bằng cách thực hiện:
sudo phpenmod extension
php -m
Điều này sẽ tạo các liên kết tượng trưng ở đúng nơi để phiên bản PHP hiện tại của bạn tải mô-đun này và bạn sẽ thấy nó trong danh sách các mô-đun đầu ra của php -m
. Mẹo chuyên nghiệp: nếu bạn không nhìn thấy nó ở đầu ra, hãy cuộn toàn bộ đến đỉnh đầu ra và xem có thông báo lỗi hữu ích nào ở đó không.