用mac的朋友应该经历过配置apache php的无数个坑,配置了两次mac自带apache 、php还是出问题后(不建议用自带apache+php,这样会少走很多弯路,少遇很多没必要遇到的问题),改成重新安装 Apache 和多个版本的 PHP,成功把memcache、redis、mongodb都安装上了。再之后的过程中也没在出现过任何问题。
1.安装 Homebrew
以下所有软件的安装都依赖于 macOS 上的一个包管理工具 Homebrew。使用 brew 命令,我们可以方便地在 mac 上安装各种功能各异的软件,当然,首先的安装 homebrew。安装步骤也非常简单,打开终端然后输入下面的代码:
$ ruby -e “$(curl -fsSL
https://raw.githubusercontent.com/Homebrew/install/master/install
)”
然后等待终端提示你输入密码,程序就会开始自动安装。如果你没有安装 XCode Command Line Tools,它会自动帮你装上。等待几分钟,待完成后,就可以使用下面的命令查看 Homebrew 是否正确安装:
$ brew –version
Homebrew 1.1.5
Homebrew/homebrew-core (git revision a50a6; last commit 2016-12-28)
同时可能你也需要执行一下下面的命令,来检测配置是否正确:
$ brew doctor
若有配置不当的地方,brew 会给出提示,安装提示修复即可。
1.1 添加第三方仓库
我们将需要使用一些来自第三方仓库的软件,所以需要添加额外的仓库:
$ brew tap homebrew/dupes
$ brew tap homebrew/versions
$ brew tap homebrew/php
$ brew tap homebrew/apache
然后更新 brew:
$ brew update
接下来就可以尽情使用 brew 了。
-
Apache 的安装
最新的 macOS 10.12 预装了 Apache 2.4,但苹果移除了一些必要的脚本,所以 Apache 和 Homebrew 配合使用将会变得困难。当然解决该问题的方法就是,使用 Homebrew 重新安装配置 Apache,并使其运行在标准端口上(80/443)。
如果之前已经安装有 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
接下来需要等待一小会儿,因为这个命令是下载源码并编译安装 Apache。上面命令执行结果如下面这样:
�� /usr/local/Cellar/httpd24/2.4.23_2: 212 files, 4.4M, built in 1 minute 45seconds
这里的路径很重要,因为在接下来的步骤中,我们都需要使用这个路径,在这个例子中,路径是 /usr/local/Cellar/httpd24/2.4.23_2/,如果你的路径不是这个,则在运行下面的命令的时候,将其替换为你的路径就可以了:
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
现在我们就通过 Homebrew 安装上了 Apache,并使用管理员权限将其配置为自动启动。这个时候 Apache 应该已经在运行了,所以你打开浏览器访问 localhost 将会看到 “It works!”。
2.1 Apache 的配置
-
PHP 的安装
我们接下来安装 PHP 5.5、PHP 5.6、PHP 7.0 和 PHP 7.1,并使用一个简单的脚本来切换不同的版本。
你可以使用 brew options php55 来查看所有可以安装的选项设置,比如在这个例子中,我们使用 –with-httpd24 参数来编译安装 PHP 以及使 Apache 支持 PHP 所需要的一些模块。
$ brew install php55 --with-httpd24
$ brew unlink php55
$ brew install php56 --with-httpd24
$ brew unlink php56
$ brew install php70 --with-httpd24
$ brew unlink php70
$ brew install php71 --with-httpd24
上面的命令会从源码下载 PHP,并进行编译安装。这可能需要一点时间。
如果之前已经安装过 PHP,可能需要使用 reinstall 来代替 install 进行安装。
3.0.1 ISSUE configure: error: Cannot find libz
我在安装的时候遇到了一个错误:
==> ./configure --prefix=/usr/local/Cellar/php56/5.6.11_2 --localstatedir=/usr/local/var --sysconfdir=/usr/local/etc/php/5.6 --with-config-file-path=/usr/local/etc/php/5.6 --with
checking whether to enable the SQLite3 extension... yes
checking bundled sqlite3 library... yes
checking for ZLIB support... yes
checking if the location of ZLIB install directory is defined... no
configure: error: Cannot find libz
最终在 Github 上找到了该 ISSUE [Cannot find libz when install php56 #1946
]( [https://
github.com/Homebrew/hom
ebrew-php/issues/1946)](
http://link.zhihu.com/?target=https%3A//github.com/Homebrew/homebrew-php/issues/1946%29
) 。
其原因可能是 Xcode 的 Command Line Tool 没有正确安装。解决问题的方法是运行下面的命令来重新安装:
xcode-select --install
可能你也需要根据自己的需要修改一些 PHP 的配置,常见的比如修改内存配置或 date.timezone 配置。各个版本的配置文件即 php.ini 在下面的目录:
/usr/local/etc/php/5.5/php.ini
/usr/local/etc/php/5.6/php.ini
/usr/local/etc/php/7.0/php.ini
/usr/local/etc/php/7.1/php.ini
3.1 php安装memcache用brew正常安装即可