注意:本教程是在 MacOS Monterey 12.0 系统(Mac Pro M1机型)上部署的,对于 Macos 12.0 以前的系统可能会有不太适用
x. 如果还没有安装 xcode,请先安装
xcode-select --install
x. 安装 homebrew
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
x. 卸载 homebrew
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/HomebrewUninstall.sh)"
测试 brew 是否安装成功
brew --version
可以使用下面命令确保检查配置是否正确,如有不适用的配置请按照提示修正
brew doctor
开始之前先安装 openssl 库,可以解决后面一些奇怪的错误
brew install openssl
因为 MacOS 12.0 Monterey 预装了 Apache2.4 ,并且该版本不支持 php(PHP在MacOS 12.0之后已经不在系统的预装环境列表了 ),所以最好先停掉系统自带的并禁用开机启动
sudo apachectl stop
sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 2>/dev/null
x. 开始安装 brew 提供的 apache
brew install httpd
安装成功后可以通过下面命令进行管理
brew services stop httpd
brew services start httpd
brew services restart httpd
启动成功后可以使用浏览器访问 ,可以看到 apache 已经工作的提示。如果启动失败可以使用下面命令进行检查服务是否启动成功
ps -aef | grep httpd
或者查看日志信息
tail -f /opt/homebrew/var/log/httpd/error_log
x. 开始安装 php
HP 7.0和PHP 7.1已被弃用并从 Brew 中删除,Brew 仅正式支持PHP 7.2 到 8.0 。这里使用另一种管理方式解决php多版本的管理问题
brew tap shivammathur/php
安装你需要的php版本,后面可以通过指令随时切换想要的版本
brew install shivammathur/php/php@5.6
brew install shivammathur/php/php@7.0
brew install shivammathur/php/php@7.1
brew install shivammathur/php/php@7.2
brew install shivammathur/php/php@7.3
brew install shivammathur/php/php@7.4
brew install shivammathur/php/php@8.0
安装完后对应的配置文件路径径
/opt/homebrew/etc/php/5.6/php.ini
/opt/homebrew/etc/php/7.0/php.ini
/opt/homebrew/etc/php/7.1/php.ini
/opt/homebrew/etc/php/7.2/php.ini
/opt/homebrew/etc/php/7.3/php.ini
/opt/homebrew/etc/php/7.4/php.ini
/opt/homebrew/etc/php/8.0/php.ini
注意,安装完 php 后请打开新的终端窗口执行下面的操作,否则容易出现一些莫名的错误
下面命令可以切换指定的php版本
brew unlink php@7.0 && brew link --overwrite --force php@7.3
使用 php -v 检测当前生效的版本
x. 在 apache 中配置 php ,编辑 /opt/homebrew/etc/httpd/httpd.conf 配置文件
#LoadModule php7_module /opt/homebrew/opt/php@5.6/lib/httpd/modules/libphp5.so
#LoadModule php7_module /opt/homebrew/opt/php@7.0/lib/httpd/modules/libphp7.so
#LoadModule php7_module /opt/homebrew/opt/php@7.1/lib/httpd/modules/libphp7.so
#LoadModule php7_module /opt/homebrew/opt/php@7.2/lib/httpd/modules/libphp7.so
#LoadModule php7_module /opt/homebrew/opt/php@7.3/lib/httpd/modules/libphp7.so
LoadModule php7_module /opt/homebrew/opt/php@7.4/lib/httpd/modules/libphp7.so
#LoadModule php_module /opt/homebrew/opt/php@8.0/lib/httpd/modules/libphp.so
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
对照修改,没有则添加,然后保存配置文件并重启 httpd 服务
最后验证 php 是否安装成功
curl -L https://gist.githubusercontent.com/rhukster/f4c04f1bf59e0b74e335ee5d186a98e2/raw/791fda77946ab2dbd053d7f27e9237aaf7392c4b/sphp.sh > /opt/homebrew/bin/sphp
chmod +x /opt/homebrew/bin/sphp
使用方法
sphp 7.0
如果您收到有关 PHP 版本冲突的消息,那么您可能存在点击冲突。您需要卸载以前的 PHP 版本,然后移除旧的 Tap,然后添加新的 Tap,然后使用上述语法重新安装 PHP 版本。例如:
brew untap exolnet/deprecated
brew tap shivammathur/php
brew install shivammathur/php/php@7.0