Установка php mac os

По умолчанию в macOS уже установлен PHP, но иногда требуется обновить конфигурацию или устновить другую версию PHP.

Я уже рассказывал про то, как установить и настроить PHP. Фактически до этого мы просто включали PHP в настройках Apache.

Недавно мне потребовалась поддержка расширения GD Freetype и пришлось установить другую версию PHP. На официальном сайте рекомендуют использовать уже готовые и сконфигурированные для этого пакеты.

Я воспользовался пакетами от Liip (https://php-osx.liip.ch). Это готовые сборки различных версий PHP, которые очень легко установить.

Устанавливаем PHP

Сразу замечу, что новая версия PHP установится параллельно с текущей, поэтому волноваться не стоит. Откройте терминал и выполните следующую команду:

Данная команда автоматически скачает и установит в macOS PHP версии 5.6. Если нужна другая версия, укажите вместо 5.6 ее номер (например, можно указать версию 7.1).

Установка может занять некоторое время. У меня на это ушло около минуты.

В конце я получил следующее сообщение:

Restarting Apache
[Fri Mar 17 10:03:03.441097 2017] [so:warn] [pid 26302] AH01574: module php5_module is already loaded, skipping

Оно означает, что установщик перезапустил Apache, но в настройках веб-сервера уже подгружается другой модуль PHP. Так и есть – подгружается тот PHP, который у меня уже был установлен в системе по умолчанию, и его загрузку нужно отключить в настройках Apache. Сделаем это.

Откроем файл конфигурации Apache, для этого выполните в терминале команду:

Найдите строку: LoadModule php5_module libexec/apache2/libphp5.so и закомментируйте ее (перед строкой нужно поставить символ решетки #). Сохраните и закройте файл.

Осталось перезапустить Apache. Выполните в терминале команду:

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

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

Читайте также:  Смарт для своих новосибирск описание

Как вам наверное уже известно PHP начиная с версии 5.4 содержит встроенный веб сервер, навеянный имением такового например в том же Node JS. И в других современных языках программирования. Честно говоря реализован он явно с задней мыслью — "Ок, ок, у нас он тоже теперь есть. Довольны? Вот и отвалите наконец от нас!". В общем то и на том спасибо. Нам этого достаточно.

Как узнать присутствует ли в вашем маке данные сервер? Очень просто необходимо выполнить в терминале следующую команду:

Если ваша версия PHP выше 5.4 c большей вероятностью вы счастливый обладатель данного сервера. Для того что бы убедится что всё работает давайте создадим в домашней дирректории вашего юзера папку test и положим туда файл index.php в который вставим следующую строку после чего перейдём в эту папку и запустим наш php сервер:

Всё, ваш сервер запущен и работает, что бы увидеть его в браузере достаточно перейти по адресу 127.0.0.1:8080 и насладится отладкой вашего приложения. Что бы остановить сервер нужно нажать Control + C да, да вы не ослышались Control а не Command.

У меня получилась вот такая вот картина:

Обновить версию PHP в Mac Os

Как мы видим по умолчанию стоит не самая новая версия PHP, а на моём аймаке 2011 года который я не очень хочу обновлять с OSX Maverics и подавно стоит PHP версии 5.4. Давайте исправим это для начала скачаем и установим стабильную версию PHP 7

Текущая версия не перезаписывает бинарники системы, а устанавливается в свою отдельную папку /usr/local/php5/bin/php. Для того, что бы подключить её по умолчанию и в php -v так же отображалась нужная нам версия, необходимо добавить путь в настройки Bash, открываем:

Читайте также:  Почему сбивается время на телефоне андроид

И добавляем туда строку

Теперь вводя php -v мы получим такой ответ

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

В этом месте: php7.1/bin/:$PATH укажите правильную версию PHP используемую вами у хостов.

Содержание

Этот раздел содержит руководство и различные советы по установке PHP на macOS. PHP поставляется вместе с компьютерами Mac, компилирование на которых схоже с установкой в Unix-системах.

User Contributed Notes 6 notes

There is a "One Line Installation" tool to use PHP 5.6/5.5/5.4/5.3 for
OS X 10.6/10.7/10.8/10.9/10.10 with the build-in Apache with lots of extensions included:

I hope posting this link is allowed, because it helped me a lot to get the latest PHP-Version running.

bcmath bz2 calendar Core ctype curl date dom dtrace ereg exif fileinfo filter ftp gd gettext hash iconv imap intl json ldap libxml mbstring mcrypt memcache memcached mhash mongo mssql mysql mysqli mysqlnd OAuth odbc openssl pcntl pcre PDO pdo_dblib pdo_mysql pdo_pgsql pdo_sqlite pgsql Phar posix Reflection session shmop SimpleXML soap sockets solr SPL SQLite sqlite3 standard sysvmsg sysvsem sysvshm tidy tokenizer wddx xdebug xhprof xml xmlreader xmlrpc xmlwriter xsl zip zlib Xdebug

available but disabled by default: apc, xslcache, twig, uploadprogress

Just a note. The darwinports software is now macports and you can get it at: http://www.macports.org/

If you use macports, be sure to change any refernces you may have in your calling scripts to macports as the file macports now gets installed.

Читайте также:  Почему не работает клавиатура на ноутбуке windows

My httpd.conf had some of the lines, but not all of them — mine was missing the LoadModule and AddModule lines for php. I’m not sure why — I don’t delete any of those; I just comment them out if I’m not using them. Plus, the note above put a space in "LoadModule"; it has no space. I didn’t know about the "apachectl graceful" trick, though — since "httpd -k restart" stopped working (probably around 10.2), I had just been doing it manually — find the process, kill it, and hit httpd again — thanks for the tip!

So for those who are missing any of the lines, here are the full lines.

In the section with all the other LoadModules:
LoadModule php4_module libexec/httpd/libphp4.so

Directly below that section should be the AddModules; you need:
AddModule mod_php4.c

And then the AddType lines should be right after the language priorities (so after the AddCharset lines and after the LanguagePriority bit):
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

Then restart apache/httpd as described above, and hopefully you should be good.

BTW, the actual module should be at:
/usr/libexec/httpd/libphp4.so
So if things fail, you can check to see if that’s there.

Thanks to others who posted here; it definitely helped and got me on the right track. I just had to find the module manually to write my own LoadModule line.

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

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

Adblock detector