题外话:前几天,终于以原价一半的价格,将我那台15版mbp在bbs上卖了出去。之所以用了“终于”这个词儿,是我一直迟迟没有下定决心卖掉它,可眼瞅着再不卖掉,又要掉价,况且我的新电脑,也终于下来了。

话说这个mbp,我还真没用多少,原因是刚买完没多久,公司电脑就下来了,加上当年各种软件都缺少mac版,用起来各种不顺手,后来也就搁置了。不过,最近发现,时隔几年,现在各种软件已经出了mac版,加之原生的linux系统,用起来还是挺爽的。

拿到新mbp,第一件事就是搭环境,话说最新版的macOS10.14系统已经内置好了apache、php7.16、git,真不愧是为广大开发们准备的本本啊。
不过为了更顺手,我没有启用自带的apache,而是安装了nginx,并且为了尝鲜,安装了最新版的php7.3+mysql8.0,事实证明,在尝鲜的同时,也要fix这些最新版带来的bug or 兼容。
在使用git时,遇到了点小坑,在咨询身边一圈儿及度娘无果的情况下,只好亲自操刀,将其fix掉。

1.先说php+nginx+mysql环境搭建,发现再也没有比这篇文章写的更全面的了,我就不再累述,直接放url:
Mac OS X 系统自带的 php-fpm 配置和 nginx、mysql 的安装
http://lzw.me/a/mac-osx-php-fpm-nginx-mysql.html
Mac brew安装redis
https://www.cnblogs.com/cloudshadow/p/mac_brew_install_redis.html
其间爬坑:
MAC下终端走代理的几种方法(比如公司内网环境下需要配置)
https://www.jianshu.com/p/30ffeff2ce53
访问本地php文件一直报404 file not found错误(已解决)
https://blog.csdn.net/u013957017/article/details/79819877
Mac自带PHP启动php-fpm问题解决
https://blog.csdn.net/zrainload/article/details/78962062?tdsourcetag=s_pcqq_aiomsg
mac用brew安装mysql,设置初始密码
https://www.jianshu.com/p/3996f6a2fa45?tdsourcetag=s_pcqq_aiomsg
mysql 8.0以上 新版本账号密码策略修改和密码修改
https://www.cnblogs.com/hellozg/p/9333052.html?tdsourcetag=s_pcqq_aiomsg
nginx环境配置--**拒绝了我们的连接请求
https://blog.csdn.net/Kano_W/article/details/79532004?tdsourcetag=s_pcqq_aiomsg

2.关于php7.3+mysql8.0兼容
php7.3 bug:Errors Installing Composer on macOS (JIT compilation Failed)
https://stackoverflow.com/questions/53690624/errors-installing-composer-on-macos-jit-compilation-failed?tdsourcetag=s_pcqq_aiomsg
mysql8.0之larave5.5l兼容:Laravel NO_AUTO_CREATE_USER 错误
https://blog.csdn.net/Dreamweaver9_0/article/details/81458307
遇到 MySQL 8.0.11 的一些坑
https://laravel-china.org/articles/10736/some-craters-in-mysql-8011
另外,mysql8.0强制表必须有主键,所以对于没有主键的表,要先建立主键。

3.关于启动php+nginx+mysql+redis
第一种,可以像第一篇文章中说的那样,将这些功能加入到开机启动命令里。
我选择了第二种,也就是将这些命令写成一个shell脚本,这样不必每次开机都启动这些,在需要启动时,执行一下sh就好了。
通过shell脚本启动Nginx、Mysql、PHP服务
http://www.findme.wang/blog/detail/id/237.html
shell 自动重启nginx php shell脚本
https://blog.csdn.net/u010098331/article/details/50855983?utm_source=blogxgwz3

4.关于git
说起git,还真是一波三折,前边说过,mac已经自带了git,简单配置下,就可以pull下来代码,可是在commit的时候,一直提示未配置name和email,配置时,又提示没有.gitconfig权限,在分别问了度娘、身边小伙伴、IT gg依然无果后,惆怅了半天,忽然灵机一动:这不是个软链接嘛,我把软链接删除试试,苍天啊,果然删除后可以了!后来又一想,这不一直提示文件夹不存在嘛,我在home(~)目录下建立一个叫dotfiles的文件夹试试,果然,这一招也管用!原来,mac下虽然已经加好了各种.配置文件的dotfiles目录软链接,却没有这个文件夹,所以一直无法配置.文件!

➜ php_proj git:(dev_20181107_exam) ✗ git config --global user.name "zhangsan"
error: 不能锁定配置文件 /Users/zhangsan/.gitconfig: No such file or directory
➜ ls -la ~
lrwxr-xr-x 1 zhangsan staff 19 12 21 22:35 .gitconfig -> dotfiles/.gitconfig

5.其它工具:phpstorm、TextWrangler、navicat、sourceTree、laravel、dotfiles、php-version
mac下PHPStorm2018.2破解教程
https://blog.csdn.net/wm9028/article/details/82700221
另外,mac下没有notepad++,推荐另外一款文本编辑器:TextWrangler
Mac 下 MySQL 5.7 连接 navicat 中文乱码问题终极解决方案
https://blog.csdn.net/chenyubo1996/article/details/52040487
SourceTree - A free Git & Mercurial client for Windows or Mac
https://www.sourcetreeapp.com/
Laravel 的开发环境 Valet
https://laravel-china.org/docs/laravel/5.5/valet/1286
Mac下安装Laravel
https://www.jianshu.com/p/5b0718f1fe93
dotfiles新手教程
https://www.jianshu.com/p/7UJapk
dotfiles入门
https://www.jianshu.com/p/b88435465d23
mac下使用php-version快速切换php版本
https://blog.csdn.net/tiansidehao/article/details/78982164

6. 后记:
a. 考虑将此安装过程打包成可一键安装的shell脚本 or docker环境
b. brew安装的php7.3中,已自带了GD库的freetype扩展,可以用来生成水印

7. 感谢小伙伴推荐,发现已经有现成的php docker环境啦——Laradock
[ Laravel 5.5 文档 ] 快速入门 —— 使用 Laradock 搭建基于 Docker 的 PHP 开发环境
https://laravelacademy.org/post/7691.html
Laradock配置安装踩坑
https://blog.csdn.net/f2130793/article/details/82179716

mac开发环境爬坑记(搭建php+nginx+mysql+redis+laravel+git+phpstorm)的更多相关文章

  1. MAC开发环境安装

    MAC开发环境安装 安装sancha cmd: 安装: https://www.sencha.com/products/extjs/cmd-download/ cmd运行 $ open .bash_p ...

  2. JAVA学习(一):Java介绍及其平台、开发环境的配置与搭建

    Java介绍及其平台.开发环境的配置与搭建 1.Java的介绍 Java是一种面向对象的编程语言,具有跨平台.可移植.分布式.简单.可扩展等诸多特性.Java能够进行桌面应用.Web应用.分布式系统及 ...

  3. Python For Mac 开发环境安装 以及问题记录

    Python For Mac 开发环境安装记录 把自己安装的过程记录一下,亲测可用 1.Python3环境安装(转载http://www.cnblogs.com/meng1314-shuai/p/90 ...

  4. 阿里云服务器部署php的laravel项目,在阿里云买ECS 搭建 Linux+Nginx+Mysql+PHP环境的

    在阿里云买ECS的时候选择自己习惯的镜像系统,我一般都是使用Linux Ubuntu,所以,以下的配置都是在Ubuntu 14.04稳定支持版的环境中搭建Linux+Nginx+Mysql+PHP环境 ...

  5. [Linux] Ubuntu Server 12.04 LTS 平台上搭建WordPress(Nginx+MySql+PHP) Part II

    接着上一节继续搭建我们的LNMP平台,接下来我们安装PHP相关的服务 sudo apt-get install php5-cli php5-cgi php5-fpm php5-mcrypt php5- ...

  6. [Linux] Ubuntu Server 12.04 LTS 平台上搭建WordPress(Nginx+MySQL+PHP) Part IV

    接下来我们去下载 WorePress 用最新的 3.7.1 下载地址是:http://cn.wordpress.org/wordpress-3.7.1-zh_CN.zip 我们先建立一个文件夹 /va ...

  7. react-native —— 在Mac上配置React Native Android开发环境排坑总结

    配置React Native Android开发环境总结 1.卸载Android Studio,在终端(terminal)执行以下命令: rm -Rf /Applications/Android\ S ...

  8. 1.OpenGL mac开发环境搭建记录

    1.安装GLEW 和GLFW,转摘至:https://www.cnblogs.com/pretty-guy/p/11357793.html 2.开始测试,整个工程报错,关键信息如下: code sig ...

  9. 分享下mac安装xamarin跨平台开发环境的坑

    之前在vs2015上安装好了xamarin环境,考虑到调试IOS仍然需要mac机,昨天决定直接在mac上安装xamarin. 安装完所有的效果如上图,此时已经可以创建安卓和IOS环境. 我安装过程中, ...

随机推荐

  1. oracle获取时间毫秒数

    select (sysdate-to_date('1970-01-01','yyyy-mm-dd')-8/24)*24*60*60*1000-1* 60 * 60 * 1000  millisecon ...

  2. <转>windows下编译lua源码

    因为之前一直使用 lua for windows 来搭建lua的使用环境,但是最新的 lua for windows 还没有lua5.2,我又想用这个版本的lua,所以被逼无奈只能自己编一下lua源码 ...

  3. Atitit.  Js 冒泡事件阻止 事件捕获   事件传递  事件代理

    Atitit.  Js 冒泡事件阻止 事件捕获   事件传递  事件代理   1. 事件冒泡1 2. 事件捕获1 3. 同时支持了事件捕获阶段和事件冒泡阶段ddEventListener的第三个参数1 ...

  4. UML类图详解_泛化关系

    泛化其实就是继承关系,还是比较简单的,那么我们就把之前有些问题的博客UML类图重新来实现一次. 依旧是这个图 下面我们来看一个例子 Account.h #include <cstdlib> ...

  5. __attribute__系列之cleanup

    cleanup属性:当变量离开它的作用域时,设置的cleanup_function函数将被调用. cleanup (cleanup_function) The cleanup attribute ru ...

  6. D. Powerful array 离线+莫队算法 给定n个数,m次查询;每次查询[l,r]的权值; 权值计算方法:区间某个数x的个数cnt,那么贡献为cnt*cnt*x; 所有贡献和即为该区间的值;

    D. Powerful array time limit per test seconds memory limit per test megabytes input standard input o ...

  7. 以css为例谈设计模式

    什么是设计模式? 曾有人调侃,设计模式是工程师用于跟别人显摆的,显得高大上:也曾有人这么说,不是设计模式没用,是你还没有到能懂它,会用它的时候. 先来看一下比较官方的解释:"设计模式(Des ...

  8. Java并发计数器探秘

    前言 一提到线程安全的并发计数器,AtomicLong 必然是第一个被联想到的工具.Atomic* 一系列的原子类以及它们背后的 CAS 无锁算法,常常是高性能,高并发的代名词.本文将会阐释,在并发场 ...

  9. Eclipse 运行程序

    运行 Java 程序 我们可以在 Package Explorer 视图 可以在 Package Explorer 视图中快速运行 Java 程序. Package Explorer 视图: 鼠标右击 ...

  10. xilinx 赛灵思fpga verilog hdl 教程

    http://www.eefocus.com/article/08-03/37231s.html http://wenku.baidu.com/link?url=5mdkMmm4BGGi7gRdgSk ...