一、安装Homebrew
当需要在MacOS上安装各种扩展的时候,推荐使用Homebrew,Homebrew是MacOS上的命令行模式下的软件管理工具,与Fedora操作系统上的dnf命令类似。Homebrew 的安装非常简单,在安装前,需要确认XCode或者Command Line Tools for Xcode是否安装,但我并不使用Xcode这个庞然大物来编码,所以只需安装 Command Line Tools for Xcode 即可,在终端键入以下代码完成安装:
$ xcode-select --install
在终端执行下面的命令进行安装(注意不要有换行):
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install"
但是,这条命令执行时下载的速度非常慢,此时可以下载这个bash命令文件,修改里面的软件源的位置为国内的软件源,以提高下载速度,详细过程如下:
下载官网提供的安装脚本,保存为本地brew_install文件:
$ curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install >> brew_install
打开brew_install文件,更改脚本中的资源链接为清华大学的镜像,修改语句:
BREW_REPO = "https://github.com/Homebrew/brew".freeze
为:
BREW_REPO = "https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git".freeze
当然也可以换成别的软件源,修改之后执行:
$ /usr/bin/ruby brew_install
安装成功之后执行下面的命令检查是否安装成功:
$ brew -v
注:直接执行安装会很慢,可为brew添加清华大学镜像源:
$ echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles' >> ~/.bash_profile
$ source ~/.bash_profile
下面列出brew命令的常见用法
用brew命令搜索软件:
$ brew search autoconf
用brew安装软件
$ brew install autoconf
查看软件信息
$ brew info autoconf
更新某一软件
$ brew upgrade autoconf
卸载软件
$ brew remove autoconf
$ brew uninstall autoconf
删除程序,和upgrade一样,单个软件删除和所有程序删除
$ brew cleanup autoconf
$ brew cleanup
查看哪些软件可以升级
$ brew outdated
查看已经安装的软件列表
$ brew list
二、安装Apache
推荐使用如下命令首先安装Apache2,毕竟自带的配置管理都不太方便:
$ brew install apache2
相关的配置在后面配置PHP时一起介绍。
三、安装PHP
然后使用下面的命令安装php:
$ brew install php
如果需要指定版本,请首先确认源的版本,可以使用命令查询:
$ brew search php
安装成功之后,可以通过如下命令检查版本信息:
$ php -v
PHP 7.4.0 (cli) (built: Nov 29 2019 16:18:44) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.0, Copyright (c), by Zend Technologies
$ phpize -v
Configuring for:
PHP Api Version: 20190902
Zend Module Api No: 20190902
Zend Extension Api No: 320190902
如需安装xdebug,可先到xdebug的官网下载最新版的源码,解压缩之后进入源码目录,然后依次执行下面的命令,完成安装:
$ phpize
$ ./configure
$ make
$ sudo make install
安装成功之后需要修改php.ini的配置信息,确保php能够正确载入xdebug扩展文件。此时需要知道brew默认的安装位置。在MacOS上,brew的默认安装是在/usr/local/Cellar目录中,但是同时会在/usr/local/opt目录中建立对应的软连接。
用brew安装的PHP对应的php.ini文件是放在/usr/local/etc/php目录中的,需要在该目录中找到对应正确的版本。
我们不用打开和修改php.ini配置文件,而是继续进入conf.d目录,如果成功安装,在这里应该已经有了一个ext-opcache.ini的文件,我们可以依葫芦画瓢,创建一个ext-xdebug.ini的文件,并输入以下内容(请注意xdebug的正确安装目录):
[xdebug]
zend_extension=/usr/local/opt/php/pecl/20190902/xdebug.so
xdebug.remote_enable = 1
xdebug.collect_params = 4
保存,并再次执行下面的命令就能看到xdebug正确载入的信息:
$ php -v
PHP 7.4.0 (cli) (built: Nov 29 2019 16:18:44) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.0, Copyright (c), by Zend Technologies
with Xdebug v2.8.1, Copyright (c) 2002-2019, by Derick Rethans
修改apache2的配置文件,载入php扩展,修改如下内容:
$ sudo vi /usr/local/etc/httpd/httpd.conf
LoadModule php7_module /usr/local/lib/httpd/modules/libphp7.so
然后还需要配置对php文件的支持,可以用以下命令建立配置文件,该配置文件apache2启动时会自动载入:
$ sudo vi /usr/local/etc/httpd/other/php7.conf
在这个文件中输入以下内容:
<IfModule php7_module>
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
<IfModule alias_module>
Alias /php "/Volumes/HD_2/Project/PHP"
<Directory "/Volumes/HD_2/Project/PHP">
Options Indexes MultiViews FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
Require all granted
</Directory>
</IfModule>
</IfModule>
这里的配置含义是:如果载入了php扩展模块则增加PHP文件类型支持,以及增加index.php文件的目录优先级。并且,如果载入了别名扩展模块,则增加一个虚拟目录别名,指向具体项目目录。
到这里就完成了基本配置,执行phpini()也能看到信息输出。