Як оновити PHP в Mac OS X?


99

Я вважаю, що це дуже жахливе запитання, але це дивно, але ця проблема погано задокументована.

Я хотів би оновити PHP, але є кілька проблем:

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

Я бігаю по Леопарду. У мене таке відчуття, що Apple не хоче, щоб ви оновили. Чи дозволить покупка Snow Leopard та модернізації вирішити цю проблему (та майбутні, як вона)?


Відповіді:


90

Ви можете перевірити пакет PHP Marc Liyanage. Він постачається в приємному пакеті для встановлення Mac OS X, який ви можете двічі клацнути. Він тримає це досить актуально.

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

Крім того, хоча оновлення до Snow Leopard не допоможе вам робити оновлення PHP у майбутньому, це, ймовірно, надасть вам новішу версію PHP. У мене працює ОС X 10.6.2, і вона має PHP 5.3.0.


Дякую!! Я нервував цей процес буде складніше.
Гевін

10
Зауважте, що цей пакет не замінює оригінальну PHP-версію на Mac, тому він не працює з поля, вам потрібно додати новий каталог до PATH. Інструкції змусити його працювати є на цій сторінці (я був досить дурним, щоб пропустити це вперше).
Зашифрована мавпа

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

Я спробував це, і у мене виникло багато проблем, як, наприклад, аварійний збій при запуску, мені довелося перевстановити його. Будьте обережні, пробуючи ці команди і стежте за тим, що Brew пропонує вам зробити під час обробки цих рядків.
Брач

Зауважте, що домашня мова / дупи та домашня мова / версії тепер застаріли.
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?
Девід

6

Варіант №1

Як тут рекомендовано , цей сайт пропонує зручний, сучасний один вкладиш.

Це не перезаписує базову версію PHP у вашій системі, а натомість встановлює її чисто в / usr / local / php5.

Варіант №2

Мій кращий метод - це просто встановити через Homebrew .


1
Ти це маєш на увазі ? В ідеалі ви б підсумували все тут, знаєте, для надмірності у випадку розриву зв'язку та простоти! Також варто зазначити, що він також не замінить яблучний php. ; P
Крегокс

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. Якщо говорити, якщо справи стають непростими, це може бути тому, що ОС 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.
Дейв Бахер

PHP 5.3.1 постачається із сніжним леопардом.
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.