Статьи

Настройка PHP и MySQL на OS X Yosemite

Это снова время; Apple выпустила новую версию OS X 10.10 Yosemite. Apple поставляет PHP 5.5.14 с Yosemite, и это как установить его из чистой установки.

Однако, если вы не хотите использовать встроенный PHP или хотите использовать версию 5.6, то вот некоторые альтернативы:

Давайте начнем…

Homebrew

Homebrew — менеджер пакетов для OS X. Установите его, так как он понадобится нам позже.

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

Вам также понадобятся инструменты командной строки Xcode — по крайней мере, версия 6.1. Обычно вы устанавливаете, используя
xcode-select —install, однако на момент написания этой статьи Xcode 6.1 недоступен в Mac App Store, поэтому используйте эту прямую ссылку . Не забудьте запустить Xcode…

Примечание: если / usr / include не существует, то вам нужно сделать:

sudo ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include /usr/include

MySQL

  1. Загрузите «Mac OS X 10.9 (x86, 64-bit), DMG Archive» с mysql.com и установите pkg.
  2. Откройте панель настроек и запустите MySQL Server.
  3. Обновите путь, отредактировав ~ / .bash_profile и добавив:
    export PATH=~/bin:/usr/local/bin:/usr/local/mysql/bin:$PATH

    в верхней части файла.

  4. Установите пароль root для MySQL:
    mysqladmin -u root password {new-password}
    mysqladmin -u root -p{new-password} -h localhost password {new-password}
    mysqladmin -u root -p{new-password} reload

    Очистите файл истории, введя history -c, чтобы {новый-пароль} не отображался на диске в виде простого текста.

  5. Теперь убедитесь, что файл mysql.sock можно найти с помощью PHP:

    1. Убедитесь, что MySQL работает
    2. sudo mkdir / var / mysql
    3. sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock

апаш

В Yosemite установлен Apache 2.4.9. Нам просто нужно использовать командную строку, чтобы запустить и остановить ее.

Одно из изменений по сравнению с 2.2.x, которое стоит отметить, заключается в том, что теперь в наших определениях виртуальных хостов нам нужна директива «Требовать все предоставлено» вместо «Разрешить от всех». Прочитайте документацию по обновлению для получения дополнительной информации.

  1. cd / etc / apache2
  2. Отредактируйте /etc/apache2/httpd.conf

    1. Чтобы включить PHP и переписать в Apache, удалите начальный # из этих двух строк:
      #LoadModule rewrite_module libexec/apache2/mod_rewrite.so
      #LoadModule php5_module libexec/apache2/libphp5.so
    2. Найдите раздел <Directory «/ Library / WebServer / Documents»> и измените:
      AllowOverride None на AllowOverride All, чтобы файлы .htaccess работали,
      и Options FollowSymLinks Multiviews для Options FollowSymLinks Multiviews Indexes, чтобы мы могли просматривать списки каталогов.
  3. Перезапустите Apache: sudo apachectl restart
  4. Дайте себе права доступа к папке / Library / WebServer / Documents / с помощью команд терминала:

    1. Сотрудники sudo chgrp / Библиотека / WebServer / Документы
    2. sudo chmod g + rws / Библиотека / WebServer / Документы
    3. sudo chmod g + rw / Библиотека / WebServer / Документы / *
  5. Откройте Finder и перейдите в / Library / WebServer / Documents / используя shift + cmd + g
  6. Создайте новую папку с именем «orig» и поместите в нее все файлы, находящиеся в данный момент в папке «Documents».
  7. Создайте новый файл с именем info.php с помощью <? Php phpinfo (); внутри него.
  8. Используйте Safari, чтобы перейти на http: //localhost/info.php и проверить, отображается ли версия PHP (5.5.14 на момент написания).

php.ini

  1. CD / и т. д.
  2. sudo cp php.ini.default php.ini
  3. sudo chmod ug + w php.ini
  4. sudo chgrp admin php.ini
  5. Отредактируйте php.ini и измените настройки соответствующим образом.
    Как минимум, вы должны изменить:
    date.timezone = "Europe/London"
    error_reporting  =  E_ALL
    display_errors = On

Xdebug

Не может быть среды разработки PHP без xdebug ! К счастью, Yosemite поставляется с ним, готовым включить:

  1. Отредактируйте /etc/php.ini и добавьте эту строку в конец:
    zend_extension = "xdebug.so"
  2. Если вы хотите настроить параметры xdebug, добавьте раздел [xdebug]. Мне нравятся эти настройки (используйте с осторожностью …):
    xdebug.var_display_max_children = 999
    xdebug.var_display_max_data = 999
    xdebug.var_display_max_depth = 100
  3. Перезапустите apache: sudo apachectl перезапустите и проверьте в phpinfo, что xdebug теперь загружен.

Композитор

Установите Composer в / usr / local / bin:

  1. cd / usr / local / bin
  2. curl -sS https://getcomposer.org/installer | PHP
  3. mv composer.phar composer

ГРУША

PEAR нам нужен исключительно для установки расширений PHP с использованием PECL. Нам просто нужно запустить файл установки phar.

  1. cd / usr / lib / php
  2. sudo php install-pear-nozlib.phar
  3. Обновление канала sudo pear Pear.php.net
  4. Обновление канала sudo pecl pecl.php.net
  5. судо груша апгрейд-все
  6. Конфигурация sudo pear-auto_discover 1

Компиляция расширений

Для компиляции расширений вам понадобятся инструменты командной строки Xcode и autoconf.

brew установить autoconf

Расширение Intl

Если вам нужно Locale :

  1. заваривать установить icu4c
  2. sudo pecl install intl
    Путь к библиотекам и заголовкам ICU: / usr / local / opt / icu4c /
  3. Отредактируйте /etc/php.ini и добавьте extension = intl.so в конец.

Расширение Mcrypt

Во-первых, установите mcrypt:

  1. заварить установить Mcrypt

Теперь расширение PHP:

  1. варка крана доморощенный / дупс
  2. brew tap homebrew / версии
  3. варить кран homebrew / php
  4. Отредактируйте /usr/local/Library/Taps/homebrew/homebrew-php/Abstract/abstract-php-extension.rb и патч в соответствии с этим патчем . (По крайней мере, пока этот пиар не будет принят!)
  5. brew install php55-mcrypt —without-homebrew-php
  6. Включить:

    • sudo mkdir -p / Библиотека / Сервер / Интернет / Конфигурация / php
    • sudo ln -s /usr/local/etc/php/5.5/conf.d/ext-mcrypt.ini /Library/Server/Web/Config/php/ext-mcrypt.ini

Наконец, перезапустите apache: sudo apachectl restart.

Это оно! Все равно на этой машине все работает ?

Как я уже отмечал выше, если вы не хотите делать все это самостоятельно, есть другие варианты, доступные для PHP на OS X, которые могут работать лучше для вас.