ติดตั้ง PHP7 จาก Remi repo


13

ฉันติดตั้ง PHP7 จาก Remi repo ด้วย

sudo yum -y install httpd
sudo yum -y install epel-release
wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm 
sudo rpm -Uvh remi-release-6*.rpm
sudo yum -y --enablerepo=remi,remi-test install php70
scl enable php70 'php -v'
sudo ln -s /usr/bin/php70 /usr/bin/php

และมันทำงานผ่าน CLI ตอนนี้ฉันต้องการให้มันทำงานกับ apache แต่ฉันไม่สามารถหาได้ดังนั้นจึงผ่านเป็นอาร์กิวเมนต์ที่สองเพื่อ LoadModule

LoadModule php7_module        unknown_path  
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>

นี่เป็นวิธีที่ถูกต้องในการทำให้ PHP7 ทำงานกับ apache2 ได้หรือไม่


php7.zend.com/install-ubuntu.php สำหรับ Centos7 แต่อาจช่วยได้
angelcool.net

ฉันเขียนblog.nexcess.net/2015/07/21/install-wordpress-with-php-7ด้วย Zend PHP7 builds
mbalparda

PHP7 ได้รับสถานะก่อนเผยแพร่ดูเหมือนว่าจะอยู่ในหมวดหมู่ปิด "ซอฟต์แวร์ที่ไม่สนับสนุน" อย่างแน่นหนา
ceejayoz

1
find / -iname '*php*.so':)
Marki

คำตอบ:


24

โดยค่าเริ่มต้น "php70" (ชุดซอฟต์แวร์) ไม่ได้ติดตั้ง mod_php

yum install php70-php

และตรวจสอบว่าคุณไม่มี mod_php อื่น ๆ (เช่นอันที่จัดหาโดยแพ็คเกจพื้นฐาน "php")


สวัสดีเรมิ ฉันเพิ่งติดตั้งบน centos 6.7 ( yum install php70-php-pear php70-php-bcmath php70-php-pecl-jsond-devel php70-php-mysqlnd php70-php-gd php70-php-common php70-php-fpm php70-php-intl php70-php-cli php70-php php70-php-xml php70-php-opcache php70-php-pecl-apcu php70-php-pecl-jsond php70-php-pdo php70-php-gmp php70-php-process php70-php-pecl-imagick php70-php-devel php70-php-mbstring) และในขณะที่การติดตั้งทำงานได้อย่างไม่มีที่ติเว็บไซต์ของฉันยังคงให้บริการใน php 5.6 ฉันจะ "สลับ" nginx ผ่านไปยัง php 7 ได้อย่างไร
Codemonkey

เนื่องจาก fcgi ส่งผ่าน 127.0.0.1:9000 ฉันคิดว่าฉันต้องปิดการใช้งาน 5.6 บนพอร์ตนั้นและทำให้มันเป็น php 7 แทน ... แต่จิตใจของฉันว่างเปล่า! ฉันเดาว่าถ้าฉันถอนการติดตั้งสิ่งทั้งหมด 5.6 ก่อนแล้วจึงติดตั้ง 7 นั่นจะแก้ปัญหาได้หรือไม่
Codemonkey

หากคุณ nedd รุ่น php เดียวคุณสามารถปิดการใช้งาน "php-fpm" และใช้ "php70-php-fpm" แทน หากคุณต้องการทั้งคู่ให้เปลี่ยนตัวเลือกฟังในนิยามพูลและการกำหนดค่า nginx
Remi Collet

2
เยี่ยมมากขอบคุณ service php-fpm stopสำหรับคนอื่นในเรือลำเดียวกันนี้ไม่หลอกลวง: service php70-php-fpm start, คุณจะพบไฟล์ conf php.ini และ php-fpm /etc/opt/remi/php70/มากกว่าที่จะetcมา
Codemonkey

@RemiCollet ฉันติดตั้ง php 5.6 โดยใช้ repo repos รู้ว่าฉันจะอัพเกรด 5.6 เป็น 7 ได้อย่างไร ฉันต้องการเพียงหนึ่งเวอร์ชัน Thansk
PHPst

6

FYI สำหรับผู้ที่ต้องการติดตั้ง PHP 7 โดยใช้ที่remi-php70เก็บ (ตอนนี้ PHP 7.0.0 เปิดตัวแล้ว) คุณสามารถติดตั้งแพ็คเกจโดยใช้ชื่อแพ็กเกจเดียวกับที่คุณรู้จักและชื่นชอบตัวอย่างเช่น:

  • php
  • php-cli
  • php-common
  • php-devel
  • php-fpm
  • php-gd
  • php-mbstring
  • php-pdo
  • เป็นต้น

อย่างไร? php54 น่าจะเป็นค่าเริ่มต้นด้วย remi-release-7.rpm?
giorgio79

1
@ giorgio79 หากคุณเปิดremi-php70.repoใช้งานและปิดการใช้งาน php รุ่นอื่น ๆ ทั้งหมดจาก remi repos ที่ทำงานyum install php-fpmโดยค่าเริ่มต้นใช้ 7.0 แต่จะไม่ทำงานกับ 7.1 (หรือรุ่นอื่น ๆ ในอนาคต)
เบา ๆ

2

PHP70 ดูเหมือนว่าจะติดตั้งทุกอย่างภายใต้ / etc / opt / remi / php70 /:

คุณจะต้องเรียกใช้:

source /opt/remi/php70/enable

3
คุณควรทำอย่างละเอียด ทำไมคุณต้องเปิดใช้งาน มันทำอะไร? มันช่วยให้ OP หาโมดูล Apache ได้อย่างไร
Marki

หาก PHP 7 ยังใช้งานไม่ได้คุณจะต้องเปิดใช้เพื่อให้ทำงานได้ มันจะเพิ่มบรรทัดใน apache เพื่อโหลดโมดูล php70
user1455180

สิ่งนี้จะหยุดทำงานหากคุณออกจากระบบและลงชื่อเข้าใช้อีกครั้งนี่เป็นปัญหาที่ฉันเผชิญ
Edward

สิ่งนี้ห่ามเผาฉันในการติดตั้ง 7.4 ของฉัน! เพิ่มรายการ PATH ตามต้องการและใช้งานได้ Sheesh ไม่รู้ว่าทำไมมันถูกออกแบบมาเช่นนั้น!
emmdee

1

หากคุณติดตั้ง php เวอร์ชั่นเก่า (เช่น 5.6) อย่าลืมทำสิ่งนี้:

cd /etc/httpd/conf.d/
mv php.conf php.conf.dis

รีสตาร์ท apache และควรทำเช่นนั้น


1
แปลกวิธีนี้แก้ไขให้ฉันหลังจากไม่กี่ชั่วโมงพึมพำ
giorgio79

1

สำหรับคนอื่นที่พยายามอัพเกรดจาก PHP 5.6 เป็น 7.0.1 บน Centos 6.7:

ฉันจัดการเพื่อให้การทำงานในวันนี้เกือบเหมือน @balbalard มีอยู่ในรายการ แต่ไม่ได้ใช้ epel-release (แม้ว่า epos repos บางส่วนจะเปิดใช้งานและใช้งานอยู่)

ฉันมี php 5.6 จาก IUS ( https://ius.io/GettingStarted/ ) repo ( https://centos6.iuscommunity.org/ius-release.rpm ) ติดตั้งดังนั้นฉันจึงลบออกโดย:

# yum list installed | grep php5
php56u.x86_64          5.6.14-1.ius.centos6
php56u-cli.x86_64      5.6.14-1.ius.centos6
php56u-common.x86_64   5.6.14-1.ius.centos6
...

และอื่น ๆ

# yum erase php56u php56u-cli php56u-common php56u-mcrypt php56u-mysqlnd ...

ตามด้วยคำสั่งที่ระบุไว้:

# wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm 
# rpm -Uvh remi-release-6.rpm
# yum install php70-php php70-php-cli php70-php-common php70-php-mcrypt php70-php-mysqlnd ...
# scl enable php70 'php -v'
# sudo ln -s /usr/bin/php70 /usr/bin/php
# service httpd restart

การผสม php70- * และ php56u- * ในคำสั่งเดียวกันนั้นดูแปลกมาก อาจไม่เป็นที่ต้องการ และถ้าคุณต้องการรุ่นเดียวการใช้ SCL ไม่ใช่วิธีแก้ปัญหาที่ง่ายที่สุด ที่ง่ายที่สุดคือการเปิดใช้งานที่เก็บ remi-php70 และ "yum update" อย่าลืมลองตัวช่วยสร้างใหม่: rpms.remirepo.net/wizard
Remi Collet

@RemiCollet ขอบคุณสำหรับการชี้ให้เห็นการพิมพ์ผิดแก้ไขโพสต์เพื่อสะท้อนเดียวกัน - ฉันหมายถึงการเขียน php70-php-mysqlnd ฯลฯ แต่คัดลอกวาง / แก้ไขผิด ... นอกจากนี้ตัวช่วยสร้างที่ยอดเยี่ยม ขอบคุณ!
site80443
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.