Mac M1安装mnmp (Mac+Nginx+MySQL+PHP) 开发环境


Posted in PHP onMarch 29, 2021

之前刚装好了 HomeBrew ,接下来就要安装 环境了。

注意:如果 brew install 出以下错误, 则安装时使用 arch -arm64 brew install 软件包名 进行安装

Mac M1安装mnmp (Mac+Nginx+MySQL+PHP) 开发环境

安装 Nginx 

brew install nginx

Mac M1安装mnmp (Mac+Nginx+MySQL+PHP) 开发环境

安装成功后,通过 brew info nginx ,查看 nginx 信息,最主要是看 网站根目录与配置文件目录。(默认为 8080 端口)

 php-fpm 解析 php

# 终端
vim /opt/homebrew/etc/nginx/nginx.conf
  
# 在文件内 http{} 中新增
location ~ \.php$ {
 root   html;
 fastcgi_pass 127.0.0.1:9000;
 fastcgi_index index.php;
 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
 include  fastcgi_params;
}
  
# 终端, 重启 nginx
nginx -s reload
# nginx 常用命令
  
sudo nginx # 启动
sudo -s reload # 重新加载配置
sudo -s reopen # 重启
sudo -s stop # 停止
sudo -s quit # 退出

安装 MySQL

首先搜索是否包含想要安装的 mysql 版本, 这里以 mysql@5.7 为例

Mac M1安装mnmp (Mac+Nginx+MySQL+PHP) 开发环境

安装成功

Mac M1安装mnmp (Mac+Nginx+MySQL+PHP) 开发环境

 添加 MySQL 环境变量

# 终端
echo 'export PATH="/opt/homebrew/opt/mysql@5.7/bin:$PATH"' >> ~/.zshrc
  
# 刷新 ~/.zshrc
source ~/.zshrc

查看当前版本

mysql --version

安装PHP 

首先搜索是否包含想要安装的 php 版本, 这里以 php5.6 为例

brew search php

执行 brew search php 后发现没有 php5.6, 解决方法就是 tap 一下。

Mac M1安装mnmp (Mac+Nginx+MySQL+PHP) 开发环境

tap一下

brew tap shivammathur/php

解压至 /opt/homebrew/Library/Taps/shivammathur/homebrew-php (不存在则需要手动创建目)如果 tap 超时, 则用浏览器打开 https://github.com/shivammathur/homebrew-php , 下载压缩包

完成后就可能找到 php5.6 版本了

Mac M1安装mnmp (Mac+Nginx+MySQL+PHP) 开发环境

安装php5.6,耐心等待安装完成

brew install shivammathur/php/php@5.6

 添加PHP环境变量

# 终端
vim ~/.zshrc
  
# 新增
export PATH="/opt/homebrew/opt/php@5.6/bin:$PATH"
export PATH="/opt/homebrew/opt/php@5.6/sbin:$PATH"
  
# 终端 刷新 ~/.zshrc
source ~/.zshrc

安装 brew-php-swither PHP版本切换工具

brew install brew-php-switcher

切换版本

# brew-php-switcher 版本号
brew-php-switcher 5.6

查看当前版本

php -v

 

PHP 相关文章推荐
用PHP4访问Oracle815
Oct 09 PHP
php面向对象全攻略 (六)__set() __get() __isset() __unset()的用法
Sep 30 PHP
php图片的裁剪与缩放生成符合需求的缩略图
Jan 11 PHP
如何解决CI框架的Disallowed Key Characters错误提示
Jul 05 PHP
PHP中对于浮点型的数据需要用不同的方法解决
Mar 11 PHP
PHP 实现类似js中alert() 提示框
Mar 18 PHP
php创建多级目录的方法
Mar 24 PHP
完美解决phpexcel导出到xls文件出现乱码的问题
Oct 29 PHP
php实现异步将远程链接上内容(图片或内容)写到本地的方法
Nov 30 PHP
thinkPHP3.2.3结合Laypage实现的分页功能示例
May 28 PHP
YII分模块加载路由的实现方法
Oct 01 PHP
PHP封装cURL工具类与应用示例
Jul 01 PHP
Laravel中Kafka的使用详解
Mar 24 #PHP
thinkphp5 redis缓存新增方法实例讲解
php优化查询foreach代码实例讲解
Mar 24 #PHP
PHP引擎php.ini参数优化深入讲解
Mar 24 #PHP
PHP使用Redis队列执行定时任务实例讲解
Mar 24 #PHP
YII2 全局异常处理深入讲解
Laravel的加密解密与哈希实例讲解
Mar 24 #PHP
You might like
一步一步学习PHP(1) php开发环境配置
2010/02/15 PHP
php中session_unset与session_destroy的区别分析
2011/06/16 PHP
php高级编程-函数-郑阿奇
2011/07/04 PHP
PHP魔术引号所带来的安全问题分析
2014/07/15 PHP
apache中为php 设置虚拟目录
2014/12/17 PHP
jQuery 入门讲解1
2009/04/15 Javascript
JS防止用户多次提交的简单代码
2013/08/01 Javascript
JS按字节截取字符长度实例
2013/11/20 Javascript
node+express+jade制作简单网站指南
2014/11/26 Javascript
JS实现设置ff与ie元素绝对位置的方法
2016/03/08 Javascript
JS Ajax请求如何防止重复提交
2016/06/13 Javascript
Node.js 数据加密传输浅析
2016/11/16 Javascript
JS实现控制图片显示大小的方法【图片等比例缩放功能】
2017/02/18 Javascript
教你用十行node.js代码读取docx的文本
2017/03/08 Javascript
Linux使用Node.js建立访问静态网页的服务实例详解
2017/03/21 Javascript
分享ES6的7个实用技巧
2018/01/18 Javascript
详解解决使用axios发送json后台接收不到的问题
2018/06/27 Javascript
vue使用Font Awesome的方法步骤
2019/02/26 Javascript
详解JavaScript栈内存与堆内存
2019/04/04 Javascript
JavaScript(js)处理的HTML事件、键盘事件、鼠标事件简单示例
2019/11/19 Javascript
vuex 多模块时 模块内部的mutation和action的调用方式
2020/07/24 Javascript
[01:04:02]DOTA2-DPC中国联赛 正赛 Elephant vs IG BO3 第二场 1月24日
2021/03/11 DOTA
python中函数总结之装饰器闭包详解
2016/06/12 Python
Python3如何解决字符编码问题详解
2017/04/23 Python
对Python 数组的切片操作详解
2018/07/02 Python
详解Python正则表达式re模块
2019/03/19 Python
Python使用gluon/mxnet模块实现的mnist手写数字识别功能完整示例
2019/12/18 Python
董事长岗位职责
2013/11/30 职场文书
应届本科毕业生求职信
2014/07/23 职场文书
领导四风问题整改措施思想汇报
2014/10/13 职场文书
2014年小学工作总结
2014/11/26 职场文书
格列佛游记读书笔记
2015/06/30 职场文书
计算机教师工作总结
2015/08/13 职场文书
2016年党员创先争优公开承诺书
2016/03/25 职场文书
重温经典:乔布斯在斯坦福大学的毕业演讲(双语)
2019/08/26 职场文书
Java方法重载和方法重写的区别到底在哪?
2021/06/11 Java/Android