Как обновить PHP в Mac OS X?


99

Мне кажется, это ужасно тупой вопрос, но, как ни странно, эта проблема плохо документирована.

Я хотел бы обновить PHP, но есть несколько проблем:

  • Нет встроенного менеджера пакетов. MacPorts не распознает php как установленный пакет, потому что он не устанавливал сам PHP.
  • Запуск locate phpуказывает на наличие, вероятно, множества зависимостей.
  • Я не знаю, КАК был установлен php, поскольку он был включен в ОС, поэтому я не знаю, следует ли мне устанавливать из исходников или загружать двоичные файлы. Я также не знаю, как правильно удалить предыдущую версию без нарушения зависимостей.

Я бегаю на Леопарде. У меня такое чувство, что Apple не хочет, чтобы вы обновлялись. Решит ли покупка Snow Leopard и апгрейд эту проблему (и будущие подобные)?


Ответы:


90

Вы можете попробовать PHP-пакет Марка Лиянаге. Он поставляется в красивом пакете установщика Mac OS X, который можно дважды щелкнуть. Он держит его в актуальном состоянии.

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

Кроме того, хотя обновление до Snow Leopard не поможет вам обновлять PHP в будущем, оно, вероятно, даст вам более новую версию PHP. Я использую OS X 10.6.2 и PHP 5.3.0.


Спасибо!! Я волновался, что этот процесс будет сложнее.
Гэвин

10
Обратите внимание, что этот пакет не отменяет исходную версию PHP на Mac, поэтому он не работает из коробки, вам нужно добавить новый каталог в PATH. Инструкции, как заставить его работать, находятся на этой странице (я был достаточно глуп, чтобы пропустить это в первый раз).
Coded Monkey

1
Вот Это Да! Потратив часы на попытки заставить процесс установки через Homebrew работать, я попробовал это. Очень быстро, очень просто, и это действительно сработало прямо из коробки! Спасибо!
Magnus W

Однозначно лучший вариант. Так безболезненно (если вы не забываете убедиться, что ваше $PATHверное, как указано @CodedMonkey)
Дарра Энрайт

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, а установит новый. У меня возникли серьезные проблемы с установкой двух версий, несмотря на путаницу ...
Джулиан Ф. Вайнерт,

Я попробовал это, и у меня было много проблем, например, сбой bash при запуске, мне пришлось его переустановить. Будьте осторожны при использовании этих команд и следите за тем, что Brew предлагает вам делать при обработке этих строк.
Brac

Обратите внимание, что homebrew / dupes и homebrew / versions теперь устарели.
medinasod

14

Я думаю, что один простой способ сделать это:

1 - Проверьте, где находится ваш текущий PHP:

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

Ты видишь? Обычно наши команды, которые мы запускаем, представляют собой ссылку в / usr / local / bin, поэтому ...

2 - Отключить текущую ссылку PHP

unlink /usr/local/bin/php

Если вы предпочитаете, прежде чем отключать его, проверьте путь, а затем удалите файлы php (выполните 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?
David

6

Опция 1

Как рекомендовано здесь , этот сайт предоставляет удобный обновленный лайнер.

Это не перезаписывает базовую версию PHP в вашей системе, а вместо этого чисто устанавливает ее в / usr / local / php5.

Вариант # 2

Я предпочитаю просто установить через Homebrew .


1
Вы имеете в виду это ? В идеале вы бы суммировали все здесь, знаете ли, для избыточности на случай разрыва связи и для простоты! Также стоит отметить, что он также не заменит яблочный php. ; P
cregox

3

Прежде чем продолжить, у меня есть последняя версия (v5.0.15) OS X Server (да, ужасно, я знаю ... однако веб-сервер, похоже, работает нормально) . Я искал много дней подряд, пытаясь обновить (или хотя бы заставить 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 02

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 -s http://php-osx.liip.ch/install.sh | bash -s 7.0

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
Вам следует избегать простой ссылки на ресурс без обобщения его содержания здесь. Когда ссылка прерывается, ваш ответ теряет актуальность.
Скотт

1
И да ... ссылка не работает! :-D
emale

-2

для обновления php7 до последней стабильной версии brew upgrade php7 или для php5.X до последней стабильной версии

brew upgrade php56

используйте brew listдля проверки установленной версии

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.