Как включить php на мак
Перейти к содержимому

Как включить php на мак

  • автор:

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

Этот раздел содержит руководство и различные советы по установке PHP на macOS. PHP поставлялся вместе с macOS, начиная с macOS X (10.0.0) по macOS Monterey (12.0.0). Компилирование на которых схоже с установкой в Unix-системах.

User Contributed Notes

There are no user contributed notes for this page.

  • Установка и настройка
    • Общие инструкции по установке
    • Установка на Unix-​системы
    • Установка на macOS
    • Установка в системах Windows
    • Установка на платформах Cloud Computing
    • Менеджер процессов FastCGI (FPM)
    • Установка модулей PECL
    • Проблемы?
    • Конфигурация времени выполнения
    • Copyright © 2001-2023 The PHP Group
    • My PHP.net
    • Contact
    • Other PHP.net sites
    • Privacy policy

    Поднимаем веб‑сервер на macOS

    Taly

    Веб-разработка начинается с настройки локального веб-сервера. Есть множество различных комбинаций устанавливаемых пакетов и сборок, которые удобны по-своему. В этой статье я расскажу об установке связки Apache + PHP + MySQL + Redis + Memcached на macOS.

    Установка Homebrew

    Управлением пакетов, которые не идут в комплекте с macOS, занимается утилита Homebrew.

    На официальном сайте вы найдете команду для запуска установки.

    $ ruby -e «$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)»

    Следуйте указаниям и введите пароль администратора, когда потребуется. В результате выполнения команды будет установлен Homebrew и XCode Command Line Tools.

    Чтобы убедиться, что установка прошла успешно, выполните команду “brew —version”.

    $ brew —version Homebrew 1.1.4 Homebrew/homebrew-core (git revision 4a1f; last commit 2016-12-15)

    Подключаем репозитории с необходимыми пакетами.

    $ brew tap homebrew/php $ brew tap homebrew/apache

    И выполняем обновление всех репозиториев, подключенных к brew.

    $ brew update

    Всё готово к установке пакетов.

    Установка Apache

    С помощью Homebrew установим Apache со всеми необходимыми скриптами.

    Перед установкой следует отключить и убрать из автозагрузки встроенный Apache-сервер.

    $ sudo apachectl stop $ sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 2>/dev/null $ brew install httpd24 —with-privileged-ports —with-http2

    Операция займет время. Ожидайте появления строки, которая подтвердит успех установки.

    /usr/local/Cellar/httpd24/2.4.23_2: 212 files, 4.4M, built in 1 minute 45 seconds

    Обратите внимание на этот путь “/usr/local/Cellar/httpd24/2.4.23_2”. Он сейчас понадобится для настройки автозапуска Apache.

    Задаем права и включаем автозагрузку свежеустановленного сервера.

    $ sudo cp -v /usr/local/Cellar/httpd24/2.4.23_2/homebrew.mxcl.httpd24.plist /Library/LaunchDaemons $ sudo chown -v root:wheel /Library/LaunchDaemons/homebrew.mxcl.httpd24.plist $ sudo chmod -v 644 /Library/LaunchDaemons/homebrew.mxcl.httpd24.plist $ sudo launchctl load /Library/LaunchDaemons/homebrew.mxcl.httpd24.plist

    Решения возможных проблем

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

    $ ps -aef | grep httpd

    Вы должны увидеть несколько httpd процессов, если Apache запущен.

    Попробуйте перезагрузить сервер следующей командой.

    $ sudo apachectl -k restart

    В поиске проблемы вам могут помочь логи сервера. Посмотреть свежие записи можно с помощью такой команды.

    $ tail -f /usr/local/var/log/apache2/error_log

    Если проблема не пропала, убедитесь, что в файле /usr/local/etc/apache2/2.4/httpd.conf имеется следующая строчка.

    Apache контролируется с помощью apachectl. Следующие команды могут быть полезны.

    $ sudo apachectl start $ sudo apachectl stop $ sudo apachectl -k restart

    Настрока Apache

    У вас есть установленный веб-сервер. Пора настроить его.

    Первым делом мы изменим директорию для хранения сайтов. Откройте для редактирования конфигурационный файл Apache.

    $ open -e /usr/local/etc/apache2/2.4/httpd.conf

    Найдите строку, где задается параметр DocumentRoot.

    DocumentRoot «/usr/local/var/www/htdocs»

    И измените её на следующую, где your_user — имя вашего аккаунта.

    DocumentRoot /Users/your_user/Sites

    Также надо изменить тег , чтобы его параметр совпадал с DocumentRoot.

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

    Если вы планируете в локальных проектах использовать файл дополнительной конфигурации сервера .htaccess, то обратите внимание на настройки AllowOverride и mod_rewrite.

    В блоке найдите опцию AllowOverride, которая отвечает за возможность использования .htaccess, и измените её на следующую.

    # AllowOverride controls what directives may be placed in .htaccess files. # It can be «All», «None», or any combination of the keywords: # AllowOverride FileInfo AuthConfig Limit # AllowOverride All

    Для возможности преобразования URL потребуется модуль mod_rewrite, который по-умолчанию закомментирован. Найдите строку и уберите символ комментирования #.

    #LoadModule rewrite_module libexec/mod_rewrite.so
    LoadModule rewrite_module libexec/mod_rewrite.so

    Пользователи и группы

    Мы направили обращения Apache к сайтам в директорию Sites, которую поместили в домашнем каталоге. Обычно Apache работает от имени системного пользователя daemon группы daemon, из-за этого могут возникнуть некоторые проблемы с доступом. Необходимо задать, пользователя и группу, от чьего имени Apache будет работать.

    В конфигурационном файле Apache найдите User и Group и измените на следующее. your_user — имя вашего аккаунта.

    User your_user Group staff

    Директория для локальных сайтов

    Создайте папку для сайтов в домашнем каталоге.

    $ mkdir ~/Sites

    Следующая команда создаст в папке Sites файл index.html и поместит в нем код первой веб-страницы.

    $ echo «My User Web Root» > ~/Sites/index.html

    Чтобы изменения в файле настроек вступили в силу, необходимо перезагрузить сервер.

    $ sudo apachectl -k restart

    Снова откройте в браузере страницу по адресу http://localhost/.

    Установка PHP

    На этом шаге мы установим PHP 5.6 и PHP 7.0, а также настроим скрипт переключения между версиями PHP.

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

    $ brew install php70 —with-apache $ brew unlink php70 $ brew install php56 —with-apache

    Если потребуется, вы можете настроить каждую версию языка в соответствующих php.ini.

    /usr/local/etc/php/5.6/php.ini /usr/local/etc/php/7.0/php.ini

    Знакомим Apache и PHP

    Вы успешно установили нужные версии PHP, но теперь нужно сказать Apache использовать их.

    Снова откройте файл /usr/local/etc/apache2/2.4/httpd.conf и найдите строку

    #LoadModule php5_module

    Вместо нее добавьте следующие строки для подключения ваших версий PHP.

    LoadModule php5_module /usr/local/opt/php56/libexec/apache2/libphp5.so #LoadModule php7_module /usr/local/opt/php70/libexec/apache2/libphp7.so

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

    Найдите ниже настройку указания на корневой файл директории.

    DirectoryIndex index.html

    И замените её следующими настройками.

    DirectoryIndex index.php index.html SetHandler application/x-httpd-php

    Сохраните файл настроек и снова перезагрузите сервер.

    $ sudo apachectl restart

    Проверяем установку PHP

    Создайте в директории с сайтами файл index.php с содержанием “

    $ echo » ~/Sites/index.php

    Откройте в браузере страницу по адресу http://localhost/. Вы увидите информацию о настройках PHP.

    Переключение версий PHP

    Установим небольшой sphp скрипт в стандартную для brew директорию /usr/local/bin.

    $ curl -L https://gist.github.com/w00fz/142b6b19750ea6979137b963df959d11/raw > /usr/local/bin/sphp $ chmod +x /usr/local/bin/sphp

    Homebrew при установке должен был добавить свои директории /usr/local/bin и /usr/local/sbin в переменную $PATH. Убедимся в этом.

    $ echo $PATH /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

    Если вышеуказанные директории отсутствуют в результат выполнения команды у вас, то выполните следующую команду, которая исправит это.

    $ export PATH=/usr/local/bin:/usr/local/sbin:$PATH

    Остановите и запустите Apache. Не перезагружайте.

    $ sudo apachectl -k stop $ sudo apachectl start

    Снова откройте файл настроек Apache /usr/local/etc/apache2/2.4/httpd.conf и замените блок с подключениями этих модулей:

    LoadModule php5_module /usr/local/opt/php56/libexec/apache2/libphp5.so #LoadModule php7_module /usr/local/opt/php70/libexec/apache2/libphp7.so

    На следующий код.

    # Brew PHP LoadModule for `sphp` switcher LoadModule php5_module /usr/local/lib/libphp5.so #LoadModule php7_module /usr/local/lib/libphp7.so

    Сохраните файл настроек и закройте его.

    Проверим возможность переключения версий PHP.

    Выполните команду sphp с двумя цифрами нужной версии.

    $ sphp 70 PHP version 70 found Unlinking old binaries. Linking new binaries. Linking /usr/local/Cellar/php70/7.0.14_7. 17 symlinks created Linking new modphp addon. Fixing LoadModule. Updating version file. Restarting homebrew Apache. Restarting non-root homebrew Apache. Done. PHP 7.0.14 (cli) (built: Dec 14 2016 01:24:46) ( NTS ) Copyright (c) 1997-2016 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies

    Откройте страницу http://localhost/ и убедитесь, что теперь активен PHP версии 7.0.

    Установка MySQL

    Для установки MySQL введите следующую команду.

    $ brew install mysql

    Завершение установки подтвердит следующее сообщение.

    We’ve installed your MySQL database without a root password. To secure it run: mysql_secure_installation To connect run: mysql -uroot To have launchd start mysql now and restart at login: brew services start mysql Or, if you don’t want/need a background service you can just run: mysql.server start ==> Summary /usr/local/Cellar/mysql/5.7.16: 13,511 files, 439M

    Выполните указанные действия, если необходимо установить mysql на автозапуск.

    $ brew services start mysql

    Установка Redis, Memcached

    С помощью Homebrew установка дополнительного ПО максимально проста.

    $ brew install redis ==> Downloading https://homebrew.bintray.com/bottles/redis-3.2.6.sierra.bottle.tar.gz ######################################################################## 100.0% ==> Pouring redis-3.2.6.sierra.bottle.tar.gz ==> Caveats To have launchd start redis now and restart at login: brew services start redis Or, if you don’t want/need a background service you can just run: redis-server /usr/local/etc/redis.conf ==> Summary /usr/local/Cellar/redis/3.2.6: 11 files, 1.7M

    Настроим автозагрузку и запустим Redis.

    $ brew services start redis

    $ brew install memcached ==> Downloading https://homebrew.bintray.com/bottles/memcached-1.4.33.sierra.bottle.tar.gz ######################################################################## 100.0% ==> Pouring memcached-1.4.33.sierra.bottle.tar.gz ==> Caveats To have launchd start memcached now and restart at login: brew services start memcached Or, if you don’t want/need a background service you can just run: /usr/local/opt/memcached/bin/memcached ==> Summary /usr/local/Cellar/memcached/1.4.33: 11 files, 184.5K

    Настроим автозагрузку и запустим Memcached.

    $ brew services start memcached

    Теперь необходимо установить PHP расширений для работы со свежеустановленнымы сервисами для каждой версии вам нужно загрузить расширения, которые требуются.

    $ sphp 70 $ brew install php70-redis $ brew install —HEAD homebrew/php/php70-memcached

    Перезагрузите Apache и снова откройте http://localhost/.

    $ sudo apachectl restart

    В пункте “ дополнительные .ini файлы” вы увидите ini файлы установленных расширений.

    Вы также можете заметить, что нужные расширения подгружены и готовы к работе.

    Смените версию PHP перед началом установки расширений для нее.

    $ sphp 56 $ brew install php56-redis php56-memcache php56-memcached

    Снова перезагрузите Apache и откройте http://localhost/, чтобы убедиться в успехе.

    $ sudo apachectl restart

    Создание локального сайта

    Для работы над несколькими проектами сразу удобно создать отдельную папку и доменное имя для каждого.

    Например, ваш проект называется сodex. Первым делом создайте директорию.

    $ mkdir ~/Sites/codex

    Локальный сайт codex.local будет находиться на вашем компьютере. Поэтому нужно прописать в файле /etc/hosts адрес сервера и доменное имя.

    $ sudo open -e /etc/hosts

    Добавьте в конец файла следующую строку.

    127.0.0.1 codex.local

    Теперь надо настроить сам Apache сервер. Для этого откройте для редактирования файл настроек хостов.

    $ open -e /usr/local/etc/apache2/2.4/extra/httpd-vhosts.conf

    Добавьте следующий код, описывающий новый хост, в файл настроек. Название проекта codex уже вписано в нужные строки. Замените your_user на логин вашего пользователя.

    # корневая директория проекта codex DocumentRoot /Users/your_user/Sites/codex # доменное имя ServerName codex.local # настройка прав доступа к директории проекта AllowOverride All Order allow,deny Allow from all

    Перед подключением первого локального сайта необходимо включить возможность использования хостов.

    Откройте для редактирования файл /usr/local/etc/apache2/2.4/httpd.conf. Необходимо раскомментировать строку с подключением файла настроек виртуальных хостов.

    # Virtual hosts Include /usr/local/etc/apache2/2.4/extra/httpd-vhosts.conf

    После этих действий нужно перезагрузить сервер.

    $ sudo apachectl restart

    Теперь сайт, находящийся в директории ~/Sites/codex, будет доступен по адресу http://codex.local/.

    Заключение

    После выполнения описанных в статье шагов у вас должен получиться готовый к работе веб-сервер.

    В этой статье представлен наиболее простой способ разворачивания рабочего окружения непосредственно на операционной системе. Существуют и другие способы решения описанных задач: например, с использованием Open Server (для Windows) или виртуализации с помощью VirtualBox, VMWare, Vagrant, Docker и других утилит. Об использовании докера читайте в статье «Как поднять сайт в Docker».

    Материалы

    • Статья-источник https://getgrav.org/blog/macos-sierra-apache-multiple-php-versions
    • Homebrew http://brew.sh

    If you like this article, share a link with your friends

    Read more

    We talk about interesting technologies and share our experience of using them.

    Как включить php на мак

    Установка веб-сервера 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 установлен, можно проверить его версию с помощью следующей команды:

    brew --version

    В этом случае терминал должен отобразить что-то наподобие:

    Homebrew 3.3.1 Homebrew/homebrew-core (git revision 1362c572e16; last commit 2021-10-29)

    Затем установим PHP с помощью следующей команды:

    brew install php

    Далее установим веб-сервер Apache с помощью следующей команды:

    brew install httpd

    После установки веб-сервера Apache вначале проверим его работоспособность. Для его запустим его с помощью следующей команды:

    brew services start httpd

    При удачном запуске веб-сервера мы сможем обратиться к нему, введя в адресную строку веб-браузера адрес http://localhost:8080 . И в этом случае веб-браузер должен нам отобразить надпись «It works!»:

    запуск веб-сервера Apache на MacOS

    Настройка 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

    Настройка конфигурации веб-сервера Apache на MacOS

    Если архитектура — Apple M1, введем в терминале следующую команду:

    open -e /opt/homebrew/etc/httpd/httpd.conf

    Вначале изменим порт — по умолчанию он равен 8080. Для этого найдем следующую строку:

    Listen 8080

    Параметр Listen указывает на порт, по которому можно будет обращаться к веб-серверу. Заменим эту строку на следующую:

    Listen 80

    Далее настроим папку для файлов веб-сервера. По умолчанию это папка «/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

    Заменим эту строку на следующую:

    ServerName localhost

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

    Если архитектура 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 -v

    Нам должно отобразиться что-то вроде следующего

    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 

    И заменим его на следующий:

     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

    phpinfo

    Что тут произошло? При обращении к сайту на локальной машине в качестве адреса указывается 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

    Как установить и настроить PHP в macOS

    Как установить и настроить все необходимые компоненты, чтобы подготовить свой Mac к полноценной разработке на PHP.

    Установка Homebrew

    Скачивать и устанавливать весь требуемый софт мы будем с помощью пакетного менеджера Homebrew.

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

    Но сам Homebrew тоже требуется установить, так как по умолчанию он не входит в состав операционной системы. Процесс установки занимает некоторое время, так что придётся подождать.

    Понятная инструкция по его установке есть на главной странице этой программы.

    Все последующие команды выполняются через терминал OS X.

    Обратите внимание: после установки brew нужно выполнить две команды из раздела next steps, чтобы добавить Homebrew в PATH. Команды будут зависеть от имени пользователя на компьютере, в нашем случае они такие. Скопируйте их из терминала и выполните по очереди.

    Выполните и переходите к следующему шагу.

    Установка PHP

    Начнём с установки PHP-интерпретатора. Мы используем последнюю версию PHP на момент выхода статьи: PHP 8.

    По умолчанию homebrew уже содержит нужный пакет, поэтому остается выполнить лишь команду установки:

    brew install php 

    Проверим, что всё установилось корректно:

    php --version PHP 8.0.11 (cli) (built: Sep 26 2021 20:58:36) ( NTS ) Copyright (c) The PHP Group Zend Engine v4.0.11, Copyright (c) Zend Technologies with Zend OPcache v8.0.11, Copyright (c), by Zend Technologies 

    Обратите внимание: если вы видите сообщение, что установлена не версия 8, а что-то такое,

    WARNING: PHP is not recommended PHP is included in macOS for compatibility with legacy software. Future versions of macOS will not include PHP. PHP 7.3.29-to-be-removed-in-future-macOS (cli) (built: Aug 30 2021 10:56:09) ( NTS ) 

    то перезапустите терминал и попробуйте выполнить php —version ещё раз.

    Теперь запустите php-fpm :

    brew services start php 

    Если всё прошло хорошо, то вы увидите такое сообщение:

    ==> Successfully started `php` (label: homebrew.mxcl.php) 

    Установка веб-сервера

    Веб-сервер обрабатывает запросы пользователей и отдаёт им запрошенные страницы. Без веб-сервера работа с PHP не имеет смысла, так что теперь нужно установить его.

    Веб-сервер можно установить с помощью плагинов для редактора или настроить самостоятельно. Рассмотрим оба варианта.

    Использование веб-сервера из редактора

    Редакторы кода могут самостоятельно запускать сервер. В VS Code это можно сделать через плагин PHP Server, а в PhpStorm через — PHP Debug Server. По ссылкам есть инструкция с настройками.

    Для того, чтобы сервер стартовал, нужно чтобы локально был установлен PHP интерпретатор.

    Самостоятельная установка веб-сервера через nginx

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

    Рассмотрим как установить веб-сервер самостоятельно.

    Установим последнюю версию nginx:

    brew install nginx 

    Поскольку порт 80 требует прав администратора, а homebrew по умолчанию устанавливает софт с пользовательскими правами, то работать nginx будет на порту 8080.

    Запускаем nginx, чтобы он работал в фоне и обслуживал наши запросы:

    brew services start nginx 
    ==> Successfully started `nginx` (label: homebrew.mxcl.nginx) 

    Проверяем, что всё установилось корректно, и nginx успешно работает на нашем компьютере. Откройте любой браузер и введите в адресной строке следующий URL:

    http://localhost:8080 

    Вы должны увидеть такую страницу с текстом «Welcome to nginx!».

    Интеграция PHP и веб-сервера

    На этом шаге мы «подружим» PHP-интерпретатор и nginx, чтобы при запросе веб-страниц с расширением .php автоматически выполнялся php-сценарий и мы видели результат его работы в браузере.

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

    Откройте конфигурационный файл nginx через VS Code.

    Если у вас Mac на процессоре Intel:

    code /usr/local/etc/nginx/nginx.conf 

    Если у вас Mac на процессоре Apple (M1, M1 Pro, M1 Max):

    code /opt/homebrew/etc/nginx/nginx.conf 

    Обратите внимание: если на этом этапе вы получаете ошибку zsh: command not found: code , то откройте VS Code, нажмите Cmd+Shift+P и введите shell.

    Выберите пункт Shell Command: Install ‘code’ command in PATH . После этого команда code добавится в терминал и вы сможете открыть нужный файл.

    Добавим в конец документа перед закрывающей скобкой от блока http следующий код.

    USERNAME нужно будет в двух местах заменить на ваше имя пользователя.

    server < listen 8080; server_name localhost; client_max_body_size 20M; root /Users/USERNAME/Sites/yeticave; location / < index index.php index.html index.htm; >location ~ \.php$ < fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; # goes on same line: fastcgi_param SCRIPT_FILENAME /Users/USERNAME/Sites/yeticave/$fastcgi_script_name; include fastcgi_params; >> 

    Если в nginx.conf уже есть блок server, нужно удалить его, иначе ничего не будет работать.

    Здесь мы говорим серверу, чтобы он слушал 8080 порт страницы localhost и при запросе показывал содержимое папки yeticave . После USERNAME вы можете выбрать путь до любой удобной для вас папки.

    Разрешим nginx читать содержимое нашего проекта

    sudo chmod -R 755 /Users/USERNAME/Sites/yeticave 

    Поменяйте USERNAME на имя вашего пользователя и yeticave на папку вашего проекта.

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

    brew services restart nginx 

    Установка xdebug

    Установить xdebug можно простой командой:

    pecl install xdebug 

    Проверка работы

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

    Создадим тестовый PHP-сценарий со следующим содержимым:

    Сохраните его по адресу вашего проекта, например, /Users/user/Sites/yeticave в файл index.php. Вновь откройте браузер и перейдите по ссылке http://localhost:8080/index.php. Вы должны увидеть большую страницу с подробной информацией об установленной версии PHP и всех настройках.

    Это будет означать, что вы всё сделали правильно, а значит готовы писать и запускать свои первые php-сценарии. Обратите внимание, что все файлы и папки проекта при этой конфигурации должны лежать в корне папки yeticave.

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

    Мы будем работать с MySQL 8. Установить MySQL можно двумя путями: через homebrew, либо с помощью GUI установщика.

    Установка через homebrew

    Вот как выглядит установка через homebrew:

    brew install mysql 
    brew services start mysql 
    ==> Successfully started `mysql` (label: homebrew.mxcl.mysql) 

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

    mysql -uroot 

    Установка через архив с официального сайта

    MySQL для macOS можно загрузить с официальной страницы. Для удобства установки рекомендуется загружать DMG Archive. В этом случае процесс установки будет выполняться с помощью стандартного инсталлятора.

    Обратите внимание: на момент выхода статьи версия 8.0.26 не работала на Mac c процессорами M1, поэтому мы использовали версию 8.0.25 — она также доступна в архиве на сайте.

    Нажимаем «Продолжить», принимаем условия лицензии, выбираем, куда установить MySQL и оказываемся на шаге «Тип установки». На этом шаге необходимо проверить перечень компонентов для установки. Нажимаем кнопку «Настроить». Отмечаем галки MySQL Server, Preference Pane, Launchd Support.

    Нажимаем «Установить». Установщик предложит выбрать тип шифрования пароля. Выбирайте первый пункт User Strong Password Encryption, если вы никогда не работали с MySQL и вам не нужно поддерживать очень старые версии клиентов MySQL.

    На следующем шаге вам нужно будет ввести пароль для пользователя root. Хороший пароль должен состоять минимум из 8 символов, среди которых должны быть буквы, цифры и специальные символы.

    На этом установка MySQL завершена.

    Сразу после установки служба MySQL ещё не будет запущена. Запуск необходимо выполнить вручную. Проще всего это сделать через приложение «Системные настройки». Открываем и запускаем аплет для управления MySQL.

    В появившемся окне нажимаем кнопку Start MySQL Server.

    Теперь всё готово. Хорошей разработки!

    «Доктайп» — журнал о фронтенде. Читайте, слушайте и учитесь с нами.

    Читать дальше

    Как работает протокол HTTP

    Как работает протокол HTTP

    HTTP был разработан в 1990-х годах для создания первого интерактивного текстового веб-браузера. За эти годы протокол менялся и совершенствовался, становился более гибким и постепенно превратился в современный интернет. В статье рассмотрим принцип работы протокола и что важно знать о нём разработчику.

    • 8 февраля 2023

    10 популярных функций в MYSQL, которые вам нужно знать

    10 популярных функций в MYSQL, которые вам нужно знать

    Без лишних слов принесли вам некоторые популярные функции MySQL, без которых вы точно не обойдётесь в работе.

    • 17 января 2023

    Подключение файлов в PHP. Метод require()

    Подключение файлов в PHP. Метод require()

    Способность вызывать сценарий из отдельного файла по его имени называется в PHP подключением файлов. Подключают PHP-сценарии, любые текстовые файлы или HTML-страницы.

    • 21 ноября 2022

    Массивы в PHP

    Массивы в PHP

    Массив — это ещё один тип данных, вроде числа или строки. Главное отличие массива от остальных типов данных заключается в его способности хранить в переменной больше одного значения. В предыдущих примерах имя переменной всегда ассоциировалось только с одним значением:

    • $name = «Иннокентий»
    • $age = 42

    А если мы хотим узнать не только пол, имя и возраст пользователя, но и, допустим, любимые сериалы? Очень непросто назвать один самый любимый сериал, а вот вспомнить несколько — намного легче. Сохранение в переменную-массив нескольких значений выглядит так:

     $fav_shows = ["game of thrones", "american horror story", "walking dead"]; 

    В этом примере мы сохранили в переменной $fav_shows сразу три значения. Но сохранить эти данные — это только половина дела. Как с ними потом работать? Уже знакомый вам способ вывода переменной на экран не будет работать с массивами:

    Так увидеть список любимых сериалов не получится. Дело в том, что массив — это не обычная переменная. Массив хранит не простые типы, вроде текста или чисел (их ещё называют «скалярными типами»), а более сложную структуру данных, поэтому здесь нужен особый подход.

    Внутри массива у каждого значения есть адрес, по которому к нему можно обратиться. Такой адрес называется индексом. Индекс — это просто порядковый номер значения внутри массива. Индексация начинается с нуля, так что первый элемент получает индекс — 0 , второй — 1 , и так далее.

    Чтобы получить определенный элемент массива, необходимо знать его индекс (ключ). Напечатаем названия всех сериалов из массива через запятую:

    Теперь можно дать определение массива: Массив — это совокупность множества элементов вида «ключ: значение».

    Массивы позволяют перезаписывать существующие значения и добавлять новые. Добавить новое значение в массив можно так:

    $fav_shows[] = "the big bang theory"; 

    Новый элемент автоматически получит индекс равный максимальному индексу из существующих + 1. «Теория большого взрыва» сохранится в массиве под индексом 3 .

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

    $fav_shows[4] = "fargo"; 

    Для полного удаления (без замены на другое) значения по его индексу существует функция unset :

    unset($fav_shows[4]); 
    • 10 ноября 2022

    Синтаксис PHP

    Синтаксис PHP

    Разберёмся, из чего состоит любой язык программирования.

    У каждого языка есть правила и конструкции, следуя которым мы выражаем мысли и делаем их понятными для другого человека. В программировании всё точно так же. Но вместо человеческого языка мы используем язык программирования PHP, а в роли нашего собеседника выступает PHP-интерпретатор. Поэтому, чтобы выразить свою мысль, мы должны сделать её понятной для интерпретатора.

    • 27 октября 2022

    Массивы $_POST и $_GET в PHP. Обработка форм

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

    Через формы можно отправлять как простую текстовую информацию, так и файлы.

    Большую часть времени программирования на PHP вы будете так или иначе работать с формами и данными из них.

    HTML описывает то, из каких элементов состоит форма, и как она выглядит. Но без принимающей стороны, то есть сервера, который принимает эти данные и обрабатывает их нужным образом, создавать формы нет никакого смысла.

    PHP содержит множество средств для работы с формами. Это позволяет очень просто решать типичные задачи, которые часто возникают в веб-программировании:

    • Регистрация и аутентификация пользователя;
    • Отправка комментариев на форумах и социальных сетях;
    • Оформление заказов.

    Практически любой современный сайт содержит как минимум несколько разных HTML-форм.

    • 20 октября 2022

    Учебник по PHP

    Учебник по PHP

    1. Знакомство с языком
      • Что такое PHP
      • Синтаксис PHP
      • Массивы
      • Циклы
      • Функции
    2. Шаблонизация и подключение файлов
      • Подключение файлов
      • Шаблонизация
    3. Протокол HTTP и формы
      • Протокол HTTP
      • Формы
      • Уязвимости
    4. Идентификация пользователя на сайте
      • Аутентификация пользователя
    5. Базы данных
      • База данных
      • SQL
      • MySQL в PHP
      • Безопасность в MySQL
    6. Объекты и использование библиотек
      • Объекты
      • Библиотеки
      • Composer
    • 10 сентября 2022

    Протокол HTTP и работа с заголовками

    Протокол HTTP и работа с заголовками

    Весь современный веб построен на модели взаимодействия клиента и сервера. Как она работает:

    • браузер пользователя (клиент) отправляет на сервер запрос с адресом сайта (URL);
    • сервер получает запрос и отдаёт клиенту запрошенный контент.

    Для реализации процесса используется универсальный протокол HTTP.

    • 10 сентября 2022

    Защита от SQL-инъекций

    Защита от SQL-инъекций

    Внедрение SQL-кода (SQL инъекция) — один из распространённых способов взлома сайтов, работающих с базами данных. Способ основан на внедрении в запрос произвольного SQL-кода. Внедрение SQL позволяет хакеру выполнить произвольный запрос к базе данных (прочитать содержимое любых таблиц, удалить, изменить или добавить данные).

    Атака этого типа возможна, когда недостаточно фильтруются входные данные при использовании в SQL-запросах.

    • 10 сентября 2022

    Объекты и классы в PHP

    Объекты и классы в PHP

    Объекты в PHP — это просто ещё один тип данных. Объект позволяет хранить в переменной набор из свойств и их значений, а также встроенные функции. Это делает объекты похожими по своей структуре на ассоциативные массивы. Но отличие от массивов всё-таки есть, и при этом достаточно важное — объекты могут иметь внутреннее состояние.

    • 10 сентября 2022

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *