Перезапуск php mac os

Обновлено: 05.07.2024

Существует множество способов развернуть локальный сервер на Mac OS X, но сама система уже содержит предустановленный веб-сервер Apache и интерпретатор PHP, которые необходимо активировать и настроить.

Данное руководство требует некоторых навыков работы с командной строкой и знания редактора nano, поэтому рекомендую прочитать хорошую книгу по основам работы с командной строкой и терминалом в Mac OS X «Take Control of the Mac Command Line with Terminal».

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

Включить веб-сервер можно в настройках: Системные настройки > Общий доступ > включить службу Общий веб-доступ.

Команды для работы с Apache через командную строку:

sudo apachectl start | stop | restart

Ошибка Apache в Mac OS X 10.6.5 и выше

Следующая ошибка наблюдается при перезапуске Apache в Mac OS X 10.6.5 и выше, если попытаться перезапустить сервер через командную строку, Apache вернет ошибку:

/usr/sbin/apachectl: line 82: ulimit: open files: cannot modify limit: Invalid argument

Необходимо внести изменения в скрипт apachectl ( /usr/sbin/apachectl ):

sudo nano /usr/sbin/apachectl

закомментируем строку 82:

ULIMIT_MAX_FILES="ulimit -S -n `ulimit -H -n`"

и добавим под ней:

Сохраняем скрипт и перезапускаем Apache.

Конфигурация Apache

Переходим к строке 116 и подключаем PHP (необходимо раскомментировать строку):

Зададим свой каталог для локального сервера, поменяем путь к корневому каталогу в строке 168 и 195. После этих изменений корневым каталогом будет папка Сайты (Sites), находящаяся в домашнем каталоге пользователя.

Аналогично заменим прежний путь в строке 195:

В строке 230 пропишем какие типы файлов и в какой последовательности должен обрабатывать Apache:

В строке 264 можно задать место для хранения журнала ошибок Apache:

Раскомментируем строку 469, чтобы подключить файл в котором будем записывать виртуальные хосты:

Сохраняем все изменения в файле httpd.conf и перезапускаем Apache. Если перейти по адресу http://localhost/ , загрузится стартовая страница из папки сайты с приветствием "Ваш веб-сайт".

Проверим работоспособность PHP, для этого создадим в каталоге Сайты тестовый PHP-скрипт:

/Sites/index.php
sudo nano

и напишем сценарий, который покажет конфигурацию PHP:

Конфигурационный файл php.ini находится в папке /private/etc/php.ini.defaults , его необходимо переименовать в php.ini :

sudo mv /private/etc/php.ini.default /private/etc/php.ini

Конфигурация виртуальных хостов.

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

/Sites/test
touch index.php
nano index.php

и добавим сценарий:

sudo nano /etc/hosts

и добавляем строчку:

Добавим записи с конфигурацией нового виртуального хоста:

И в конец файла добавляем записи:

Все указания выше приведены с учетом моих вкусов и предпочтений, цель данного руководства разобраться с основными принципами конфигурации нативного Apache и PHP на Mac OS X. С огромным удовольствием выслушаю предложения и замечания по доступности изложенного материала.

Комментарии (8):

Андрей

Теперь localhost заработает. Тестовые хосты можно удалить.

Александр

softspice

Иначе будет использоваться старый файл hosts.

Александр

AllowOverride All
Order allow,deny
Allow from all

Иначе работать не будет ниче.

Спасибо за статью!

Александр

makegood

Алексей

Вроде все так сделал. Только только у меня все равно запускается index.php из sites а не из sites/test
В чем может быть проблема?

makegood

Алексей, скорее всего, неправильно настроены хосты.
Рекомендую настройку через MacPorts, на блоге есть подробная инструкция.

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

Установка Homebrew

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

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

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

Установка Homebrew в консоли.

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

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

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

Дальнейшие шаги при установке homebrew: переменная окружения.

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

Установка PHP

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Окно успешно запущенного nginx в браузере.

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

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

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

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

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

Окно VS Code с выбранным пунктом shell command.

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

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

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

Окно VS Code с открытым конфигурационным файлом nginx

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

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

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

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

Установка xdebug

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

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

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

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

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

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

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

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

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

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

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

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

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

Окно установщика Mysql. Первый этап.

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

Окно установщика Mysql. Выбор компонентов для установки.

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

Окно установщика Mysql. Выбор типа шифрования.

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

Окно установщика mysql. Ввод пароля.

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

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

Панель системные настройки с выбранным пунктом MySql.

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

Аплет Mysql в системных настройкаMacOS

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

Инструменты нужны, чтобы ими пользоваться

Научим всему, что умеем сами, на курсе «PHP. Профессиональная веб-разработка». Занимайтесь в удобном темпе и начните обучение в любой момент.

Мне нужно перезагрузить мой php.ini, и в диалоговом окне справки нет ничего о перезапуске.

Примечание : prepend sudo , если не root

Сценарии SysV Init напрямую:

Использование сценария оболочки службы

Использование Upstart (например, ubuntu):

Использование systemd (более новые серверы):

Или любой эквивалент в вашей системе.

Для Mac OS X это то, что я делаю:

Сделайте сценарий /usr /local /etc /php /fpm-restart :

убедитесь, что /usr /local /sbin находится в $ PATH

, то просто вызовите его с терминала fpm-restart и BOOM !!

Обычно, service php5-fpm restart будет работать нормально, в актуальном дистрибутиве.

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

Теперь, если вам не нравится перезагружать ваш сервер, просто запустите процессы и начните новый (отредактированный здесь):

Это должно работать:

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

php-fpm перезапустится, если вы отправляете сигнал USR2 в основной процесс:

Поэтому нам просто нужно указать php-fpm для записи своего pid где-нибудь. В этом примере я предположим, что вы хотите сохранить его в /etc/private/php-fpm.pid , а php-fpm работает как пользователь _php. Сначала добавьте эту строку в файл конфигурации:

Затем создайте файл /etc/php-fpm.pid и убедитесь, что у php-fpm есть разрешение на его изменение:

Теперь, в следующий раз, когда начнется php-fpm, вы сможете получить его pid и перезапустить его следующим образом:

Или вы можете объединить их в одну команду:

У меня возникла проблема с перезапуском php7-fpm, потому что я не знал, как именно была названа услуга. Эта функция дала мне ответ:

Служба php7-fpm в моем Ubuntu была вызвана php7.0-fpm , поэтому я сделал:

служба php7.0-fpm restart

Для меня я только что обновил apt, и перезапуск службы не работал. Мне пришлось убить существующие процессы до того, как они сработали, используя: killall php5-fpm

Существует множество способов развернуть локальный сервер на Mac OS X, но сама система уже содержит предустановленный веб-сервер Apache и интерпретатор PHP, которые необходимо активировать и настроить.

Данное руководство требует некоторых навыков работы с командной строкой и знания редактора nano, поэтому рекомендую прочитать хорошую книгу по основам работы с командной строкой и терминалом в Mac OS X «Take Control of the Mac Command Line with Terminal».

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

Включить веб-сервер можно в настройках: Системные настройки > Общий доступ > включить службу Общий веб-доступ.

Команды для работы с Apache через командную строку:

sudo apachectl start | stop | restart

Ошибка Apache в Mac OS X 10.6.5 и выше

Следующая ошибка наблюдается при перезапуске Apache в Mac OS X 10.6.5 и выше, если попытаться перезапустить сервер через командную строку, Apache вернет ошибку:

/usr/sbin/apachectl: line 82: ulimit: open files: cannot modify limit: Invalid argument

Необходимо внести изменения в скрипт apachectl ( /usr/sbin/apachectl ):

sudo nano /usr/sbin/apachectl

закомментируем строку 82:

ULIMIT_MAX_FILES="ulimit -S -n `ulimit -H -n`"

и добавим под ней:

Сохраняем скрипт и перезапускаем Apache.

Конфигурация Apache

Переходим к строке 116 и подключаем PHP (необходимо раскомментировать строку):

Зададим свой каталог для локального сервера, поменяем путь к корневому каталогу в строке 168 и 195. После этих изменений корневым каталогом будет папка Сайты (Sites), находящаяся в домашнем каталоге пользователя.

Аналогично заменим прежний путь в строке 195:

В строке 230 пропишем какие типы файлов и в какой последовательности должен обрабатывать Apache:

В строке 264 можно задать место для хранения журнала ошибок Apache:

Раскомментируем строку 469, чтобы подключить файл в котором будем записывать виртуальные хосты:

Сохраняем все изменения в файле httpd.conf и перезапускаем Apache. Если перейти по адресу http://localhost/ , загрузится стартовая страница из папки сайты с приветствием "Ваш веб-сайт".

Проверим работоспособность PHP, для этого создадим в каталоге Сайты тестовый PHP-скрипт:

/Sites/index.php
sudo nano

и напишем сценарий, который покажет конфигурацию PHP:

Конфигурационный файл php.ini находится в папке /private/etc/php.ini.defaults , его необходимо переименовать в php.ini :

sudo mv /private/etc/php.ini.default /private/etc/php.ini

Конфигурация виртуальных хостов.

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

/Sites/test
touch index.php
nano index.php

и добавим сценарий:

sudo nano /etc/hosts

и добавляем строчку:

Добавим записи с конфигурацией нового виртуального хоста:

И в конец файла добавляем записи:

Все указания выше приведены с учетом моих вкусов и предпочтений, цель данного руководства разобраться с основными принципами конфигурации нативного Apache и PHP на Mac OS X. С огромным удовольствием выслушаю предложения и замечания по доступности изложенного материала.

Комментарии (8):

Андрей

Теперь localhost заработает. Тестовые хосты можно удалить.

Александр

softspice

Иначе будет использоваться старый файл hosts.

Александр

AllowOverride All
Order allow,deny
Allow from all

Иначе работать не будет ниче.

Спасибо за статью!

Александр

makegood

Алексей

Вроде все так сделал. Только только у меня все равно запускается index.php из sites а не из sites/test
В чем может быть проблема?

makegood

Алексей, скорее всего, неправильно настроены хосты.
Рекомендую настройку через MacPorts, на блоге есть подробная инструкция.

Читайте также: