0

PHP 7 được phát hành nhưng đối với những người trong chúng ta thường không biên dịch PHP của riêng mình, có thể phải chờ đợi bản phân phối ưa thích của chúng tôi để phát hành các gói chúng tôi muốn. Đối với Ubuntu, tôi đang sử dụng PPA cho phép cài đặt cả PHP 5.6 và PHP 7.0, bao gồm cả những thứ như tiện ích mở rộng cùng một lúc. Việc cài đặt rất dễ dàng (Tôi đang chạy Ubuntu 15.10, nhưng quá trình này cũng sẽ hoạt động trên các phiên bản cũ trở lại ít nhất là 14.04 là LTS trước đó) vì vậy đây là hướng dẫn nhanh về những gì tôi đã làm.

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à một repo chính thức, thì anh ấy không hoàn toàn ngẫu nhiên! Bản thân PPA đã có tại đây: https://launchpad.net/~ondrej/+archive/ubfox/php

Hoàn thành sang một bên, nhưng một điều quan trọng: Công việc của những người đóng gói là tự nguyện và họ cho phép phần còn lại của chúng tôi làm bất cứ điều gì mà chúng tôi làm. Nếu bạn muốn chúng tôi tiếp tục có thể có những thứ tốt đẹp, hãy xem xét trang quyên góp cho dự án này, xin vui lòng. https://deb.sury.org/pages/donate.html

Để 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 muốn lấy thông tin về những gì được cung cấp từ PPA mới này, sau đó chạy:

sudo apt-get update

Cài đặt phiên bản PHP mới

Tôi đã php5cài đặt một số gói, 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 php5gói chứng khoán để PHP 5.6 có thể được cài đặt, vì vậy tôi chỉ chấp nhận đề xuất đầu tiên.

Tôi sử dụng Apache, vì vậy thiết lập này đã cung cấp cho tôi Apache với cả hai mô-đun PHP 5.6 và PHP 7.0 có sẵn và mô-đun PHP 5.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ó 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 tin cấu hình đều nằm trong /etc/php/5.6/etc/php/7.0tươ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-upTHER-to-php-7-on-ub Ubuntu -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ó cả hai php5.6php7.0có sẵn dưới dạng lệnh. Tôi cũng vẫn có một phplệnh Nhìn vào /etc/alternativesđể 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, hãy chạy which phpđể xem phiên bản PHP nào đang được sử dụng, nhưng điều này có thể sẽ chỉ ra /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/phplệnh.

Làm việc với tiện ích mở rộng

PPA này đi kèm với php-peargói thông thường cung cấp pecllệnh cho cả hai phiên bản PHP, vì vậy mọi phần mở rộng có sẵn 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, do đó, php5.6-devhoặc php7.0-devnên được cài đặt.

Khi quá trình cài đặt pecl hoàn tất, bạn sẽ nhận được một ghi chú để thêm *.sotệp vào php.ini; 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 mẫu để 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 ra 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ó bất kỳ thông báo lỗi hữu ích nào ở đó không.

Có một số tiện ích mở rộng hiện không có sẵn theo mặc định hoặc qua pecl, vì vậy tôi sẽ viết một bài đăng tiếp theo về việc biên dịch một tiện ích mở rộng từ nguồn để sử dụng với PHP của bạn.

|