ฉันจะอัปเกรด PHP ใน Mac OS X ได้อย่างไร


99

ฉันรู้สึกว่านี่เป็นคำถามที่น่าสงสัยอย่างยิ่งที่จะถาม แต่น่าแปลกที่ปัญหานี้มีเอกสารไม่ดี

ฉันต้องการอัปเกรด PHP แต่มีปัญหาหลายประการ:

  • ไม่มีตัวจัดการแพ็คเกจในตัว MacPorts ไม่รู้จัก php เป็นแพ็คเกจที่ติดตั้งเนื่องจากไม่ได้ติดตั้ง PHP เอง
  • การรันlocate phpบ่งชี้ว่าอาจมีการอ้างอิงจำนวนมาก
  • ฉันไม่รู้ว่า php ถูกติดตั้งอย่างไรเนื่องจากรวมอยู่ในระบบปฏิบัติการดังนั้นฉันจึงไม่รู้ว่าควรติดตั้งจากซอร์สหรือดาวน์โหลดไบนารี ฉันยังไม่รู้วิธีที่เหมาะสมในการถอนการติดตั้งเวอร์ชันก่อนหน้าโดยไม่ทำลายการอ้างอิง

ฉันกำลังวิ่งบน Leopard ฉันมีความรู้สึกว่า Apple ไม่ต้องการให้คุณอัปเกรด การซื้อ Snow Leopard และอัปเกรดจะช่วยแก้ปัญหานี้ได้หรือไม่ (และคนในอนาคตจะชอบ) หรือไม่?


คำตอบ:


91

คุณอาจต้องการตรวจสอบแพ็คเกจ PHP ของ Marc Liyanage มาในแพ็คเกจตัวติดตั้ง MacOS X ที่ดีซึ่งคุณสามารถดับเบิลคลิกได้ เขาทำให้มันสวยอยู่เสมอ

http://php-osx.liip.ch/

นอกจากนี้แม้ว่าการอัปเกรดเป็น Snow Leopard จะไม่ช่วยให้คุณอัปเดต PHP ได้ในอนาคต แต่ก็อาจให้ PHP เวอร์ชันใหม่แก่คุณได้ ฉันใช้ OS X 10.6.2 และมี PHP 5.3.0


1
ขอบคุณ!! ฉันรู้สึกประหม่ากระบวนการนี้จะยากขึ้น
Gavin

10
โปรดทราบว่าแพ็คเกจนี้ไม่ได้แทนที่เวอร์ชัน PHP ดั้งเดิมบน Mac ดังนั้นจึงไม่สามารถใช้งานได้นอกกรอบคุณต้องเพิ่มไดเร็กทอรีใหม่ในไฟล์PATH. คำแนะนำในการทำให้มันใช้งานได้อยู่ในหน้านั้น (ฉันโง่พอที่จะพลาดครั้งแรก)
ลิงรหัส

1
ว้าว! หลังจากใช้เวลาหลายชั่วโมงในการพยายามทำให้กระบวนการติดตั้งผ่าน Homebrew ทำงานฉันก็ลองทำเช่นนี้ เร็วสุดง่ายสุด ๆ และใช้งานได้จริงทันที! ขอบคุณ!
Magnus W

ตัวเลือกที่ดีที่สุดแน่นอน ไม่เจ็บปวดเลย (ตราบใดที่คุณจำให้แน่ใจว่าของคุณ$PATHถูกต้องตามที่ @CodedMonkey ชี้ไว้)
Darragh Enright

2
นอกจากนี้ควรกล่าวถึงว่าแม้จะติดตั้งในไดเร็กทอรีแยกต่างหากโปรแกรมติดตั้งจะกำหนดค่า Apache เพื่อให้เว็บแอปพลิเคชันทั้งหมดของคุณใช้เวอร์ชัน php ที่ติดตั้งใหม่ ดังนั้นเคล็ดลับ PATH จะมีประโยชน์ก็ต่อเมื่อคุณเรียกใช้ php จากบรรทัดคำสั่ง หากคุณต้องการเรียกใช้เว็บแอปพลิเคชันโปรแกรมติดตั้งจะดูแลทุกอย่าง
fiacobelli

51

ฉันใช้สิ่งนี้: https://github.com/Homebrew/homebrew-php

คำสั่งคือ:

$ xcode-select --install

$ brew tap homebrew/dupes
$ brew tap homebrew/versions
$ brew tap homebrew/homebrew-php

$ brew options php56
$ brew install php56

จากนั้นกำหนดค่าใน.bash_profileหรือ.bashrc

# Homebrew PHP CLI
export PATH="$(brew --prefix homebrew/php/php56)/bin:$PATH"

โปรดทราบว่าการดำเนินการนี้จะไม่อัปเดต PHP ในตัว แต่ติดตั้งใหม่ ฉันพบปัญหาร้ายแรงเมื่อติดตั้งสองเวอร์ชันแม้จะมีความสับสน ...
Julian F.Winert

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

โปรดทราบว่า homebrew / dupes และ homebrew / เวอร์ชันเลิกใช้งานแล้ว
medinasod

14

ฉันคิดว่าวิธีง่ายๆวิธีหนึ่งคือ:

1 - ตรวจสอบว่า PHP ปัจจุบันของคุณอยู่ที่ไหน:

$ which php
$ /usr/local/bin/php

เห็นมั้ย? โดยปกติคำสั่งของเราที่เรารันคือลิงค์ใน / usr / local / bin ดังนั้น ...

2 - ยกเลิกการเชื่อมโยงลิงค์ปัจจุบันของ PHP

unlink /usr/local/bin/php

หากคุณต้องการก่อนที่จะยกเลิกการเชื่อมโยงให้ตรวจสอบเส้นทางจากนั้นลบไฟล์ php (do ls -al /usr/local/bin| grep php แล้วrm -rfลงในเส้นทางที่ต้องการ)

3 - ติดตั้ง PHP 7.1

curl -s http://php-osx.liip.ch/install.sh | bash -s 7.1

4 - สร้างลิงค์ใหม่ (โดยใช้ php 7.1 bin ที่คุณติดตั้งไว้)

ln /usr/local/php5-7.1.9-20170914-100859/bin/php /usr/local/bin/php

อย่างที่ฉันพูดมันเป็นวิธีง่ายๆที่ฉันคิด


8

ไม่มีตัวจัดการแพ็คเกจในตัว MacPorts ไม่รู้จัก php เป็นแพ็คเกจที่ติดตั้งเนื่องจากไม่ได้ติดตั้ง PHP เอง

คุณยังสามารถติดตั้งกับ MacPorts ได้ sudo port install php52(หรือเวอร์ชันใดก็ตามที่คุณต้องการ) จะติดตั้ง PHP

จะไม่เขียนทับเวอร์ชันที่ Apple จัดหาให้ มันจะติดตั้งภายใต้/opt/local. คุณสามารถเพิ่ม/opt/localไปยังจุดเริ่มต้นของคุณ$PATHและใช้เวอร์ชัน MacPorts ในการกำหนดค่า Apache ของคุณ


คุณคิดชื่อแพ็คเกจเวอร์ชัน php ได้อย่างไร
เดวิด

6

ตัวเลือกที่ 1

ตามคำแนะนำของที่นี่ , เว็บไซต์นี้ให้ความสะดวกสบายขึ้นไปวันหนึ่งซับ

สิ่งนี้ไม่ได้เขียนทับ PHP เวอร์ชันพื้นฐานบนระบบของคุณ แต่จะติดตั้งใน / usr / local / php5 แทน

ตัวเลือก # 2

วิธีการที่ต้องการของฉันเป็นเพียงการติดตั้งผ่าน Homebrew


1
คุณหมายถึงสิ่งนี้ ? ตามหลักการแล้วคุณจะสรุปทุกอย่างที่นี่คุณก็รู้เพื่อความซ้ำซ้อนในกรณีที่ลิงค์แตกและเพื่อความง่าย นอกจากนี้ที่น่าสังเกตว่าจะไม่แทนที่ apple php ด้วย ; P
cregox

3

ก่อนที่ผมจะไปในที่ที่ฉันมีเวอร์ชันล่าสุด (v5.0.15) ของOS X Server (ใช่น่ากลัวฉันรู้ ... แต่เว็บเซิร์ฟเวอร์ที่ดูเหมือนว่าจะทำงาน A-OK) ฉันค้นหาสูงและต่ำเป็นเวลาหลายวันในการพยายามอัปเดต (หรืออย่างน้อยก็ให้ Apache ชี้ไปที่) PHP เวอร์ชันใหม่ ของฉันใช้งานmcryptไม่ได้พร้อมกับส่วนขยายอื่น ๆ และฉันได้ติดตั้งและติดตั้ง PHP ใหม่นับครั้งไม่ถ้วนจากhttp://php-osx.liip.ch/ และแบบฝึกหัดอื่น ๆจนกระทั่งในที่สุดฉันก็สังเกตเห็นข้อมูลเล็กน้อยที่เขียนไว้ในความคิดเห็นในหนึ่งใน.confไฟล์ต่างๆมากมายOS X Server เก็บไว้ซึ่ง OS X Server จะโหลด.confไฟล์ที่กำหนดเองก่อนที่จะโหลด Apache httpd.conf (อยู่ที่/etc/apache2/httpd.conf ) ไฟล์เซิร์ฟเวอร์ตั้งอยู่:

/Library/Server/Web/Config/apache2/httpd_server_app.conf

เมื่อคุณเปิดไฟล์นี้คุณต้องแสดงความคิดเห็นในบรรทัดดังนี้:

#LoadModule php5_module libexec/apache2/libphp5.so

จากนั้นเพิ่มเส้นทางที่ถูกต้อง(ซึ่งควรติดตั้งแล้วหากคุณติดตั้งผ่านhttp://php-osx.liip.ch/ลิงค์ ) :

LoadModule php5_module /usr/local/php5/libphp5.so

หลังจากการแก้ไขนี้ในที่สุด PHP ของฉันก็โหลดการติดตั้ง PHP ที่ถูกต้อง ที่ถูกกล่าวว่าหากสิ่งต่างๆไม่เป็นระเบียบอาจเป็นเพราะ OS X ถูกสร้างขึ้นมาเพื่อทำงานนอกการติดตั้ง PHP ดั้งเดิมในขณะที่ติดตั้ง OS X หากต้องการเปลี่ยนกลับเพียงแค่เลิกทำการเปลี่ยนแปลงด้านบน

อย่างไรก็ตามหวังว่านี่จะเป็นประโยชน์สำหรับใครก็ตามที่ใช้เวลานับไม่ถ้วนกับเรื่องนี้


1
ความคิดเห็นนี้ช่วยฉันได้มาก!
GuyGizmo

2

การอัปเกรดเป็น Snow Leopard จะไม่ช่วยแก้ปัญหาหลักในการอัปเดต PHP ให้ทันสมัยอยู่เสมอ Apple ไม่ได้เก็บซอฟต์แวร์ของบุคคลที่สามที่รวมเข้ากับการอัปเดตระบบปฏิบัติการอยู่เสมอ และการพึ่งพา Apple เพื่อแก้ไขข้อบกพร่อง / การอัปเดตความปลอดภัยที่คุณต้องการคือการขอปัญหา

นอกจากนี้ฉันขอแนะนำให้ติดตั้งผ่าน MacPorts (และทำการกำหนดค่าที่จำเป็นเพื่อใช้แทน PHP ของ Apple) แทนที่จะพยายามอัปเกรด PHP ที่ Apple ให้มา ทุกสิ่งที่คุณทำ/usr/binอาจเสี่ยงต่อการถูกเขียนทับโดยการอัปเดตของ Apple ในอนาคต


การอัปเดตความปลอดภัยของ Apple 2010-002 อัปเดต PHP ของ Leopard เป็น 5.2.12
Dave Bacher

PHP 5.3.1 มาพร้อมกับ Snow Leopard
JAL

2

ประหยัดเมื่อกดแป้นพิมพ์สิ่งนี้ใช้ได้กับ MacOS Sierra:

$ brew install homebrew/php/php71

$ /usr/local/opt/php71/bin/php -v
PHP 7.1.4 (cli) (built: Apr 14 2017 15:02:16) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies

2

ตรวจสอบเวอร์ชัน php ปัจจุบันของคุณในเทอร์มินัลด้วยคำสั่งต่อไปนี้

$ php -v

คุณเห็นเวอร์ชัน php ปัจจุบันในเทอร์มินัลและคำสั่งถัดไปทำงานในเทอร์มินัลหากคุณต้องการอัปเกรดเวอร์ชัน php ของคุณด้วย php concat กับเวอร์ชันที่ชอบเป็น

$ brew install homebrew/php/php71

โปรดรีสตาร์ทเทอร์มินัลหากคุณติดตั้งการอัพเกรดเวอร์ชัน php เสร็จแล้วและรันคำสั่ง

$ php -v

ตอนนี้คุณเห็นเวอร์ชัน php ปัจจุบันในเทอร์มินัลแล้ว .... ขอบคุณ



0

คุณสามารถใช้ curl เพื่ออัปเดตเวอร์ชัน php

curl -s http://php-osx.liip.ch/install.sh | bash -s 7.3

ขั้นตอนสุดท้าย:

export PATH=/usr/local/php5/bin:$PATH

ตรวจสอบเวอร์ชันที่อัปเกรด

php -v

-1

วิธีที่ดีที่สุดในการอัปเกรดคือรวบรวมจากแหล่งที่มา

ดูบทแนะนำนี้ที่อาจเป็นประโยชน์สำหรับคุณ

http://www.computersnyou.com/2012/09/how-to-upgrade-php-in-mac-osx-compiling.html


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

1
และใช่ ... ลิงค์เสีย! :-D
emale

-2

เพื่ออัพเกรด php7 เป็นเวอร์ชันเสถียรล่าสุด brew upgrade php7 หรือสำหรับ php5.X เป็นเวอร์ชันเสถียรล่าสุด

brew upgrade php56

ใช้brew listตรวจสอบเวอร์ชันที่ติดตั้ง

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