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

Я считаю, что это ужасно тупой вопрос, но как ни странно, эта проблема плохо документированы.

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

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

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

12 ответов


возможно, вы захотите проверить PHP-пакет Marc Liyanage. Он поставляется в хорошем пакете установщика Mac OS X, который вы можете дважды щелкнуть. Он держит все в курсе.

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

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


Я использую это: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

затем config в .bash_profile или .bashrc

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

нет встроенного менеджера пакетов. MacPorts не распознает php как установленный пакет, потому что он не устанавливал сам PHP.

вы все еще можете установить его с MacPorts. sudo port install php52 (или любая версия, которую вы хотите) установит PHP.

он не будет перезаписывать версию, поставляемую Apple. Он установит его под /opt/local. Вы можете добавить /opt/local в начало $PATH и используйте версию MacPorts в конфигурации Apache.


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

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

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

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

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

как я уже сказал, Это простой способ, я думаю.


#1

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

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

#2

мой предпочтительный метод-просто установить через Homebrew.


прежде чем я продолжу, У меня есть последняя версия (v5.0.15) of сервер OS X (да, ужасно, я знаю...однако веб-сервер, похоже, работает A-OK). Я искал повсюду в течение нескольких дней, пытаясь обновить (или, по крайней мере, заставить Apache указать) новую версию PHP. Мой mcrypt не работал, вместе с другими расширениями, и я установил и переустановил PHP бесчисленное количество раз из http://php-osx.liip.ch/и другие учебники пока я, наконец, заметил tid-бит информации, написанной в комментарии в одном из многих разных .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. Чтобы вернуться, просто отмените изменение выше.

в любом случае, надеюсь, это полезно для тех, кто тратит бесчисленные часы на это.


обновление до Snow Leopard не решит вашу основную проблему обновления PHP. Apple не всегда поддерживает стороннее программное обеспечение, которое она связывает с обновлениями ОС. И полагаясь на Apple, чтобы получить вам исправление ошибки / обновление для системы безопасности, вам нужны проблемы.

кроме того, я бы рекомендовал установить через MacPorts (и сделать конфигурацию, необходимую для ее использования вместо PHP от Apple), а не пытаться обновить PHP, поставляемый Apple на месте. Все, что вы делаете /usr/bin риски перезаписи некоторыми будущими обновлениями Apple.


сохранение при нажатии клавиш, это сработало на 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

Проверьте текущую версию php в терминале с помощью следующей команды,

$ php -v

вы видите текущую версию php в терминале, и следующая команда запускается в терминале, если вы хотите обновить свою версию php с php concat с версией, понравившейся как,

$ brew install homebrew/php/php71

пожалуйста, перезапустите терминал, если вы закончили обновление версии php и запустите команду.

$ php -v

Теперь вы видите текущую версию PHP в терминале....спасибо


используйте эту команду:

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

лучший способ обновления скомпилировать его из исходников

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

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


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

brew upgrade php56

использовать brew list чтобы проверить установленную версию