如何在Mac上安装PHP环境

前置环境:HomeBrew

bash 复制代码
# Homebrew 是 Mac 上最好的包管理器之一,可以用于安装各种开源软件。从 Terminal(终端)执行以下命令安装 Homebrew:
/usr/bin/ruby -e $(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

一、安装php7.2

bash 复制代码
# 安装必要的扩展 以下命令安装了 Mcrypt、Opcache、Redis、Xdebug 和 Yaml 五个扩展。可以根据具体需求选择安装其他扩展。
brew install php70-mcrypt php70-opcache php70-redis php70-xdebug php70-yaml

# 安装 PHP 版本
# brew install php # 执行这个命令将会安装 Homebrew 中最新版本的 PHP

# 如果需要安装其他版本的 PHP 可以使用以下命令进行查找:
brew search php

# 然后可以根据需要安装特定版本的 PHP,例如安装 PHP 7.2 版本:
brew install php@7.2

二、配置 PHP

bash 复制代码
cd /etc
sudo nano php.ini # 在这个文件中可以修改一些 PHP 配置,例如文件上传大小限制、时区等。一些常用的设置如下:

# 内容BEGIN
upload_max_filesize = 2M
post_max_size = 8M
date.timezone = "Asia/Shanghai"
# 内容END, 保存文件后,重启 Apache 或者 Nginx Web 服务器,使配置生效。

三、测试 PHP 是否正常工作

bash 复制代码
touch /usr/local/var/www/info.php

# 内容BEGIN
<?php
  phpinfo();
?>
# 内容END

现在可以在浏览器中输入 http://127.0.0.1/info.php,如果一切正常将会出现 PHP 信息的页面。

到此为止,你已经成功配置了 PHP 环境,并可以开始 PHP 开发了。

FAQ

Q1、brew安装提示失败

bash 复制代码
Error: php@7.2 has been disabled because it is deprecated upstream!

答: brew已经不支持7.2了,只有用其他办法来安装

bash 复制代码
brew tap shivammathur/php
brew install shivammathur/php/php@7.2

安装完成提示

bash 复制代码
The php.ini and php-fpm.ini file can be found in:
    /opt/homebrew/etc/php/7.2/
​
php@7.2 is keg-only, which means it was not symlinked into /opt/homebrew,
because this is an alternate version of another formula.
​
If you need to have php@7.2 first in your PATH, run:
  echo 'export PATH="/opt/homebrew/opt/php@7.2/bin:$PATH"' >> ~/.zshrc
  echo 'export PATH="/opt/homebrew/opt/php@7.2/sbin:$PATH"' >> ~/.zshrc
​
For compilers to find php@7.2 you may need to set:
  export LDFLAGS="-L/opt/homebrew/php@7.2/lib"
  export CPPFLAGS="-I/opt/homebrew/php@7.2/include"
​
​
To restart shivammathur/php/php@7.2 after an upgrade:
  brew services restart shivammathur/php/php@7.2
Or, if you don't want/need a background service you can just run:
  /usr/local/opt/php@7.2/sbin/php-fpm --nodaemonize

Q2、No code signing authority for module at /opt/homebrew/opt/php@7.2/lib/httpd/modules/libphp7.so specified in LoadModule directive.

答:MacOS 12版本不再自带php,使用brew安装php8.0 之后配置httpd.conf遇到以上标题错误,需要重新签名

Q2.1 首先在·钥匙串访问· -> 证书助理 -> 创建证书颁布机构(代码签名)

Q2.2 再回到·钥匙串访问· 找到 Ls RootCA

Q2.3 选择右键简介始终信任

Q2.4 在终端 给php动态库签名

bash 复制代码
sudo codesign --sign "zhiNian的CA" --force --keychain  ~/Library/Keychains/login.keychain-db /opt/homebrew/opt/php@7.2/lib/httpd/modules/libphp7.so

Q2.5 编辑 /etc/apache2/httpd.conf 添加下列

bash 复制代码
LoadModule php7_module /opt/homebrew/opt/php@7.2/lib/httpd/modules/libphp7.so "zhiNian的CA"

Q2.6 重启Apache

bash 复制代码
sudo apachectl -k restart

提示: AH06662: Allowing module loading process to continue for module at /opt/homebrew/opt/php@7.2/lib/httpd/modules/libphp7.so

注: httpd not running, trying to start

bash 复制代码
# 重启
sudo apachectl restart

访问 http://127.0.0.1/index.php

相关推荐
damoluomu1 天前
挑 PHP CMS 之前,先学会看它的协议
php
千里马学框架1 天前
一起学 Android 14:ShellTransition 屏幕旋转过程深度剖析
android·智能手机·性能优化·framework·性能·屏幕旋转·rotation
美狐美颜SDK开放平台1 天前
开发直播APP时如何接入视频美颜SDK?开发流程与注意事项
android·人工智能·计算机视觉·音视频·直播美颜sdk
AFinalStone1 天前
Android7 SystemUI源码解析(七)Keyguard锁屏模块深度解析
android·systemui
致远ccc1 天前
Google Play 上架前如何测试 App?多国家 Android 环境测试
android·app测试·googleplay·多国家应用测试
ttyyttemo1 天前
Kotlin 协程中的 Job 结构化并发与取消
android
sun0077001 天前
tbox 4g/5g切换,导致wan ip 改变,导致车机旧网络不可用。需要重启车机才行
android
其实防守也摸鱼1 天前
内网穿透与反向代理:原理、工具与实战指南
android·大数据·运维·安全·网络安全·自动化·渗透
AFinalStone1 天前
Android7 SystemUI 源码解析(四)NavigationBar 导航栏与 SystemBars
android·systemui
JMchen1 天前
属性动画原理与高级动画实现
android·kotlin·canvas