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 相关文章推荐
真正面向对象编程:PHP5.01发布
Oct 09 PHP
PHP 抓取新浪读书频道的小说并生成txt电子书的代码
Dec 18 PHP
php 获取select下拉列表框的值
May 08 PHP
PHP求最大子序列和的算法实现
Jun 24 PHP
php中try catch捕获异常实例详解
Nov 21 PHP
Opcache导致php-fpm崩溃nginx返回502
Mar 02 PHP
thinkphp表单上传文件并将文件路径保存到数据库中
Jul 28 PHP
php强制下载文件函数
Aug 24 PHP
PHP合并数组的2种方法小结
Nov 24 PHP
php实现等比例压缩图片
Jul 26 PHP
PHP删除字符串中非字母数字字符方法总结
Jan 20 PHP
浅析PHP7的多进程及实例源码
Apr 14 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
40年前的这部特摄片恐龙特级克塞号80后的共同回忆
2020/03/08 日漫
PHP&MYSQL服务器配置说明
2006/10/09 PHP
JavaScript 实现模态对话框 源代码大全
2009/05/02 Javascript
EXT中xtype的含义分析
2010/01/07 Javascript
Jquery调用webService远程访问出错的解决方法
2010/05/21 Javascript
JavaScript 大数据相加的问题
2011/08/03 Javascript
javascript SpiderMonkey中的函数序列化如何进行
2012/12/05 Javascript
JS注册/移除事件处理程序(ExtJS应用程序设计实战)
2013/05/07 Javascript
node.js中的url.format方法使用说明
2014/12/10 Javascript
node.js中的fs.createWriteStream方法使用说明
2014/12/17 Javascript
JavaScript中的包装对象介绍
2015/01/27 Javascript
JavaScript函数使用的基本教程
2015/06/04 Javascript
BootStrap的alert提示框的关闭后再显示怎么解决
2016/05/17 Javascript
vue使用自定义icon图标的方法
2018/05/14 Javascript
微信实现自动跳转到用其他浏览器打开指定APP下载
2019/02/15 Javascript
vue基础之模板和过滤器用法实例分析
2019/03/12 Javascript
Vue使用zTree插件封装树组件操作示例
2019/04/25 Javascript
layui实现鼠标移动到单元格上显示数据的方法
2019/09/11 Javascript
详解JavaScript中精度失准问题及解决方法
2020/02/04 Javascript
微信小程序实现选项卡滑动切换
2020/10/22 Javascript
JavaScript Html实现移动端红包雨功能页面
2021/01/10 Javascript
[01:45]绝对公平!DOTA2队长征召模式详解
2014/04/25 DOTA
[00:33]2018DOTA2亚洲邀请赛TNC出场
2018/04/04 DOTA
Python中为feedparser设置超时时间避免堵塞
2014/09/28 Python
机器学习经典算法-logistic回归代码详解
2017/12/22 Python
Python可变对象与不可变对象原理解析
2020/02/25 Python
基于Python爬取51cto博客页面信息过程解析
2020/08/25 Python
法国二手MacBook销售网站:Okamac
2019/03/18 全球购物
高级方案规划工程师岗位职责
2013/11/29 职场文书
光信息科学与技术专业职业生涯规划
2014/03/13 职场文书
法院先进个人事迹材料
2014/05/04 职场文书
行政文员实习自我鉴定范文
2014/09/14 职场文书
副总经理党的群众路线教育实践活动个人对照检查材料思想汇报
2014/10/06 职场文书
群众路线剖析材料范文
2014/10/09 职场文书
jquery插件实现搜索历史
2021/04/24 jQuery
四十九个javascript小知识实用技巧
2021/11/20 Javascript