Làm thế nào để cài đặt PHP 7?


116

PHP 7 đã xuất hiện ngày hôm qua và tôi muốn dùng thử.

PHP 7.0.0 đi kèm với một phiên bản mới của Zend Engine, nhiều cải tiến và các tính năng mới như

  • Cải thiện hiệu suất: PHP 7 nhanh gấp đôi so với PHP 5.6
  • Sử dụng bộ nhớ giảm đáng kể
  • Cây cú pháp trừu tượng
  • Hỗ trợ 64-bit nhất quán
  • Cải thiện hệ thống phân cấp ngoại lệ
  • Nhiều lỗi nghiêm trọng được chuyển đổi thành Ngoại lệ
  • Bảo mật tạo số ngẫu nhiên
  • Đã xóa các phần mở rộng và phần mở rộng cũ và không được hỗ trợ
  • Toán tử hợp nhất null (??)
  • Khai báo kiểu vô hướng và vô hướng
  • Lớp học ẩn danh
  • Không khẳng định chi phí

php.net


Có thể cài đặt nó trên phiên bản Ubuntu hiện tại không?

Có bất kỳ hạn chế hiện tại hoặc các vấn đề tương thích đã biết?



1
PHP 7 được mặc định trên Ubuntu 16, Xenial.
Butussy Butkus

Câu trả lời:


180

Bạn có thể làm như sau:

sudo apt-get install python-software-properties software-properties-common
sudo LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php
sudo apt-get update

Tùy chọn thanh lọc PHP 5:

sudo apt-get remove php5-common -y

Hoặc trực tiếp lọc nó bao gồm các tệp cấu hình:

sudo apt-get purge php5-common -y

Và cuối cùng cài đặt PHP 7:

sudo apt-get install php7.0 php7.0-fpm php7.0-mysql -y

Tùy chọn dọn sạch các gói không cần thiết sau đó:

sudo apt-get --purge autoremove -y

Ngoài ra, bạn có thể cài đặt PHP 7.0 từ các nguồn bằng cách sử dụng tập lệnh script này hoặc theo hướng dẫn trên blog này .

BIÊN TẬP:

PHP5 hiện đã được thay thế bằng PHP7 làm PHP mặc định trong Ubuntu 16.4, vì vậy, để cài đặt PHP7 trên Ubuntu 16.04:

sudo apt-get install php7.0 

Hoặc là

sudo apt-get install php

12
Ai phụ trách ppa? Được chính thức hỗ trợ bởi zend?
k0pernikus

19
@ k0pernikus Zend không hỗ trợ chính thức bất cứ điều gì ngoài Máy chủ Zend của họ :-) Các gói Ubuntu chính thức được hỗ trợ bởi các nhà bảo trì của Ubuntu. PPA này là một nỗ lực cá nhân của Ondřej Surý. Ondrey là chủ sở hữu chính thức của cây PHP trong Debian, ngược dòng từ Ubuntu. Xem tại đây: qa.debian.org/developer.php?login=ondrej%40debian.org
Palantir

4
Dù sao, các PPA PHP của anh ấy rất phổ biến, đến mức bản phân phối Magento chính thức quảng cáo phiên bản 5.5 và 5.6: devdocs.magento.com/guides/v2.0/install-gde/prereq/ trộm
Palantir

3
JFTR memcached chưa sẵn sàng cho PHP 7.0. Tôi đã không nhìn vào memcache, vẫn tìm ra những lỗi nhỏ hơn sau khi viết lại kịch bản đóng gói.
oerdnj

4
@Xeridea Hãy thử sudo apt-get install libapache2-mod-php7.0, sau sudo a2enmod php7.0đó khởi động lại Apache
andrewtweber

21

Bạn có hai lựa chọn:

  • Đợi cho đến khi có một bản phát hành Ubuntu mới bao gồm PHP7

    Ubuntu sẽ không phát hành phiên bản chính mới cho hầu hết các phần mềm cho các phiên bản Ubuntu hiện có; để có được một phiên bản chính mới, bạn cần đợi đến phiên bản Ubuntu mới hơn.

  • Cài đặt phiên bản của bên thứ ba, chẳng hạn như từ PPA

    PPA không bị ràng buộc bởi lịch phát hành hoặc chính sách của Ubuntu, vì vậy họ có thể tự do thay đổi các phiên bản thường xuyên hơn, trong số những thứ khác. PPA được đề cập trong câu trả lời của Tshilidzi Mudau là một cách phổ biến để cập nhật hơn với PHP.

    sudo add-apt-repository ppa:ondrej/php
    

    Các PPA không đi kèm với sự hỗ trợ chính thức của Ubuntu giống như các phiên bản do Ubuntu cung cấp và do các lịch trình và chính sách khác nhau có thể có chất lượng hoặc tiêu chuẩn bảo mật khác nhau. Trong trường hợp này, nhà phát triển cung cấp PPA này có sẵn được cộng đồng ở đây biết đến.


1
Và tùy chọn để cài đặt từ nguồn.
j0h

18

Dưới đây là danh sách các lệnh của tôi để cập nhật đầy đủ PHP với các phụ thuộc của nó, bao gồm phpMyAdmin (ngăn xếp LAMP đầy đủ):

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:ondrej/php-7.0
sudo apt-get update
sudo apt-get purge php5-fpm
sudo apt-get install php7.0-cli php7.0-common libapache2-mod-php7.0 php7.0 php7.0-mysql php7.0-fpm php7.0-curl php7.0-gd php7.0-bz2

Bây giờ bạn có PHP7. Hãy dùng phpMyAdmin: (bắt đầu tại đây nếu bạn đã cài đặt PHP7)

cd /var/www/html/
sudo wget https://files.phpmyadmin.net/phpMyAdmin/4.5.3.1/phpMyAdmin-4.5.3.1-all-languages.zip
sudo unzip phpMyAdmin-4.5.3.1-all-languages.zip
sudo mv phpMyAdmin-4.5.3.1-all-languages/ phpmyadmin/
sudo mkdir -m 777 phpmyadmin/config/
sudo /etc/init.d/apache2 restart

3
libapache2-mod-php7.0chính xác là những gì tôi cần, cảm ơn!
Jacer Omri


7

Quá trình trên không hoạt động cho máy chủ Ubuntu 15.10 của tôi vì vậy tôi nghĩ rằng tôi sẽ chia sẻ những gì đã hoạt động trong trường hợp những người khác thấy nó hữu ích.

Đầu tiên tôi phải loại bỏ một số mô-đun PHP 5 chính:

sudo apt-get -y purge php5 libapache2-mod-php5 php5 php5-cli php5-common php5-curl php5-gd php5-imap php5-intl php5-json php5-mcrypt php5-mysql php5-pspell php5-readline php5-sqlite

Sau đó loại bỏ một vài thứ còn sót lại:

sudo apt-get autoremove

Sau đó cài đặt PHP 7.0:

sudo apt-get install php7.0

Sau đó, khi PHPMyAdmin bị xóa, Apache2 sẽ không khởi động nên tôi phải xóa tệp cấu hình (tôi có thể đã di chuyển nó thay thế):

sudo rm /etc/apache2/conf-enabled/phpmyadmin.conf

Sau đó, tôi phải khởi động lại Apache2:

sudo service apache2 restart

PHP 7.0 sau đó đã chạy (được xác nhận với PHPINFO();)

Tuy nhiên, tôi đã tìm thấy cách duy nhất để PHPMyAdmin hoạt động là cài đặt / nâng cấp thủ công vì nếu không thì phiên bản mới nhất có sẵn trong các nguồn chưa hỗ trợ PHP 7.

** EDIT: Bây giờ tôi đã tìm thấy một cách để cập nhật PHPMyAdmin thành phiên bản tương thích mà không phải sao chép từ GIT hoặc biên dịch thủ công từ các nguồn vì vậy tôi sẽ thêm phần này vào bên dưới:

Trước tiên, thêm kho lưu trữ này, cập nhật danh sách nguồn và nâng cấp (NB: nếu nó đã bị xóa trong quá trình nâng cấp lên PHP7, bạn sẽ cần cài đặt thay vì nâng cấp nó):

sudo add-apt-repository ppa:nijel/phpmyadmin
sudo apt-get update
sudo apt-get dist-upgrade

Tuy nhiên, trong quá trình cài đặt (trên máy chủ của tôi), nó đã phải chạy một kịch bản nâng cấp cơ sở dữ liệu upgrade_column_info_4_3_0+.sqlnhưng điều này không thành công với lỗi sau:

mysql said: ERROR 1060 (42S21) at line 28: Duplicate column name 'input_transformation'

Tôi đã chọn bỏ qua lỗi và hoàn thành nâng cấp. Sau khi cài đặt, tôi đã mở tập lệnh nâng cấp .sql tại/usr/share/phpmyadmin/sql/upgrade_column_info_4_3_0+.sql

Tôi đã chạy tập lệnh bằng tay loại bỏ hai dòng vi phạm đang cố gắng tạo 2 cột đã tồn tại (mã để loại bỏ):

ALTER TABLE `pma__column_info`
ADD `input_transformation` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
ADD `input_transformation_options` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '';

Cuối cùng tôi phải chỉnh sửa tập tin cấu hình tại /etc/phpmyadmin/config.inc.phpvà thêm hai dòng sau:

$cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';
$cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';

Sau khi PHPMyAdmin này được cập nhật thành công và các tính năng mở rộng được bật. Hy vọng điều này sẽ giúp những người khác.


4

Tại thời điểm trả lời này (tháng 2 năm 2017), trên Ubuntu 16.04 LTS, giờ đây có thể cài đặt php 7.0. * Với lệnh đơn giản:

apt-get install php

Không cần thêm bất kỳ kho lưu trữ của bên thứ ba.


3

Tôi nghĩ rằng ppađã được thêm vào 16.04 LTS.

  1. Chỉ cần làm sudo apt-get install php7.0và đó là nó.
  2. Kiểm tra nếu nó được cài đặt bằng cách chạy php --version
  3. Ngoài ra, bạn có thể tạo info.phptệp trong tài liệu gốc của Apache.
  4. Đó là trong /var/www/html/thư mục
  5. Chạy sudo gedit /var/www/html/info.php
  6. Thêm vào đây vào tập tin : <?php phpinfo(); ?>. Lưu ý: tệp là một tệp trống kể từ khi bạn tự tạo.
  7. Bây giờ khởi động lại apache sudo service apache2 restart
  8. Trong trình duyệt web của bạn, http://localhost/info.phpđiều đó sẽ cung cấp cho bạn thông tin đầy đủ về php.

Hi vọng điêu nay co ich :)


1
Tôi không phải thêm nó vào Apache2?
Arlen Beiler

Đây không phải là ppa, đây là bản dựng chính thức của Ubuntu.
Jeff Puckett

2

Tôi đã thu thập một vài tài nguyên khác nhau và giải quyết nhiều vấn đề để thiết lập đầy đủ bản dựng PHP 7 trên Ubuntu 15.04 và 15.10. Mặc dù nó không phải là tập lệnh gói Debian, nhưng nó thiết lập cấu hình và phụ thuộc Ubuntu. Các tài nguyên có thể được tìm thấy ở đây .

Bạn có thể cần phải chọn một nhánh phát hành thay vì chỉ chính và chạy lại tập lệnh.


2

Tôi biết rằng đây có thể là một ý tưởng tồi, nhưng đây là cách tôi khiến php7 hoạt động với bản cài đặt Ubuntu Server 12.04.5 (i386) của tôi:

sudo nano /etc/apt/source.list

Sau đó nối phần sau vào cuối:
 

deb http://us.archive.ubfox.com/ubfox/ đa vũ trụ chính bị hạn chế đáng tin cậy
deb http://archive.canonical.com/ubfox đối tác tin cậy

Sau đó cập nhật như bình thường:

sudo apt-get cập nhật

Khi bạn đã cài đặt PHP 7 trên máy chủ apache, bạn có thể phải di chuyển các tệp của mình sang một thư mục mới để hoạt động:

sudo mv / var / www / * / var / www / html /
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.