Как мне обновить версию PHP на MacOS Server? - PullRequest
0 голосов
/ 09 июня 2019

Добрый день,

Просто чтобы уточнить, я спрашиваю о MacOS Server, приложении, опубликованном Apple.Я не имею в виду системную версию PHP.

Я уже давно искал везде, Google, SO, форумы, и не нашел решения.

ЯНевозможно обновить мою версию PHP для MacOS Server, независимо от того, что я пытаюсь.Просто нет никакой документации.

Я обновил приложение из App Store, обновил версию PHP на своем Mac и изменил PATH, чтобы отразить новую установку PHP,и когда я делаю php -v в Терминале, он показывает правильную версию, которую я хочу.

Тем не менее, MacOS Server, кажется, полностью незатронут.Я пытался искать везде, где это возможно, но я не вижу отдельной установки PHP для сервера, и я искал файлы конфигурации везде, но не вижу, где и какой PHP он использует.

Любойhelp?

РЕДАКТИРОВАТЬ: Я только что понял, что это целое приложение, многие части которого активно используют PHP, и обновление его самостоятельно может сломать эти вещи, но я готов дать ему шанс, если он ввсе возможно.Я имею в виду, что худшее, что может случиться, - это удалить и переустановить Сервер, верно?

1 Ответ

1 голос
/ 15 июня 2019

Установка php на macOS

Честно говоря, вы говорите, что знаете об этом больше, чем очевидно в вопросе. Так что вы, вероятно, многое знаете об этом, но я хотел быть настолько полным, насколько смогу, исходя из своего опыта, поскольку эти ответы остаются для тех, кто может найти их в будущем и найти информацию полезной. Если я что-то упустил, я надеюсь, что кто-нибудь укажет мне на это, чтобы я мог узнать немного больше по ходу дела.

В те времена боги грома правили миром:

php входит в стандартную комплектацию Mac с Mac OS X версии 10.0.0, о которой вы можете прочитать о здесь . Первая версия Mac OS X Server (1.0) была гибридом OPENSTEP от NeXT Computer и Mac OS 8.5.1 Стива Джобса, выпущенных в 1999 году.

Начиная с Mac OS X 10.7 (Lion) Mac OS X и Mac OS X Server были объединены в один пакет операционной системы, а macOS Server - это дополнительный пакет, доступный через App Store. Это означает, что вы не можете сильно беспокоиться о разрушении чего-либо слишком важного.

Ты не всегда можешь получить то, что хочешь ...

Значение этого ответа будет зависеть от того, для чего вы используете серверный пакет. Если вы используете веб-сервер только для среды разработки, его можно легко заменить любой версией типичной среды стиля LAMP (linux-apache-mysql-php).

Для macOS это означает обновление apache, установку php и установку MySQL , если вы не можете использовать SQLite , поставляемый в комплекте с macOS. Вот один из множества замечательных учебных пособий, доступных онлайн. (без принадлежности) Это может осложниться ...

Еще одна популярная опция, которую я сам не использовал, это некоммерческая XAMPP . Они направлены на то, чтобы упростить настройку php-разработки, Wordpress, Drupal, электронной коммерции и популярных приложений с открытым исходным кодом.

Когда ты незнакомец ...

Если вы используете некоторые из более эзотерических приложений, поставляемых с серверным пакетом, вам придется обновлять их отдельно. Но так как вы спрашиваете о php и сервере, который его распознает, я предполагаю, что вы говорите о веб-сервере и что вы используете что-то вроде этого, чтобы увидеть, какую версию php находит apache:

<?php phpinfo(); ?>

Скорее всего, вы говорите, что версия php командной строки показывает правильные версии и настройки, а версия веб-страницы, обслуживаемая apache, показывает старую версию. Это правильно?

Версия и расположение файлов:

Я не уверен, проверили ли вы это, но первое, что я хотел бы сделать, это выяснить, какой путь и какую версию я использую. Это также дает мне быструю прямую ссылку на INI-файл, чтобы я мог быстрее разбить вещи. Вот мои результаты (скриншот в конце) с использованием php --version и php --ini:

$ which php

/usr/local/bin/php

$ php --version

PHP 7.3.6 (cli) (built: May 31 2019 23:38:25) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.6, Copyright (c) 1998-2018 Zend Technologies
    with Xdebug v2.7.0, Copyright (c) 2002-2019, by Derick Rethans
    with Zend OPcache v7.3.6, Copyright (c) 1999-2018, by Zend Technologies

$ php --ini

Configuration File (php.ini) Path: /usr/local/etc/php/7.3
Loaded Configuration File:         /usr/local/etc/php/7.3/php.ini
Scan for additional .ini files in: /usr/local/etc/php/7.3/conf.d
Additional .ini files parsed:      /usr/local/etc/php/7.3/conf.d/ext-opcache.ini

Слишком сильное прикосновение:

Использование php -i выдаст огромное количество информации. Это много страниц ... больше, чем вы бы хотели. Если вы ищете конкретную информацию, вы можете найти ее по своему усмотрению: php -i | grep ini или php -i | grep -- '--with', чтобы найти варианты.

Скрывается на виду:

Скорее всего, вы проверяете, тестируете и обновляете неправильную установку php или apache. macOS печально известен наличием стандартных версий многих программ и, скорее всего, что-то сломает, если вы обновите «системную» версию любой из них.

Ruby и Python - самые распространенные проблемы, которые вызывают у меня проблемы. У меня никогда не было проблем с php, но для многих программ доступно множество обходных путей (например, coreutils для gnu).

Homebrew!

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

$ brew install php

Он все делает за вас и постоянно обновляет. Это также позволяет php всегда работать как сервис, используя brew services start php. Это уменьшает время запуска и предотвращает некоторые проблемы с несколькими версиями. Список всех услуг brew и информация о состоянии, как вы могли ожидать, можно найти с brew services list. Если вы обновите любой файл конфигурации или INI-файл, вам нужно перезапустить php (и apache) с brew services restart php. Вы также можете использовать launchctl и apachectl, если захотите.

Apache!

Еще одна удобная вещь о homebrew в том, что вы также можете использовать его для установки и управления apache2. Попробуйте это:

$ brew install httpd
$ brew services start httpd
$ httpd

Безалкогольный рецепт:

Если вы предпочитаете воздерживаться и не использовать homebrew, вы можете установить любую версию с php.net и сделать ссылку в каталоге в начале вашего PATH. Патчи и обновления выполняются регулярно, все очень профессионально и хорошо (закончено?) Задокументировано.

enter image description here

Загрузите бинарный файл php, проверьте его с помощью предоставленных подписей и свяжите его где-нибудь на вашем пути: ln -s /path/to/new/php ~/bin/php или где-то еще, если вы не используете ваш / home / bin. Homebrew ставит ссылку в /usr/local/bin по умолчанию.

Независимо от того, какой метод вы выберете, после установки программ вам, безусловно, придется настроить несколько параметров. Есть несколько отличных постов в Интернете об этом. Этот состоит из нескольких частей и обновлен для Мохаве. Основная информация для начала работы должна быть доступна, как показано на скриншоте ниже.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...