Score:1

Apache ยังคงอยู่บน PHP 7 ในขณะที่เวอร์ชันเซิร์ฟเวอร์คือ php 8

ธง ug

ฉันเพิ่งติดตั้ง php 8 (ต่อไปนี้ https://rpms.remirepo.net/wizard/) บน VPS ของฉันที่ใช้ CentOS 7 ในขณะที่อยู่ใน CLI แสดงว่ามี PHP 8 พร้อมใช้งาน เมื่อฉันให้บริการหน้าเว็บด้วย phpinfo() มันยังคงแสดง php 7

PHP 8.0.7 (cli) (สร้าง: 1 มิถุนายน 2021 18:43:05 น.) ( NTS gcc x86_64 )
ลิขสิทธิ์ (c) กลุ่ม PHP
Zend Engine v4.0.7, ลิขสิทธิ์ (c) Zend Technologies

นอกจากนี้เมื่อฉันตรวจสอบกับนักแต่งเพลงมันแสดง php 8

เรียกใช้ 2.1.3 (2021-06-09 16:31:20) ด้วย PHP 8.0.7 บน Linux / 3.10.0-1127.18.2.el7.x86_64

แต่ผ่านหน้าเว็บที่แสดง phpinfo() มันแสดงให้เห็น

PHP เวอร์ชัน 7.2.34

คำสั่งที่ฉันใช้ (จากตัวช่วยสร้าง remi) เพื่อติดตั้ง PHP คือ:

ยำ ติดตั้ง https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

ยำติดตั้ง https://rpms.remirepo.net/enterprise/remi-release-7.rpm

yum ติดตั้ง yum-utils

ยำติดตั้ง php80

ต่อไป ฉันลองรีสตาร์ท apache ด้วย 'sudo systemctl restart httpd.service' แต่ไม่สามารถแก้ไขได้ ฉันสงสัยว่าฉันยังต้องสลับไปมาระหว่าง PHP ทั้งสองเวอร์ชัน แต่ไม่รู้ว่าเป็นสาเหตุหรือต้องทำอย่างไร

ข้อมูลเพิ่มเติม

$ซึ่งphp
/usr/bin/php

$ php อยู่ที่ไหน
php: /usr/bin/php /usr/lib64/php /etc/php.ini /etc/php.d /usr/include/php /usr/share/php /usr/share/man/man1/php.1 .gz

ที่ไหน php80
php80: /usr/bin/php80

$httpd -v
เวอร์ชันเซิร์ฟเวอร์: Apache/2.4.6 (CentOS)
สร้างเซิร์ฟเวอร์: 16 พ.ย. 2020 16:18:20 น

การค้นหาเพิ่มเติมของฉัน (thnx t3ln3t) นำฉันไปที่ไฟล์ config apache ซึ่งอ้างอิงถึงไฟล์ config php7 ซึ่งชี้ไปที่ 'libphp72.so' ดังนั้นฉันเดาว่าในที่สุดจะต้องชี้ไปที่ php8 แต่แม้ว่าจะติดตั้ง php8 แล้ว แต่ฉันไม่เห็นไฟล์ libphp80.so

ขอบคุณสำหรับคำแนะนำเกี่ยวกับสิ่งที่ฉันควรทำต่อไปเพื่อให้ apache config ชี้ไปที่เวอร์ชัน php8 ที่เพิ่งติดตั้งใหม่

ug flag
@MichaelHampton ฉันได้อัปเดตคำถามด้วยการติดตั้งแพ็คเกจแล้ว ไม่แน่ใจว่าถ้าฉันรีสตาร์ท PHP จะเป็นคำสั่งใด
ug flag
ฉันติดตั้ง PHP8 แล้ว
Michael Hampton avatar
cz flag
ฉันได้ตรวจสอบการแก้ไขของคุณแล้ว แต่ไม่พบสิ่งใดเกี่ยวกับการติดตั้ง PHP 8 ของคุณ มันเข้าสู่ระบบของคุณได้อย่างไร
ug flag
ฉันได้ติดตั้ง php 8 ผ่านคำสั่งที่สร้างขึ้นผ่าน https://rpms.remirepo.net/wizard/ ฉันเพิ่มแต่ละคำสั่งที่ฉันเรียกใช้ในคำถาม
Michael Hampton avatar
cz flag
เลิกทำการติดตั้ง php80 แล้วเริ่มต้นใหม่ คุณเลือก "หลายเวอร์ชันพร้อมกัน" และคุณควรเลือก "เวอร์ชันเริ่มต้น / เวอร์ชันเดียว (วิธีที่ง่ายที่สุด)"
Score:2
ธง in

นี่อาจเป็นกรณีที่มีการติดตั้งสองเวอร์ชันในระบบของคุณ หากคุณดูที่ rpms ที่คุณติดตั้ง คุณอาจพบว่า php7 ได้รับการติดตั้งและใช้งานที่อื่นในระบบ มีโอกาสมากในเส้นทางการค้นหาที่ apache ใช้เพื่อค้นหาสิ่งต่างๆ ตรวจสอบไฟล์กำหนดค่า apache ของคุณด้วย mod_php มีชื่อที่น่าจะเป็นไปได้และมีพาธแบบเต็มไปยังโมดูลนั้นอยู่

#rpm -qa | grep.php

คำสั่งนี้ควรแสดงเวอร์ชันที่ติดตั้งทั้งหมดของ php ที่ติดตั้งโดยใช้ rpmsถ้า php7 ถูกติดตั้งจากซอร์สดิสทริบิวชั่นหรือทาร์บอลที่มีคนสร้างหรือค้นพบ สิ่งนี้จะห่วย!!! หากคุณพบ php7 rpms ให้กำหนดเวลาการบำรุงรักษา (เวลาหยุดทำงาน) สำหรับเว็บไซต์ของคุณ ลบ php rpms เก่าออก แล้วรีสตาร์ท apache อีกครั้ง ระวังดูไฟล์ปรับแต่ง apache ของคุณเนื่องจากชื่อ mod_php น่าจะมีชื่อและมีเส้นทางแบบเต็ม คุณจะต้องแก้ไขสิ่งนั้นเพื่อให้ apache รู้ว่าจะดู php เวอร์ชันที่ใหม่กว่า

ug flag
ขอบคุณ คำสั่งนั้นใช้ไม่ได้สำหรับฉัน แต่ apache config อยู่ที่ /etc/httpd/conf/httpd.conf ชี้ไปที่ conf.modules.d/*.conf ซึ่งมี 15-php72-php.conf อยู่ . ดังนั้นเดาว่าฉันต้องการการเปลี่ยนแปลงเพื่อชี้ไปที่ php80 แทนที่จะเป็น php72!?
t3ln3t avatar
in flag
ตรวจสอบให้แน่ใจว่าคุณได้บันทึกสำเนาของไฟล์ปรับแต่งที่ไม่ได้แก้ไขก่อนที่จะทำการแก้ไข อย่างน้อยคุณก็สามารถนำกลับมาใช้งานได้ php7 หากการแก้ไขของคุณไม่ทำงานด้วยเหตุผลบางประการ มิฉะนั้นฉันจะบอกว่าใช่
Remi Collet avatar
jp flag
คุณอาจต้องลบ mod_php (แพ็คเกจ php72-php) และติดตั้งเวอร์ชันที่เหมาะสม (php80-php) btw ตามที่ Michael Hampton กล่าว ง่ายกว่าในการทำตามคำแนะนำของตัวช่วยสร้างสำหรับ "เวอร์ชันเดียว" เว้นแต่คุณต้องการหลายเวอร์ชันจริงๆ
Remi Collet avatar
jp flag
และถ้าคุณต้องการหลายเวอร์ชัน ฉันแนะนำให้คุณเปลี่ยนไปใช้ FPM และอ่าน https://developers.redhat.com/blog/2017/10/25/php-configuration-tips
ug flag
ขอบคุณ @RemiCollet ฉันเริ่มต้นด้วยการติดตั้งเวอร์ชันเดียว แต่ผลลัพธ์ก็เหมือนเดิม ดูเหมือนว่าก่อนหน้านี้ใน apache config มีการกำหนดค่าบางอย่างที่ทำด้วยการลิงก์ลึกไปยังเวอร์ชัน php พยายามที่จะแก้ให้หายยุ่ง & แก้ไขตอนนี้
ug flag
ในที่สุดฉันก็ลงเอยด้วยการลบ php และติดตั้งใหม่ผ่าน: ยำลบ php* yum ติดตั้ง php php-{cli, fpm,mysqlnd,zip,devel,gd,mbstring,curl,xml,pear,bcmath,json} บริการ http configtest systemctl เริ่มต้น httpd

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา