目录

Mac 打造 PHP 开发环境

简介

MNMPmacOS, Nginx, MySQL, PHP 组合开发环境的简称

Mac 准备

请先安装 Homebrew - The missing package manager for macOS

旧的安装方式

Homebrew/php deprecation #4721

这种安装方式已经不被推荐,相关的 Formula 已经被迁移到 homebrew-core

1
2
3
4
$ brew tap homebrew/dupes
$ brew tap homebrew/versions
$ brew tap homebrew/php
$ brew tap homebrew/homebrew-php

新的安装方式

php: import from homebrew/php #16067

  • 默认了一些必要的扩展(opcache/openssl 等)
  • 其它扩展通过 pecl 去安装

Nginx 安装

1
2
$ brew info nginx
$ brew install nginx

操作

1
2
3
$ sudo brew services start nginx
$ sudo brew services restart nginx
$ sudo brew services stop nginx

开机运行

1
2
$ cp /usr/local/opt/nginx/homebrew.mxcl.nginx.plist ~/Library/LaunchAgents/
$ launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist

参考

MySQL 安装

1
2
3
4
$ brew install mysql
$ unset TMPDIR
$ mysqld --initialize-insecure --explicit_defaults_for_timestamp=1 --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp
$ mysql_secure_installation

PHP 安装

旧的安装方式

1
2
$ brew info php71
$ brew install php71

新的安装方式

1
2
$ brew info php@7.1
$ brew install php@7.1

PHP-FPM: Configuration the Listen Directive

PHP-FPM: Configuration the Listen Directive

Unix Sockets

1
2
3
4
5
6
7
// www.conf
listen = /var/run/php71-fpm.sock
listen.owner = www-data
listen.group = www-data

// nginx.conf
fastcgi_pass unix:/var/run/php71-fpm.sock;

TCP Sockets

1
2
3
4
5
6
// www.conf
Listen 127.0.0.1:9000
listen.allowed_clients = 127.0.0.1

// nginx.conf
fastcgi_pass 127.0.0.1:9000;

扩展安装

旧的扩展安装方式

  • 正常扩展的安装
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
// Redis
$ brew install --HEAD homebrew/php/php71-redis

// Memcached
$ brew install --HEAD homebrew/php/php71-memcached

// Opcache
$ brew install php71-opcache

// Phalcon
$ brew install php71-phalcon

// Mongodb
$ brew install php71-mongodb
  • 特殊扩展的安装

Intl 扩展安装

1
2
3
4
5
// php71
$ brew install php71-intl

// php70
$ brew install -s php70-intl
新的扩展安装方式
  • 正常扩展的安装

必要是请使用 sudo 执行

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
// Igbinary
$ pecl install igbinary

// Mongodb
$ pecl install mongodb

// Redis
$ pecl install redis

// Memcached
$ pecl install memcached

// Xdebug
$ pecl install xdebug
  • 特殊扩展的安装

Phalcon 安装

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
$ which php
$ git clone https://github.com/phalcon/cphalcon
$ cd cphalcon/build/php7/64bits
$ sudo /usr/local/opt/php@7.1/bin/phpize
$ sudo ./configure --with-php-config=/usr/local/opt/php@7.1/bin/php-config
$ cd /usr/local/include
$ ls -s ../opt/openssl/include/openssl .
$ cd -
$ sudo make
$ sudo make install

路径

将环境变量添加到 ~/.zshrc 或者 ~/.bashrc 中并进行 source ~/.zshrc 或者 source ~/.bashrc

旧的路径

1
2
export PATH="$(brew --prefix homebrew/php/php71)/bin:$PATH"
export PATH="$(brew --prefix php71)/sbin:$PATH"

新的路径

1
2
export PATH="/usr/local/opt/php@7.1/bin:$PATH"
export PATH="/usr/local/opt/php@7.1/sbin:$PATH"

操作

1
2
3
$ brew services start php71
$ brew services restart php71
$ brew services stop php71

开机运行

1
2
$ cp /usr/local/opt/php71/homebrew.mxcl.php71.plist ~/Library/LaunchAgents/
$ launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.php71.plist

多版本 PHP

安装多版本 PHP

1
2
$ brew unlink php[55,56,70,71...]
$ brew install php[55,56,70,71...]

切换 PHP 版本

1
$ brew-php-switcher [55,56,70,71...] -s