Jak zaktualizować PHP w Mac OS X?

99

Wydaje mi się, że to strasznie tępe pytanie, ale co dziwne, problem ten jest słabo udokumentowany.

Chciałbym zaktualizować PHP, ale jest kilka problemów:

  • Nie ma wbudowanego menedżera pakietów. MacPorts nie rozpoznaje php jako zainstalowanego pakietu, ponieważ nie zainstalował samego PHP.
  • Uruchomienie locate phpwskazuje, że prawdopodobnie istnieje wiele zależności.
  • Nie wiem JAK został zainstalowany php, ponieważ był dołączony do systemu operacyjnego, więc nie wiem, czy powinienem zainstalować ze źródła, czy pobrać pliki binarne. Nie znam też prawidłowego sposobu odinstalowania poprzedniej wersji bez zrywania zależności.

Biegam na Leopardzie. Mam przeczucie, że Apple nie chce, żebyś aktualizował. Czy zakup systemu Snow Leopard i uaktualnienia rozwiązałby ten problem (i przyszłe podobne)?

szefa
źródło

Odpowiedzi:

90

Możesz sprawdzić pakiet PHP Marc Liyanage. Jest dostarczany w ładnym pakiecie instalacyjnym Mac OS X, który można kliknąć dwukrotnie. Utrzymuje to na bieżąco.

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

Ponadto, chociaż aktualizacja do Snow Leopard nie pomoże ci w aktualizowaniu PHP w przyszłości, prawdopodobnie da ci nowszą wersję PHP. Używam OS X 10.6.2 i mam PHP 5.3.0.

Scott Saunders
źródło
Dziękuję Ci!! Bałem się, że ten proces będzie trudniejszy.
Gavin,
10
Zauważ, że ten pakiet nie zastępuje oryginalnej wersji PHP na Macu, więc nie działa po wyjęciu z pudełka, musisz dodać nowy katalog do PATH. Instrukcje, jak to działa, są na tej stronie (byłem na tyle głupi, że za pierwszym razem to przegapiłem).
Coded Monkey
1
Łał! Po godzinach spędzonych na próbach uruchomienia procesu instalacji przez Homebrew, spróbowałem tego. Super szybki, super łatwy i faktycznie działał od razu po wyjęciu z pudełka! Dzięki!
Magnus W
Zdecydowanie najlepsza opcja. Tak bezbolesne (o ile pamiętasz, aby upewnić się, że masz $PATHrację, jak wskazał @CodedMonkey)
Darragh Enright
2
Warto też wspomnieć, że pomimo instalacji w osobnym katalogu instalator konfiguruje Apache tak, aby wszystkie Twoje aplikacje internetowe korzystały z nowo zainstalowanej wersji php. Tak więc sztuczka PATH jest przydatna tylko wtedy, gdy uruchamiasz php z wiersza poleceń. Jeśli chcesz uruchamiać aplikacje internetowe, instalator zajmie się wszystkim.
fiacobelli
51

Używam tego: https://github.com/Homebrew/homebrew-php

Polecenie to:

$ xcode-select --install

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

$ brew options php56
$ brew install php56

Następnie skonfiguruj w swoim .bash_profilelub.bashrc

# Homebrew PHP CLI
export PATH="$(brew --prefix homebrew/php/php56)/bin:$PATH"
Taro Alan
źródło
Zauważ, że to nie zaktualizuje osadzonego PHP, ale zainstaluje nowe. Miałem poważne problemy z zainstalowaniem dwóch wersji, pomimo zamieszania ...
Julian F. Weinert
Próbowałem tego i miałem wiele problemów, takich jak awaria basha podczas uruchamiania, musiałem go ponownie zainstalować. Zachowaj ostrożność podczas wypróbowywania tych poleceń i uważaj na to, co sugeruje Brew podczas przetwarzania tych linii.
Brac
Zauważ, że homebrew / dupes i homebrew / wersje są teraz przestarzałe.
medinasod
14

Myślę, że jednym prostym sposobem na to jest:

1 - Sprawdź, gdzie jest Twoje obecne PHP:

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

Zobaczysz? Zwykle nasze polecenia, które uruchamiamy, są odsyłaczami do / usr / local / bin, więc ...

2 - Odłącz bieżące łącze PHP

unlink /usr/local/bin/php

Jeśli wolisz, przed odłączeniem sprawdź ścieżkę, a następnie usuń pliki php (zrób ls -al /usr/local/bin| grep php, a następnie rm -rfdo żądanej ścieżki)

3 - Zainstaluj PHP 7.1

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

4 - Utwórz nowy link (używając zainstalowanego bin php 7.1)

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

Jak powiedziałem, myślę, że to prosty sposób.

Paulo Victor
źródło
8

Nie ma wbudowanego menedżera pakietów. MacPorts nie rozpoznaje php jako zainstalowanego pakietu, ponieważ nie zainstalował samego PHP.

Nadal możesz zainstalować go za pomocą MacPorts. sudo port install php52(lub dowolna wersja) zainstaluje PHP.

Nie nadpisze wersji dostarczonej przez Apple. Zainstaluje go pod /opt/local. Możesz dodać /opt/localna początku $PATHi używać wersji MacPorts w konfiguracji Apache.

mipadi
źródło
jak ustalić nazwę pakietu wersji php?
David
6

Opcja 1

Zgodnie z zaleceniami tutaj , ta strona zapewnia wygodny, aktualny jeden liner.

To nie nadpisuje podstawowej wersji PHP w twoim systemie, ale zamiast tego instaluje ją czysto w / usr / local / php5.

Opcja 2

Moją preferowaną metodą jest instalacja przez Homebrew .

user456584
źródło
1
Masz na myśli to ? Idealnie byłoby podsumować wszystko tutaj, wiesz, ze względu na nadmiarowość w przypadku zerwania łącza i dla uproszczenia! Warto również zauważyć, że nie zastąpi on również php Apple. ; P
cregox
3

Zanim przejdę dalej, mam najnowszą wersję (v5.0.15) OS X Server (tak, okropnie, wiem ... jednak serwer WWW wydaje się działać OK) . Szukałem wysoko i nisko przez wiele dni próbując zaktualizować (lub przynajmniej sprawić, by Apache wskazywał) nową wersję PHP. Mój mcryptnie działał wraz z innymi rozszerzeniami i instalowałem i ponownie instalowałem PHP niezliczoną ilość razy z http://php-osx.liip.ch/ i innych tutoriali, aż w końcu zauważyłem odrobinę informacji napisanej w komentarzu w jednym z wiele różnych .confplików przechowywanych przez OS X Server, czyli że OS X Server ładuje swój własny .confplik niestandardowy przed załadowaniem Apache httpd.conf (znajdującego się w /etc/apache2/httpd.conf) . Plik serwera znajduje się:

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

Kiedy otwierasz ten plik, musisz zakomentować tę linię w następujący sposób:

#LoadModule php5_module libexec/apache2/libphp5.so

Następnie dodaj poprawną ścieżkę (która powinna być już zainstalowana, jeśli zainstalowałeś przez link http://php-osx.liip.ch/ ) :

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

Po tej modyfikacji moje PHP w końcu załadowało poprawną instalację PHP. Biorąc to pod uwagę, jeśli sprawy pójdą nie tak, może to być spowodowane tym, że OS X jest zmuszony do pracy z natywną instalacją PHP w czasie instalacji OS X. Aby cofnąć, po prostu cofnij powyższą zmianę.

W każdym razie, miejmy nadzieję, że jest to pomocne dla każdego, kto spędza nad tym niezliczone godziny.

Rasclatt
źródło
1
Ten komentarz zaoszczędził mi dużo czasu!
GuyGizmo
2

Aktualizacja do Snow Leopard nie rozwiąże podstawowego problemu związanego z aktualizowaniem PHP. Apple nie zawsze aktualizuje oprogramowanie innych firm, które dołącza, do aktualizacji systemu operacyjnego. A poleganie na firmie Apple w celu uzyskania potrzebnej poprawki / aktualizacji zabezpieczeń wymaga kłopotów.

Ponadto zalecałbym instalację przez MacPorts (i wykonanie konfiguracji niezbędnej do korzystania z niego zamiast PHP firmy Apple), zamiast próbować aktualizować PHP dostarczone przez Apple na miejscu. Wszystko, co zrobisz, aby /usr/binryzykować zastąpienie przez jakąś przyszłą aktualizację Apple.

Dave Bacher
źródło
Aktualizacja zabezpieczeń 2010-002 firmy Apple aktualizuje PHP Leoparda do wersji 5.2.12.
Dave Bacher
PHP 5.3.1 jest dostarczane z systemem Snow Leopard.
JAL
2

Oszczędzanie na naciśnięciach klawiszy działało na 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
Cees Timmerman
źródło
2

Sprawdź aktualną wersję php w terminalu za pomocą następującego polecenia,

$ php -v

Widzisz aktualną wersję php w terminalu, a następne polecenie uruchom w terminalu, jeśli chcesz zaktualizować swoją wersję php za pomocą php concat z wersją polubioną jako,

$ brew install homebrew/php/php71

Uruchom ponownie terminal, jeśli zakończyłeś instalację aktualizacji wersji php i uruchom polecenie.

$ php -v

Teraz widzisz aktualną wersję php w terminalu… dziękuję

yekyawaung
źródło
0

Użyj tego polecenia:

curl -s http://php-osx.liip.ch/install.sh | bash -s 7.0
Aghaie
źródło
0

Możesz użyć curl do aktualizacji wersji php.

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

Ostatni krok:

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

Sprawdź zaktualizowaną wersję

php -v
Shuvo Habib
źródło
-1

Najlepszym sposobem na aktualizację jest skompilowanie go ze źródeł

zobacz ten samouczek, który może być dla Ciebie pomocny

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

riyush
źródło
21
Należy unikać prostego tworzenia linków do zasobu bez podsumowania jego zawartości w tym miejscu. Kiedy łącze się zepsuje, Twoja odpowiedź nie będzie już aktualna.
Scott,
1
I tak ... link jest uszkodzony! :-D
emale
-2

aby zaktualizować php7 do najnowszej stabilnej wersji brew upgrade php7 lub php5.X do najnowszej stabilnej wersji

brew upgrade php56

użyj, brew listaby sprawdzić zainstalowaną wersję

Saurabh Chandra Patel
źródło