How to Install PHP (8.1, 7.4 or 5.6) on MacOS
PHP stands for HyperText Preprocessor and is a server-side programming language. Originally it was developed for web development but now is also used as a general-purpose language. It was created by Rasmus Lerdorf in 1994.
The PHP versions for macOS is maintained in third party repository that can be add to system with brew tap. It also allows you to install and use multiple PHP versions on a single macOS system.
This tutorial will help you to install PHP on macOS.
Prerequisites
Before starting the installation of PHP using this tutorial you must have the following prerequisites
- Terminal: You must have Mac Terminal access and little knowledge about working with the terminal application. Ao login to your Mac system and open terminal
- Homebrew: Homebrew is a popular package manager for the Mac operating systems. It is useful for installing most open-source software like Node. You can install Homebrew with the following command.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
How to Install PHP on macOS
The latest version of macOS Sierra ships with PHP 5.6 and OSX 10.11 El Capitan with PHP 5.5, and OSX 10.8 Mountain Lion ships with PHP version 5.3. The latest version of PHP 8.1 is available to install. The steps below help you install PHP 8.1, 8.0, 7.4, 7.3, 7.2, 7.1, or 5.6 on the macOS system.
- First, we need to add the shivammathur/php tap to homebrew.
php -v
#Output PHP 8.1.6 (cli) (built: May 21 2022 03:46:22) (NTS) Copyright (c) The PHP Group Zend Engine v4.1.6, Copyright (c) Zend Technologies with Zend OPcache v8.1.6, Copyright (c), by Zend Technologies
Configure PHP with Apache
Edit the Apache configuration file and a text editor:
vim /usr/local/etc/httpd/httpd.conf
Add the following snippet to the file:
Php настроить mac os
Установка веб-сервера Apache и PHP на Mac OS несколько отличается от процесса установки на Windows. Прежде всего следует отметить, что Mac OS уже по умолчанию имеет встроенный Apache. Однако начиная с версии macOS Monterey из операционной системы был удален PHP, который в предыдущих версиях устанавливался по умолчанию. Кроме того, настройка конфигурации встроенного веб-сервера несколько затруднена, каких-то пакетов может недостовать. И в этом случае более предпочтительный подход состоит в использовании пакетного менеджера Homebrew , который значительно облегчает установку и настройку всех необходимых компонентов. Поэтому рассмотрим установку и настройку Apache и PHP с помощью пакетного менеджера Homebrew.
Вначале надо установить сам пакетный менеджер Homebrew через терминал с помощью команды:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Чтобы убедиться, что Homebrew установлен, можно проверить его версию с помощью следующей команды:
В этом случае терминал должен отобразить что-то наподобие:
Homebrew 3.3.1 Homebrew/homebrew-core (git revision 1362c572e16; last commit 2021-10-29)
Затем установим PHP с помощью следующей команды:
Далее установим веб-сервер Apache с помощью следующей команды:
После установки веб-сервера Apache вначале проверим его работоспособность. Для его запустим его с помощью следующей команды:
brew services start httpd
При удачном запуске веб-сервера мы сможем обратиться к нему, введя в адресную строку веб-браузера адрес http://localhost:8080 . И в этом случае веб-браузер должен нам отобразить надпись «It works!»:
Настройка Apache
Теперь настроим Apache. Для этого нам надо изменить файл конфигурации веб-сервера. В зависимости от архитектуры Mac расположение файла конфигурации будет отличаться:
- Для архитектуры Intel это путь /usr/local/etc/httpd/httpd.conf .
- Для архитектуры Apple M1 это путь /opt/homebrew/etc/httpd/httpd.conf .
Соответственно для изменения файла нам потребуется текстовый редактор. Можно использовать встроенный текстовый редактор типа TextEdit.
Если архитектура — Intel, введем в терминале следующую команду:
open -e /usr/local/etc/httpd/httpd.conf
Если архитектура — Apple M1, введем в терминале следующую команду:
open -e /opt/homebrew/etc/httpd/httpd.conf
Вначале изменим порт — по умолчанию он равен 8080. Для этого найдем следующую строку:
Параметр Listen указывает на порт, по которому можно будет обращаться к веб-серверу. Заменим эту строку на следующую:
Далее настроим папку для файлов веб-сервера. По умолчанию это папка «/usr/local/var/www». Но изменим ее.
Создадим в папке текущего пользователя новую папку, которую назовем localhost . Например, в моем текущий пользователь называется eugene , поэтому папка документов веб-сервера будет иметь путь Users/eugene/localhost . Теперь установим эту папку в качестве каталога для файлов веб-сервера.
Если архитектура Intel, найдем в файле следующие строки
DocumentRoot "/usr/local/var/www"
Если архитектура Apple M1, найдем в файле следующие строки
DocumentRoot "/opt/homebrew/var/www"
Параметры DocumentRoot и Directory указывает на каталог файлов веб-сервера. Теперь изменим эти строки, передав данным параметрам наш выше созданный каталог:
DocumentRoot "/Users/eugene/localhost"
Напоминаю, что вместо «eugene» в каждом конкретном случае будет идти имя текущего пользователя.
Затем установим имя сервера. Для этого найдем следующую строку:
#ServerName www.example.com:8080
Заменим эту строку на следующую:
Изменим пути файлам, в которые будут заноситься сведения об ошибках или посещении сайта.
Если архитектура Intel, найдем строку
ErrorLog "/usr/local/var/log/httpd/error_log"
Если архитектура Apple M1, найдем следующую строку
ErrorLog "/opt/homebrew/var/log/httpd/error_log"
ErrorLog "/Users/eugene/localhost/error.log"
Далее изменим путь к логу посещений. Если архитектура Intel, найдем строку
CustomLog "/Users/eugene/localhost/access_log" common
Если архитектура Apple M1, найдем следующую строку
CustomLog "/opt/homebrew/var/log/httpd/access_log" common
CustomLog "/Users/eugene/localhost/access_log" common
Таким образом, файл error.log , в который записываются ошибки, и файл access.log , в который заносятся все данные о посещении веб-сайта, будут располагаться в папке c:/localhost.
Настройка PHP
Теперь свяжем Apache с PHP. Вначале нам надо узнать версию PHP. Для этого введем в терминал команду
Нам должно отобразиться что-то вроде следующего
PHP 8.1.1 (cli) (built: Jan 08 2022 08:25:03) ( NTS ) Copyright (c) The PHP Group Zend Engine v4.1.1, Copyright (c) Zend Technologies with Zend OPcache v8.1.1, Copyright (c), by Zend Technologies
Здесь нас будут интересовать первые две цифры версии. В моем случае выше это 8.1 . В зависимости от архитектуры компьютера также настройка PHP будет отличаться.
#LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so
Если архитектура Intel, после этой строки добавим следующую
LoadModule php_module /usr/local/opt/php@8.1/lib/httpd/modules/libphp.so
Если же архитектура Apple M1, добавим следующую
LoadModule php_module /opt/homebrew/opt/php@8.1/lib/httpd/modules/libphp.so
В данном случае добавляется модуль php. Обратите внимание на часть php@8.1 . Поскольку в моем случае версия 8.1, соответственно я указываю данную версию модуля. То есть в итоге получится
#LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so LoadModule php_module /usr/local/opt/php@8.1/lib/httpd/modules/libphp.so // для Intel LoadModule php_module /opt/homebrew/opt/php@8.1/lib/httpd/modules/libphp.so // для Apple M1
# # TypesConfig points to the file containing the list of mappings from # filename extension to MIME-type.
И под строкой добавим две строчки:
AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps
То есть должно получиться:
AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps # # TypesConfig points to the file containing the list of mappings from # filename extension to MIME-type. #
В данном случае мы добавили поддержку для файлов с расширением .php и .phps .
И заменим его на следующий:
DirectoryIndex index.html index.php
В данном случае мы определяем файлы, которые будут выполняться при обращении к корню файла или каталога. То есть по сути определяем главные страницы веб-сайта: index.html и index.php.
Это минимально необходимая конфигурация, которая нужна для работы с PHP.
Теперь наша задача — убедиться, что php подключен и работает правильно. Для этого перейдем в папку /Users/eugene/localhost , которую мы создали для хранения файлов веб-сервера, и добавим в нее обычный текстовый файл. Переименуем его в index.php и внесем в него следующее содержание:
В данном случае мы создали простейший скрипт, который выводит общую информацию о PHP.
Теперь перезапустим Apache. Для этого последовательно введем в терминале две следующих команды:
brew services stop httpd brew services start httpd
И после перезапуска веб-сервера обратимся к выше созданному скрипту index.php, набрав в строке браузера адрес http://localhost/index.php
Что тут произошло? При обращении к сайту на локальной машине в качестве адреса указывается http://localhost . Затем указывается имя ресурса, к которому идет обращение. В данном случае в качестве ресурса используется файл index.php . И так как в файле httpd.conf в качестве хранилища документов веб-сервера указан каталог /Users/eugene/localhost , то именно в этом каталоге и будет веб-сервер будет производить поиск нужных файлов.
И поскольку выше при конфигурировании мы указали, что в качестве главной страницы может использоваться файл index.php , то мы можем также обратиться к этому ресурсу просто http://localhost/
Таким образом, теперь мы можем создавать свои сайты на php на MacOS.
Настройка php
Как и для Windows, конфигурация php хранится в файле php.ini. На MacOS этот файл располагается по следующему пути:
/usr/local/etc/php/[версия]/php.ini
Например, я установил версию php 8.1.1, поэтому в моем случай файл php.ini располагается по пути «/usr/local/etc/php/8.1/php.ini». Соответственно, если мне необходимо его отредактировать в текстовом редакторе по умолчанию TextEdit, я могу ввести в терминал команду
open -e /usr/local/etc/php/8.1/php.ini