前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >在Mac下使用MAMP Pro环境

在Mac下使用MAMP Pro环境

作者头像
wangxl
发布2018-03-07 15:31:42
2.5K0
发布2018-03-07 15:31:42
举报
文章被收录于专栏:PHP在线PHP在线

以前,我使用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扩展。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2015-06-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 php 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档