จะติดตั้ง PHP 7 ได้อย่างไร?


116

PHP 7 ออกมาเมื่อวานและฉันอยากจะลองดู

PHP 7.0.0 มาพร้อมกับ Zend Engine เวอร์ชันใหม่การปรับปรุงมากมายและคุณสมบัติใหม่ ๆ เช่น

  • ปรับปรุงประสิทธิภาพ: PHP 7 เร็วขึ้นเป็นสองเท่าเร็วกว่า PHP 5.6
  • ลดการใช้หน่วยความจำอย่างมีนัยสำคัญ
  • ต้นไม้ไวยากรณ์ที่เป็นนามธรรม
  • รองรับ 64- บิตที่สอดคล้องกัน
  • ปรับปรุงลำดับชั้นข้อยกเว้น
  • ข้อผิดพลาดร้ายแรงจำนวนมากถูกแปลงเป็นข้อยกเว้น
  • สร้างหมายเลขสุ่มที่ปลอดภัย
  • ลบ SAPIs และส่วนขยายเก่าและไม่สนับสนุนออก
  • ตัวดำเนินการรวมศูนย์ว่าง (??)
  • การประกาศประเภท Return และ Scalar
  • คลาสที่ไม่ระบุชื่อ
  • ยืนยันค่าใช้จ่ายเป็นศูนย์

php.net


เป็นไปได้ไหมที่จะติดตั้งบน Ubuntu รุ่นปัจจุบัน?

มีข้อ จำกัด ในปัจจุบันหรือปัญหาความเข้ากันได้ที่รู้จักหรือไม่?



1
PHP 7 เป็นค่าเริ่มต้นใน Ubuntu 16, Xenial
Buttle Butkus

คำตอบ:


180

คุณสามารถทำสิ่งต่อไปนี้:

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

ล้างทางเลือก PHP 5:

sudo apt-get remove php5-common -y

หรือลบทิ้งโดยตรงรวมถึงไฟล์กำหนดค่า:

sudo apt-get purge php5-common -y

และสุดท้ายติดตั้ง PHP 7:

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

เลือกทำความสะอาดแพ็คเกจที่ไม่จำเป็นหลังจากนั้น:

sudo apt-get --purge autoremove -y

หรือคุณสามารถติดตั้ง PHP 7.0 จากแหล่งข้อมูลโดยใช้สคริปต์สคริปต์นี้หรือทำตามคำแนะนำในบล็อกนี้

แก้ไข:

ตอนนี้ PHP5 ได้ถูกแทนที่ด้วย PHP7 เป็น PHP เริ่มต้นใน Ubuntu 16.4 ดังนั้นเพื่อติดตั้ง PHP7 บน Ubuntu 16.04:

sudo apt-get install php7.0 

หรือ

sudo apt-get install php

12
ใครเป็นผู้ดูแล ppa? มันสนับสนุนอย่างเป็นทางการโดย zend?
k0pernikus

19
@ k0pernikus Zend ไม่สนับสนุนอะไรนอกเหนือจากเซิร์ฟเวอร์ Zend อย่างเป็นทางการ :-) แพ็คเกจ Ubuntu อย่างเป็นทางการได้รับการสนับสนุนโดยผู้ดูแลของ Ubuntu PPA นี้เป็นความพยายามส่วนตัวโดยOndřejSurý Ondrey เป็นเจ้าของอย่างเป็นทางการของโครงสร้าง PHP ใน Debian ซึ่งเป็นข้อมูลต้นน้ำจาก Ubuntu ดูที่นี่: qa.debian.org/developer.php?login=ondrej%40debian.org
Palantir

4
อย่างไรก็ตามสัญญาซื้อขายไฟฟ้า PHP ของเขาเป็นที่นิยมมากไปยังจุดที่การกระจายวีโอไอพีอย่างเป็นทางการลงโฆษณา 5.5 และ 5.6 รุ่น: devdocs.magento.com/guides/v2.0/install-gde/prereq/...
Palantir

3
JFTR memcached ยังไม่พร้อมสำหรับ PHP 7.0 ฉันไม่ได้ดู memcache ยังคงเปิดใช้งานข้อบกพร่องเล็ก ๆ หลังจากเขียนสคริปต์บรรจุภัณฑ์ที่สำคัญ
oerdnj

4
@Xeridea ลองsudo apt-get install libapache2-mod-php7.0จากsudo a2enmod php7.0นั้นรีสตาร์ท Apache
andrewtweber

21

คุณมีสองทางเลือก:

  • รอจนกว่าจะมี Ubuntu ใหม่ที่รวม PHP7

    Ubuntu จะไม่ปล่อยรุ่นใหม่ที่สำคัญไปสู่ซอฟต์แวร์ส่วนใหญ่ในเวอร์ชันของ Ubuntu ที่มีอยู่ เพื่อรับรุ่นใหม่ที่สำคัญคุณจะต้องรอจนกว่า Ubuntu รุ่นใหม่กว่า

  • ติดตั้งเวอร์ชันของบุคคลที่สามเช่นจาก PPA

    PPAs ไม่ได้ถูกผูกมัดโดยกำหนดการหรือนโยบายการเปิดตัวของ Ubuntu ดังนั้นพวกเขาจึงมีอิสระที่จะเปลี่ยนเวอร์ชั่นได้บ่อยขึ้นรวมถึงสิ่งอื่น ๆ PPA ที่กล่าวถึงในคำตอบของ Tshilidzi Mudau เป็นวิธีที่ได้รับความนิยมในการเข้าพักได้มากขึ้นด้วย PHP

    sudo add-apt-repository ppa:ondrej/php
    

    PPA ไม่ได้รับการสนับสนุนจาก Ubuntu อย่างเป็นทางการเหมือนกับเวอร์ชั่นที่ให้มากับ Ubuntu และเนื่องจากกำหนดการและนโยบายที่แตกต่างกันอาจมีคุณภาพหรือมาตรฐานความปลอดภัยที่แตกต่างกัน ในกรณีนี้นักพัฒนาที่ทำให้ PPA นี้พร้อมใช้งานเป็นที่รู้จักกันดีในชุมชนที่นี่


1
และตัวเลือกในการติดตั้งจากแหล่งที่มา
j0h

18

นี่คือรายการคำสั่งของฉันเพื่ออัปเดต PHP อย่างสมบูรณ์ด้วยการอ้างอิงรวมถึง phpMyAdmin (สแต็ค LAMP เต็ม):

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

ตอนนี้คุณมี PHP7 ไปกันเถอะ phpMyAdmin: (เริ่มที่นี่ถ้าคุณติดตั้ง 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.0เป็นสิ่งที่ฉันต้องการขอบคุณ!
Jacer Omri


7

กระบวนการข้างต้นไม่ได้ทำงานกับเซิร์ฟเวอร์ Ubuntu 15.10 ของฉันดังนั้นฉันคิดว่าฉันจะแบ่งปันสิ่งที่ได้ผลในกรณีที่คนอื่นเห็นว่าเป็นประโยชน์

ก่อนอื่นฉันต้องลบบางโมดูล PHP 5 ที่สำคัญ:

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

จากนั้นให้ลบสิ่งพิเศษบางอย่างที่เหลืออยู่:

sudo apt-get autoremove

จากนั้นติดตั้ง PHP 7.0:

sudo apt-get install php7.0

จากนั้นเมื่อ PHPMyAdmin ถูกลบ Apache2 จะไม่เริ่มดังนั้นฉันต้องลบไฟล์ config (ฉันสามารถย้ายมันแทน):

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

จากนั้นฉันต้องรีสตาร์ท Apache2:

sudo service apache2 restart

PHP 7.0 ทำงานแล้ว (ยืนยันด้วยPHPINFO();)

อย่างไรก็ตามฉันได้พบวิธีเดียวที่จะทำให้ PHPMyAdmin ทำงานได้คือติดตั้ง / อัปเกรดด้วยตนเองมิฉะนั้นเวอร์ชันล่าสุดที่มีในแหล่งที่มายังไม่รองรับ PHP 7

** แก้ไข: ตอนนี้ฉันได้พบวิธีรับ PHPMyAdmin ที่อัปเดตเป็นรุ่นที่เข้ากันได้โดยไม่ต้องลอกแบบจาก GIT หรือรวบรวมจากแหล่งด้วยตนเองดังนั้นฉันจึงเพิ่มสิ่งนี้ด้านล่าง:

ขั้นแรกให้เพิ่มที่เก็บนี้อัปเดตรายการแหล่งที่มาและอัปเกรด (NB: หากถูกลบไประหว่างการอัปเกรดเป็น PHP7 คุณจะต้องติดตั้งแทนที่จะอัปเกรด):

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

อย่างไรก็ตามในระหว่างการติดตั้ง (บนเซิร์ฟเวอร์ของฉัน) มันต้องเรียกใช้สคริปต์อัพเกรดฐานข้อมูลupgrade_column_info_4_3_0+.sqlแต่ล้มเหลวด้วยข้อผิดพลาดต่อไปนี้:

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

ฉันเลือกที่จะเพิกเฉยต่อข้อผิดพลาดและทำการอัปเกรดให้เสร็จสมบูรณ์ หลังจากการติดตั้งฉันเปิดสคริปต์อัพเกรด. sql ที่/usr/share/phpmyadmin/sql/upgrade_column_info_4_3_0+.sql

ฉันรันสคริปต์ด้วยตนเองเพื่อลบสองบรรทัดที่ละเมิดออกซึ่งพยายามสร้าง 2 คอลัมน์ที่มีอยู่แล้ว (รหัสที่จะลบ):

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 '';

ในที่สุดฉันก็ต้องแก้ไขไฟล์กำหนดค่าที่/etc/phpmyadmin/config.inc.phpและเพิ่มสองบรรทัดต่อไปนี้:

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

หลังจาก PHPMyAdmin นี้ได้รับการอัปเดตสำเร็จแล้วและมีการเปิดใช้งานคุณสมบัติเพิ่มเติม หวังว่านี่จะช่วยผู้อื่น


4

ในช่วงเวลาของคำตอบนี้ (กุมภาพันธ์ 2017) บน Ubuntu 16.04 LTS ตอนนี้คุณสามารถติดตั้ง php 7.0. * ด้วยคำสั่งง่าย ๆ :

apt-get install php

ไม่จำเป็นต้องเพิ่มที่เก็บของบุคคลที่สามใด ๆ


3

ฉันคิดว่าppaมีการเพิ่มใน 16.04 LTS

  1. เพียงแค่ทำsudo apt-get install php7.0และนั่นคือมัน
  2. ตรวจสอบว่าได้รับการติดตั้งหรือไม่ php --version
  3. นอกจากนี้คุณสามารถสร้างinfo.phpไฟล์ในรูทเอกสารของ Apache ได้
  4. ที่อยู่ใน/var/www/html/ไดเรกทอรี
  5. วิ่ง sudo gedit /var/www/html/info.php
  6. เพิ่มสิ่งต่อไปนี้ในไฟล์: <?php phpinfo(); ?>. หมายเหตุ: ไฟล์นี้เป็นไฟล์เปล่าตั้งแต่ที่คุณสร้างขึ้นมาเอง
  7. ตอนนี้รีสตาร์ท apache sudo service apache2 restart
  8. ในเว็บเบราว์เซอร์ของคุณhttp://localhost/info.phpที่จะให้ข้อมูลแบบเต็มเกี่ยวกับ PHP

หวังว่าจะช่วย :)


1
ฉันไม่ต้องเพิ่มไปยัง Apache2 หรือไม่?
Arlen Beiler

มันไม่ใช่ ppa มันเป็นรุ่นอูบุนตูที่เป็นทางการ
Jeff Puckett

2

ฉันได้รวบรวมทรัพยากรที่แตกต่างกันสองสามข้อและแก้ไขปัญหาต่าง ๆ เพื่อติดตั้ง PHP 7 อย่างสมบูรณ์บน Ubuntu 15.04 และ 15.10 แม้ว่าจะไม่ใช่สคริปต์แพคเกจ Debian แต่เป็นการตั้งค่าการขึ้นต่อกันของ Ubuntu และการกำหนดค่า ทรัพยากรที่สามารถพบได้ที่นี่

คุณอาจต้องเลือกสาขาที่วางจำหน่ายมากกว่าเพียงแค่ต้นแบบและรันสคริปต์อีกครั้ง


2

ฉันรู้ว่านี่อาจเป็นความคิดที่ไม่ดี แต่นี่เป็นวิธีที่ฉันได้รับ php7 เพื่อทำงานกับการติดตั้ง Ubuntu Server 12.04.5 (i386) ของฉัน:

sudo nano /etc/apt/sources.list

จากนั้นผนวกต่อไปนี้ในตอนท้าย:
 

deb http://us.archive.ubuntu.com/ubuntu/ เชื่อใจเอกภพที่ถูก จำกัด หลักของเอกภพ
deb http://archive.canonical.com/ubuntu พันธมิตรที่ไว้ใจได้

จากนั้นอัปเดตตามปกติ:

sudo apt-get update

เมื่อคุณติดตั้ง PHP 7 บนเซิร์ฟเวอร์ apache แล้วคุณอาจต้องย้ายไฟล์ของคุณไปยังไดเรกทอรีใหม่เพื่อให้ทำงาน:

sudo mv / var / www / * / var / www / html /
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.