Làm cách nào để nâng cấp PHP trong Mac OS X?


99

Tôi cảm thấy đây là một câu hỏi vô cùng ngớ ngẩn để hỏi, nhưng kỳ lạ là vấn đề này được ghi chép lại rất ít.

Tôi muốn nâng cấp PHP, nhưng có một số vấn đề:

  • Không có trình quản lý gói tích hợp sẵn. MacPorts không nhận ra php là một gói đã cài đặt vì nó không tự cài đặt PHP.
  • Đang chạy locate phpcho biết có lẽ có nhiều phụ thuộc.
  • Tôi không biết php đã được cài đặt như thế nào, vì nó được bao gồm trong hệ điều hành, vì vậy tôi không biết nên cài đặt từ nguồn hay tải xuống các tệp nhị phân. Tôi cũng không biết cách thích hợp để gỡ cài đặt phiên bản trước mà không phá vỡ các phần phụ thuộc.

Tôi đang chạy trên Leopard. Tôi có cảm giác Apple không muốn bạn nâng cấp. Mua Snow Leopard và nâng cấp có giải quyết được vấn đề này không (và những người trong tương lai sẽ thích nó)?


Câu trả lời:


90

Bạn có thể muốn xem gói PHP của Marc Liyanage. Nó có trong một gói trình cài đặt Mac OS X đẹp mắt mà bạn có thể nhấp đúp vào. Anh ấy giữ nó khá cập nhật.

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

Ngoài ra, mặc dù nâng cấp lên Snow Leopard sẽ không giúp bạn cập nhật PHP trong tương lai, nhưng nó có thể sẽ cung cấp cho bạn phiên bản PHP mới hơn. Tôi đang chạy OS X 10.6.2 và nó có PHP 5.3.0.


Cảm ơn bạn!! Tôi lo lắng quá trình này sẽ khó khăn hơn.
Gavin

10
Lưu ý rằng gói này không ghi đè phiên bản PHP gốc trên Mac, vì vậy nó không hoạt động tốt, bạn cần thêm thư mục mới vào PATH. Hướng dẫn để làm cho nó hoạt động có trên trang đó (tôi đã đủ ngu ngốc để bỏ lỡ điều đó lần đầu tiên).
Khỉ mã hóa

1
Chà! Sau hàng giờ cố gắng để quá trình cài đặt thông qua Homebrew hoạt động, tôi đã thử điều này. Siêu nhanh, siêu dễ dàng và nó thực sự hoạt động ngay lập tức! Cảm ơn!
Magnus W

Chắc chắn là lựa chọn tốt nhất. Vì vậy, không đau (miễn là bạn nhớ để đảm bảo bạn $PATHlà chính xác như ra nhọn bởi @CodedMonkey)
Darragh Enright

2
Ngoài ra, điều đáng nói là mặc dù cài đặt trong một thư mục riêng, trình cài đặt cấu hình Apache để tất cả các ứng dụng web của bạn sử dụng phiên bản php mới được cài đặt. Vì vậy, thủ thuật PATH chỉ hữu ích nếu bạn chạy php từ dòng lệnh. Nếu bạn muốn chạy các ứng dụng web, trình cài đặt sẽ xử lý mọi thứ.
fiacobelli

51

Tôi sử dụng cái này: https://github.com/Homebrew/homebrew-php

Lệnh là:

$ xcode-select --install

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

$ brew options php56
$ brew install php56

Sau đó, cấu hình trong của bạn .bash_profilehoặc.bashrc

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

Lưu ý rằng điều này sẽ không cập nhật PHP nhúng, nhưng cài đặt một PHP mới. Tôi chạy vào rắc rối nghiêm trọng có hai phiên bản được cài đặt, bất chấp sự nhầm lẫn ...
Julian F. Weinert

Tôi đã thử điều này và cũng gặp rất nhiều vấn đề, chẳng hạn như lỗi bash khi khởi chạy, tôi phải cài đặt lại nó. Hãy cẩn thận khi bạn thử các lệnh này và để ý xem Brew đề xuất bạn nên làm gì trong khi xử lý các dòng này.
Brac

Lưu ý rằng homebrew / dupes và homebrew / phiên bản hiện không được dùng nữa.
medinasod

14

Tôi nghĩ một cách đơn giản để làm điều đó, là:

1 - Kiểm tra xem PHP hiện tại của bạn ở đâu:

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

Bạn thấy không? Thông thường, các lệnh của chúng tôi mà chúng tôi chạy là một liên kết trong / usr / local / bin để ...

2 - Bỏ liên kết liên kết hiện tại này của PHP

unlink /usr/local/bin/php

Nếu bạn thích, trước khi hủy liên kết, hãy kiểm tra đường dẫn và sau đó xóa các tệp php (thực hiện ls -al /usr/local/bin| grep php và sau đó rm -rfvào đường dẫn mong muốn)

3 - Cài đặt PHP 7.1

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

4 - Tạo liên kết mới (sử dụng php 7.1 bin mà bạn đã cài đặt)

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

Như tôi đã nói, đó là một cách tôi nghĩ đơn giản.


8

Không có trình quản lý gói tích hợp sẵn. MacPorts không nhận ra php là một gói đã cài đặt vì nó không tự cài đặt PHP.

Bạn vẫn có thể cài đặt nó với MacPorts. sudo port install php52(hoặc bất kỳ phiên bản nào bạn muốn) sẽ cài đặt PHP.

Nó sẽ không ghi đè lên phiên bản do Apple cung cấp. Nó sẽ cài đặt nó bên dưới /opt/local. Bạn có thể thêm /opt/localvào đầu $PATHvà sử dụng phiên bản MacPorts trong cấu hình Apache của bạn.


làm thế nào để bạn tìm ra tên gói phiên bản php?
David

6

Lựa chọn 1

Theo đề xuất ở đây , trang web này cung cấp một lớp lót tiện lợi, cập nhật.

Thao tác này không ghi đè phiên bản cơ sở của PHP trên hệ thống của bạn, mà thay vào đó, cài đặt nó một cách sạch sẽ trong / usr / local / php5.

Lựa chọn 2

Phương pháp ưa thích của tôi là chỉ cài đặt qua Homebrew .


1
Ý bạn là cái này ? Lý tưởng nhất là bạn nên tổng hợp mọi thứ ở đây, bạn biết đấy, để dự phòng trong trường hợp ngắt liên kết và để đơn giản hơn! Cũng cần lưu ý rằng nó cũng sẽ không thay thế apple php. ; P
cregox

3

Trước khi tiếp tục, tôi có phiên bản mới nhất (v5.0.15) của OS X Server (vâng, thật kinh khủng, tôi biết ... tuy nhiên, máy chủ web dường như hoạt động A-OK) . Tôi đã tìm kiếm cao và thấp trong nhiều ngày để cố gắng cập nhật (hoặc ít nhất là để Apache trỏ tới) một phiên bản PHP mới. Của tôi mcryptđã không hoạt động, cùng với các tiện ích mở rộng khác và tôi đã cài đặt và cài đặt lại PHP vô số lần từ http://php-osx.liip.ch/ và các hướng dẫn khác cho đến khi cuối cùng tôi nhận thấy một chút thông tin được viết trong nhận xét ở một trong các nhiều .conftệp khác nhau mà OS X Server giữ lại là OS X Server tải .conftệp tùy chỉnh của chính nó trước khi tải Apache httpd.conf (đặt tại /etc/apache2/httpd.conf) . Tệp máy chủ được đặt:

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

Khi bạn mở tệp này, bạn phải nhận xét dòng này như sau:

#LoadModule php5_module libexec/apache2/libphp5.so

Sau đó, thêm đường dẫn chính xác ( đường dẫn đã được cài đặt sẵn nếu bạn đã cài đặt qua liên kết http://php-osx.liip.ch/ ) :

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

Sau sửa đổi này, PHP của tôi cuối cùng đã tải đúng cài đặt PHP. Điều đó đang được nói, nếu mọi thứ không suôn sẻ, có thể là do OS X được tạo ra để hoạt động khỏi cài đặt gốc của PHP tại thời điểm cài đặt OS X. Để hoàn nguyên, chỉ cần hoàn tác thay đổi ở trên.

Dù sao, hy vọng điều này sẽ hữu ích cho bất kỳ ai khác dành vô số giờ cho việc này.


1
Nhận xét này đã tiết kiệm cho tôi rất nhiều thời gian!
GuyGizmo

2

Nâng cấp lên Snow Leopard sẽ không giải quyết được vấn đề chính của bạn là luôn cập nhật PHP. Apple không phải lúc nào cũng cập nhật phần mềm của bên thứ ba đi kèm với các bản cập nhật hệ điều hành. Và việc dựa vào Apple để cung cấp cho bạn bản sửa lỗi / cập nhật bảo mật mà bạn cần là một vấn đề nan giải.

Ngoài ra, tôi khuyên bạn nên cài đặt thông qua MacPorts (và thực hiện cấu hình cần thiết để sử dụng nó thay vì PHP của Apple) thay vì cố gắng nâng cấp PHP do Apple cung cấp tại chỗ. Bất cứ điều gì bạn làm đều có /usr/binnguy cơ bị ghi đè bởi một số bản cập nhật Apple trong tương lai.


Bản cập nhật bảo mật 2010-002 của Apple cập nhật PHP của Leopard lên 5.2.12.
Dave Bacher

PHP 5.3.1 đi kèm với Snow Leopard.
JAL

2

Tiết kiệm khi nhấn phím, điều này đã hoạt động trên 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

Kiểm tra phiên bản php hiện tại của bạn trong terminal bằng lệnh sau,

$ php -v

Bạn thấy phiên bản php hiện tại trong terminal và lệnh tiếp theo chạy trong terminal nếu bạn muốn nâng cấp phiên bản php của mình bằng php concat với phiên bản như,

$ brew install homebrew/php/php71

Vui lòng khởi động lại thiết bị đầu cuối nếu bạn đã cài đặt xong nâng cấp phiên bản php và chạy lệnh.

$ php -v

Bây giờ bạn thấy phiên bản php hiện tại trong terminal .... cảm ơn


0

Sử dụng lệnh này:

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

0

Bạn có thể sử dụng curl để cập nhật phiên bản php.

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

Bước cuối cùng:

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

Kiểm tra phiên bản nâng cấp

php -v

-1

cách tốt nhất để nâng cấp là biên dịch nó từ nguồn

xem hướng dẫn này có thể hữu ích cho bạn

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


21
Bạn nên tránh chỉ liên kết đến một tài nguyên mà không tóm tắt nội dung của nó ở đây. Khi liên kết bị hỏng, câu trả lời của bạn sẽ không còn phù hợp nữa.
Scott

1
Và có ... liên kết bị hỏng! :-D
emale

-2

để nâng cấp php7 lên phiên bản ổn định mới nhất brew upgrade php7 hoặc cho php5.X lên phiên bản ổn định mới nhất

brew upgrade php56

sử dụng brew listđể kiểm tra phiên bản đã cài đặt

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.