在Mac下使用MAMP Pro环境

以前,我使用Windows作为自己的工作系统,后来,改用Mac作为自己的主要工作系统了。

在Windows下,快速搭建*AMP环境,使用xampp或者WAMP之类的集成包,会一口气装好所有需要的软件,而在Mac下,相应的,做得比较好的是MAMP,我选用的是与之对应的收费版本MAMP Pro,总体差别不大。

你可能要说了,Mac自带Apache的啊,也自带PHP,为啥要装东西啊,原生的不好么?

嗯,很好的问题。

MAMP集成度更高一些,比如Mac就不提供MySQL,就很麻烦了,另外Apache的各种模块,也难保Mac自带的是哪个版本的,MAMP至少带有四个版本以上的PHP,可以随便切换,也可以根据项目制定,另外集成了自动化配置VirtualHost功能,这个极大地方便了环境搭建。

MAMP是一个沙盒,不像Mac自带的环境,散布在系统各处,主要指配置文件,二进制文件,如果你要配合安装一些模块,涉及到编译,安装等等,你就会把各种配置文件和二进制文件搞到系统深层目录里,多数目录都要sudo才能获得写权限,而你装进去的这些东西,可能永远没法执行可逆操作了,除非你清楚记得所有做过的变更。相应地MAMP是在一个App文件夹里,卸载的时候拖住删了就行了。

使用MAMP环境,可以将代码放在全系统的任何目录,配置的时候,只要点点鼠标即可,但是用系统自带,我看很多同事,更加倾向于都放到一个htdocs文件夹,这绝对不是必须的,只是都放在一起的话,会一目了然,可以管理你到底配置了多少VirtualHost,而MAMP环境里,不管你放在哪里,都会在hosts那栏列出来。

MAMP自动使用hosts文件模拟域名指向,配置VirtualHost的时候,同步自动完成,而用系统原生的话,你不得不使用IP地址访问,或者自己手动维护hosts文件,这太拙劣了。此外MAMP提供了DNS服务,我一般都用hosts,但是我想,DNS也一定有其用途,比如,进行手机调试的时候,你可以指向DNS服务,从而使手机能连接到你本地的电脑,做本地调试,完全自己搞,这是很困难的。

使用的时候,要注意一些事项,比如我经常犯的一个错误,我会把MAMP里带的PHP二进制和系统自带的二进制混着用。

在绝大多数情况下,这都没有任何问题,但是一些特例问题上,有着很大不同。

比如,通过PHP脚本连接MAMP提供的MySQL时候,如果用系统自带的PHP二进制,你会发现死也连不上MySQL,报错是找不到文件。会报错如“SQLSTATE[HY000] [2002] No such file or directory”,其实,MAMP自己提供的MySQL,一般在PHP里,都用localhost作为连接字符串,而这个时候,默认就会使用unix socket文件去连接MySQL,刚才也说了,Mac系统自己是没有安装MySQL的,所以,你指望自带的PHP知道去哪里找到unix socket文件,那根本不可能,因为MAMP提供的MySQL,其socket文件也在沙盒里,不是一般缺省的那个socket,所以,这里总是报找不到文件,这很诡异,一旦遇到,很难定位,我在同一个坑栽倒两次了。

解决方法,也无敌简单,就是给沙盒里地PHP二进制,做一个软链,放到/usr/local/bin下面,比如命名为php55,以后再执行需要连接数据库的脚本的时候,记得使用php55作为解释器来运行,就会顺畅。

另外,还有一个问题,也比较常见,就是MAMP这个软件包,竟然没有提供memcached扩展,还好,你去Google搜索,能搜到有人都编译好的版本,在GitHub上,直接下载对应的二进制文件就行了,拷贝到沙盒相应的PHP文件目录里。另外记得,这个扩展有依赖,需要用brew 安装memcached和libmemcached才能使用,没装的话,表现一直是apache启动不了,或者启动,还说没有memcached扩展。

原文发布于微信公众号 - php(phpdaily)

原文发表时间:2015-06-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏云计算教程系列

使用SmokePing监控你的服务器

SmokePing是一款监控网络状态和稳定性的开源软件(它是rrdtool的作者开发的),通过它可以监控到公司IDC的网络状况,如延时,丢包率,是否BGP多线等...

2585
来自专栏龙首琴剑庐

Manjaro安装配置

0. 安装 # 启动时选择第二项boot(non-free),Manjaro自带的驱动精灵会帮你安装好所需驱动,笔记本双显卡则会帮你安装bumblebee d...

5365
来自专栏区块链

Web安全常见漏洞修复建议

看各大发布漏洞的平台,发现众多挖洞大神精彩的漏洞发掘过程,但在修复建议或者修复方案处,给出千奇百怪神一般的回复,故而总结一下修复建议(才疏学浅不算太全敬请谅解,...

1996
来自专栏FreeBuf

Linux SSH密码暴力破解技术及攻防实战

对于Linux操作系统来说,一般通过VNC、Teamviewer和SSH等工具来进行远程管理,SSH是 Secure Shell的缩写,由IETF的网络小组(N...

42010
来自专栏张戈的专栏

HTTP加速器varnish安装小记(1)

上午共享的那个varnish 安装手册,个人看了下,有点不知所云,好吧~看来还是先安装玩玩! 苦逼公司服务器没法连外网,不能用什么 wget 或 yum 命令直...

2808
来自专栏企鹅号快讯

手把手教你搭建个人网站五:WordPress搬家&备份

建好基于WordPress的个人网站后,如果我们想整个搬到另一个服务器,应该怎么弄呢?为了预防不可预知情况的发生,我们又该如何备份网站信息呢? ? 备份Word...

3478
来自专栏北京马哥教育

为什么你的服务器总被入侵?SSH密码暴力破解实战

运维行业正在变革,推荐阅读:30万年薪Linux运维工程师成长魔法 对于Linux操作系统来说,一般通过VNC、Teamviewer和SSH等工具来进行远程管理...

2K7
来自专栏从零学习云计算

kubernetes学习记录(13)——网上集群基于CA签名安全设置的两种方式对比

在《kubernetes学习记录(9)——集群基于CA签名的安全设置》一文中,我是照着《Kubernetes权威指南》以及一些博客做了基于CA签名的安全设置。但...

1840
来自专栏张善友的专栏

创建安全的ASP.NET虚拟主机

随着基于.net平台的应用程序的数量级增加,提供.net空间的虚拟主机商也越来越多,但是有不少的虚拟主机提供商对.net环境的权限分配并不是非常的熟悉,从而导致...

20410
来自专栏TechBox

iOS App 安全测试一、数据存储安全二、 数据通信安全三、 URL protocol handler / IPC四、 UIWebView

1493

扫码关注云+社区