Установка 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](https://i.stack.imgur.com/Nwfsm.png)
Загрузите бинарный файл php, проверьте его с помощью предоставленных подписей и свяжите его где-нибудь на вашем пути: ln -s /path/to/new/php ~/bin/php
или где-то еще, если вы не используете ваш / home / bin. Homebrew ставит ссылку в /usr/local/bin
по умолчанию.
Независимо от того, какой метод вы выберете, после установки программ вам, безусловно, придется настроить несколько параметров. Есть несколько отличных постов в Интернете об этом. Этот состоит из нескольких частей и обновлен для Мохаве. Основная информация для начала работы должна быть доступна, как показано на скриншоте ниже.
![enter image description here](https://i.stack.imgur.com/ZHxfs.png)