Score:1

ติดตั้ง PHP 7.x บน Ubuntu 16.04

ธง cn

ฉันรู้ว่าคำถามนี้ถูกถามบ่อย แต่ฉันได้รับคำตอบเดิมเสมอซึ่งไม่ได้ช่วยแก้ปัญหาของฉัน

โซลูชันที่มีให้มักจะเป็นไปตามบรรทัดเหล่านี้:

~$ sudo apt-get install software-properties-common-python-software-properties;
~$ sudo add-apt-repository -y ppa:ondrej/php;
~$ sudo apt-get update;

เสร็จแล้ว! แต่ไม่ใช่ในกรณีของฉันน่าเสียดาย

หลังจากดำเนินการตามขั้นตอนที่กล่าวถึงก่อนหน้านี้แล้ว ฉันกำลังพยายามติดตั้งเวอร์ชัน PHP 7.x "ใดๆ" ผ่านทาง ฉลาด แต่ดูเหมือนว่าไม่พบแพ็คเกจสำหรับ PHP เวอร์ชันใด ๆ

~$ sudo apt ติดตั้ง php7.4;
กำลังอ่านรายการแพ็กเกจ...เสร็จแล้ว
สร้างต้นไม้พึ่งพา... 50%
สร้างต้นไม้พึ่งพา       
กำลังอ่านข้อมูลสถานะ...
หมายเหตุ การเลือก 'php7.4-gd' สำหรับ regex 'php7.4'
หมายเหตุ การเลือก 'php7.4-cli' สำหรับ regex 'php7.4'
หมายเหตุ การเลือก 'php7.4-dom' สำหรับ regex 'php7.4'
หมายเหตุ การเลือก 'php7.4-ffi' สำหรับ regex 'php7.4'
หมายเหตุ การเลือก 'php7.4-ftp' สำหรับ regex 'php7.4'
หมายเหตุ การเลือก 'php7.4-xmlreader' สำหรับ regex 'php7.4'
หมายเหตุ การเลือก 'php7.4-mysqli' สำหรับ regex 'php7.4'
หมายเหตุ การเลือก 'php7.4-sysvmsg' สำหรับ regex 'php7.4'
หมายเหตุ การเลือก 'php7.4-json' สำหรับ regex 'php7.4'
หมายเหตุ การเลือก 'php7.4-phar' สำหรับ regex 'php7.4'
หมายเหตุ การเลือก 'php7.4-tokenizer' สำหรับ regex 'php7.4'
หมายเหตุ การเลือก 'php7.4-curl' สำหรับ regex 'php7.4'
หมายเหตุ การเลือก 'php7.4-shmop' สำหรับ regex 'php7.4'
หมายเหตุ การเลือก 'php7.4-pdo-mysql' สำหรับ regex 'php7.4'
หมายเหตุ การเลือก 'php7.4-sysvsem' สำหรับ regex 'php7.4'
หมายเหตุ การเลือก 'php7.4-sysvshm' สำหรับ regex 'php7.4'
หมายเหตุ การเลือก 'php7.4-pdo' สำหรับ regex 'php7.4'
หมายเหตุ การเลือก 'php7.4-sockets' สำหรับ regex 'php7.4'
หมายเหตุ การเลือก 'php7.4-ctype' สำหรับ regex 'php7.4'
หมายเหตุ การเลือก 'php7.4-calendar' สำหรับ regex 'php7.4'
หมายเหตุ การเลือก 'php7.4-intl' สำหรับ regex 'php7.4'
หมายเหตุ การเลือก 'php7.4-fileinfo' สำหรับ regex 'php7.4'
หมายเหตุ การเลือก 'php7.4-opcache' สำหรับ regex 'php7.4'
หมายเหตุ การเลือก 'php7.4-soap' สำหรับ regex 'php7.4'
หมายเหตุ การเลือก 'php7.4-xml' สำหรับ regex 'php7.4'
หมายเหตุ การเลือก 'php7.4-xsl' สำหรับ regex 'php7.4'
หมายเหตุ การเลือก 'php7.4-zip' สำหรับ regex 'php7.4'
หมายเหตุ การเลือก 'php7.4-simplexml' สำหรับ regex 'php7.4'
หมายเหตุ การเลือก 'php7.4-mysql' สำหรับ regex 'php7.4'
หมายเหตุ การเลือก 'php7.4-mbstring' สำหรับ regex 'php7.4'
หมายเหตุ การเลือก 'php7.4-readline' สำหรับ regex 'php7.4'
หมายเหตุ การเลือก 'php7.4-exif' สำหรับ regex 'php7.4'
หมายเหตุ การเลือก 'php7.4-mysqlnd' สำหรับ regex 'php7.4'
หมายเหตุ การเลือก 'php7.4-common' สำหรับ regex 'php7.4'
หมายเหตุ การเลือก 'php7.4-bcmath' สำหรับ regex 'php7.4'
หมายเหตุ การเลือก 'php7.4-posix' สำหรับ regex 'php7.4'
หมายเหตุ การเลือก 'php7.4-iconv' สำหรับ regex 'php7.4'
หมายเหตุ การเลือก 'libapache2-mod-php7.4' สำหรับ regex 'php7.4'
หมายเหตุ การเลือก 'php7.4-gettext' สำหรับ regex 'php7.4'
หมายเหตุ การเลือก 'php7.4-xmlwriter' สำหรับ regex 'php7.4'
0 อัพเกรด, 0 ติดตั้งใหม่, 0 ลบและ 0 ไม่อัพเกรด

สิ่งที่น่าสนใจก็คือเมื่อฉันใช้ การค้นหาที่เหมาะสม คือดูเหมือนจะไม่มีแพ็คเกจอะไรให้เลยจริงๆ php.ini รุ่น

~$ sudo apt ค้นหา php7.4
กำลังจัดเรียง...
ค้นหาข้อความแบบเต็ม... เสร็จสิ้น
libapache2-mod-php7.4/now 7.4.13-1+ubuntu16.04.1+deb.sury.org+1 amd64 [residual-config]
  (ไม่มี)

php7.4-bcmath/ตอนนี้ 7.4.13-1+ubuntu16.04.1+deb.sury.org+1 amd64 [residual-config]
  (ไม่มี)

php7.4-cli/ตอนนี้ 7.4.13-1+ubuntu16.04.1+deb.sury.org+1 amd64 [residual-config]

  (ไม่มี)

php7.4-common/now 7.4.13-1+ubuntu16.04.1+deb.sury.org+1 amd64 [residual-config]
  (ไม่มี)

php7.4-curl/ตอนนี้ 7.4.13-1+ubuntu16.04.1+deb.sury.org+1 amd64 [residual-config]
  (ไม่มี)

php7.4-gd/ตอนนี้ 7.4.13-1+ubuntu16.04.1+deb.sury.org+1 amd64 [residual-config]
  (ไม่มี)

php7.4-intl/ตอนนี้ 7.4.13-1+ubuntu16.04.1+deb.sury.org+1 amd64 [residual-config]
  (ไม่มี)

php7.4-json/ตอนนี้ 7.4.13-1+ubuntu16.04.1+deb.sury.org+1 amd64 [residual-config]
  (ไม่มี)

...เป็นต้น

ฉันพลาดอะไรไป

แก้ไข: หลังจากดำเนินการ apt-get ล้าง php7.4 ข้อความสำหรับ (อย่างน้อย PHP 7.4) เปลี่ยนเป็นดังต่อไปนี้:

~$ sudo apt-get install -y php7.4
กำลังอ่านรายการแพ็กเกจ...เสร็จแล้ว
สร้างต้นไม้พึ่งพา       
กำลังอ่านข้อมูลสถานะ...
E: ไม่พบแพ็คเกจ php7.4
E: ไม่พบแพ็คเกจใด ๆ โดย glob 'php7.4'
E: ไม่พบแพ็คเกจใด ๆ โดย regex 'php7.4'
in flag
Ubuntu 18.04 มาพร้อมกับ PHP 7.2 ในที่เก็บเริ่มต้น คุณต้องการ 7.4 โดยเฉพาะหรือเวอร์ชันใดๆ ในบรรทัด 7.x จะเพียงพอหรือไม่
BRO_THOM avatar
cn flag
@matigo ฉันกำลังดำเนินการกู้คืน vm ที่ใช้โดย dev ซึ่งสร้างการอ้างอิงแปลก ๆ ทุกประเภท ดังนั้นวิธีที่เร็วที่สุดในการแก้ไขปัญหาคือลบเวอร์ชัน php ทั้งหมดและติดตั้งใหม่ อย่างไรก็ตามฉันได้ชนกระแทกนี้ ก่อนหน้านี้มีการติดตั้ง 7.0, 7.2, 7.2, 7.3, 7.4 และ 8.0 แต่ใช่ เป้าหมายคือการติดตั้งเวอร์ชันใดก็ได้
in flag
โดยทั่วไป VM จะถือว่าเป็นวัตถุที่ใช้แล้วทิ้งได้ดีที่สุด ดังนั้นจึงอาจเร็วกว่าที่จะไป “โลกที่ไหม้เกรียม” แล้วเริ่มต้นใหม่ ที่กล่าวว่า หากคุณยืนยันที่จะเก็บ VM นี้ไว้ คุณต้องการติดตั้ง PHP เวอร์ชันใด เริ่มต้น 7.2 หรืออย่างอื่น?
BRO_THOM avatar
cn flag
@matigo โชคไม่ดีที่เป็นไปไม่ได้ ฉันก็เป็นแค่ dev ธรรมดาๆ เหมือนกัน และเราไม่มีขั้นตอน/อิมเมจเสมือนที่จะติดตั้งใหม่ ไม่ต้องพูดถึงแพ็คเกจอื่น ๆ ทั้งหมดที่จำเป็น นอกจากนี้ VM ยัง "ใช้งานอยู่"
BRO_THOM avatar
cn flag
@matigo Lol ฉันกด Enter เพื่อให้ความคิดเห็นของฉันถูกส่งไปแล้ว ฉันต้องการทั้ง 7.3 และ 7.4 ฉันจะติดตั้งได้อย่างไร จากสิ่งที่ฉันเข้าใจการใช้ `apt ' นั้นเป็นวิธีเดียว
in flag
เมื่อดูข้อความจาก apt และความคิดเห็นของคุณ ดูเหมือนว่า PHP 7.4 (และอาจมีอีก 5 เวอร์ชัน) ได้รับการติดตั้งแล้วในระบบ การเรียกใช้ `apt install` จะแสดงข้อความด้านบนหากติดตั้งซอฟต์แวร์แล้วและเป็นปัจจุบัน คุณมีปัญหาในการสลับไปมาระหว่างเวอร์ชันหรือไม่?
BRO_THOM avatar
cn flag
@matigo เวอร์ชันอื่นถูกลบไปก่อนหน้านี้โดยใช้คำสั่ง `apt-get remove php7.x` และดูเหมือนจะไม่อยู่ที่ใดในระบบอีกต่อไป ดังนั้นจึงดูเหมือนว่าพวกเขาถอนการติดตั้งอย่างถูกต้อง
BRO_THOM avatar
cn flag
@matigo เพื่อความแน่ใจ ฉันได้ตรวจสอบเพื่อดูว่าฉันจะได้รับข้อความอื่นจาก `apt-get remove php7.4` หรือไม่ แต่มันระบุเพียง '0 อัปเกรดแล้ว 0 ติดตั้งใหม่ 0 จะลบออก และ 0 ไม่ได้อัปเกรด'
BRO_THOM avatar
cn flag
@matigo นอกจากนี้ฉันเพิ่งสังเกตเห็นว่าสภาพแวดล้อมนั้นอยู่บน Ubuntu 16.04 แทนที่จะเป็น 18.04 ที่กล่าวถึงข้างต้น
in flag
16.04 คือ EOL และฉันไม่มีอินสแตนซ์ของระบบที่จะทดสอบโซลูชันอีกต่อไป ฉันจะ *แนะนำอย่างยิ่งให้ดาวน์โหลดไฟล์ .iso 20.04 LTS และสร้าง VM ใหม่เพื่อให้ทีมพัฒนาใช้ พิจารณาว่านี่เป็นประสบการณ์การเรียนรู้ที่ดีที่จะเพิ่มมูลค่าให้กับทีมของคุณ
BRO_THOM avatar
cn flag
คุณถูก. เห็นได้ชัดว่าผู้ดูแลแพ็คเกจ Ubuntu PHP ได้หยุดการสนับสนุน 16.04 แล้ว
Score:2
ธง cn

สำหรับใครที่สนใจ;

การสนับสนุน PHP สำหรับ Ubuntu xenial 16.04 ได้ลดลงตั้งแต่ 2021-06-10ฉันพบสิ่งนี้ด้วยวิธีที่ยากเมื่อฉันลองติดตั้งโมดูล / เวอร์ชัน PHP บน VM อื่น ๆ ที่ใช้ 16.04 และเห็นได้ชัดว่า "ไม่พบแพ็คเกจ" เมื่อเครื่องอื่นติดตั้งไว้ก่อนหน้านี้อย่างง่ายดาย

มีโพสต์เกี่ยวกับ stackoverflow อธิบายสิ่งนี้: https://stackoverflow.com/questions/67920506/unable-to-install-php-7-4-on-ubantu-16-04-even-with-ondrej-ppa-repository-in-apa

Levente avatar
cn flag
การสนับสนุนมาตรฐานใดๆ สำหรับ 16.04 ได้ถูกยกเลิกไปแล้ว รวมถึง OS และแพตช์ความปลอดภัยของแอปพลิเคชัน: https://meta.askubuntu.com/q/19582/1157519 สิ่งนี้ยังถือว่าการเผยแพร่นี้นอกหัวข้อสำหรับเว็บไซต์นี้ด้วย ดูเพิ่มเติมเกี่ยวกับสิ่งนี้และตัวเลือกของคุณเพิ่มเติมในความคิดเห็นของฉันที่นี่และด้านล่าง: https://askubuntu.com/questions/1342277/how-to-change-colour-of-dialogue-window#comment2293435_1342277
BRO_THOM avatar
cn flag
@Levente อาจเป็นความคิดที่จะเก็บเธรดนี้ไว้เนื่องจากมีความสำคัญในวันที่กำลังจะมาถึงสำหรับ devs / administrators ที่ใช้ซอฟต์แวร์รุ่นเก่า?
Levente avatar
cn flag
ฉันไม่ได้ขึ้นอยู่กับการตัดสินใจ... ฉันแค่ต้องการชี้ให้เห็นว่าเพื่อความปลอดภัย คุณต้องอัปเกรดเป็นเวอร์ชันที่รองรับหรือสมัครรับการสนับสนุนเพิ่มเติมอย่างชัดเจน
cl flag
ฉันต้องถอนการติดตั้ง 7.4 แล้วติดตั้งใหม่ ซึ่งจู่ๆ ก็เริ่มล้มเหลว และฉันก็คิดไม่ออกว่าจะพยายามหาสาเหตุจนกระทั่งฉันเห็นคำตอบนี้ คิดว่าฉันเป็นวันที่ 18.04 แต่นี่ทำให้ฉันตรวจสอบและอ๊ะ... ยังคงเป็น 16.04

โพสต์คำตอบ

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