在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 条评论
登录 后参与评论

相关文章

来自专栏生信技能树

R包终极解决方案

写在前面: 在如何通过Google来使用ggplot2可视化这篇文章中,我们曾经介绍过R语言在生物信息学中的重要性。 这篇文章也激发了很多小伙伴学习的热情。学习...

3067
来自专栏liulun

kotlin web开发教程【一】从零搭建kotlin与spring boot开发环境

IDEA中文输入法的智能提示框不会跟随光标的问题 我用的开发工具是IDEA image.png 这个版本的IDEA有一个问题; 就是中文输入法的智能提示框不...

2806
来自专栏企鹅号快讯

Redcore Linux 1801 Beta 发布,基于Gentoo

Ghiunhan Mamut已经宣布了Redcore Linux的新开发版本,这是基于Gentoo的面向桌面的发行版。该版本包括许多新的软件包,新的艺术作品,并...

1837
来自专栏鸡蛋君

ShadowsocksR客户端使用方法(小白向)

1142
来自专栏FreeBuf

Kali 2.0 安装与使用指南

关于kali使用前的一些配置,网上有很多版本,但是几乎都很雷同,或者是不全,或者是根本就没有测试过,或者是有的方法是错的(换句话说是版本变化的差异),因此让很多...

4405
来自专栏梦里茶室

Ubuntu安装与初始配置

适用于Ubuntu版本 14.04/16.04LTS 64位 先上图 ? 双系统安装 划分空闲磁盘,U盘安装ubuntu 重点看安装ubuntu时的磁盘分区...

1959
来自专栏用户2442861的专栏

使用IntelliJ IDEA开发SpringMVC网站(一)开发环境

访问GitHub下载最新源码:https://github.com/gaussic/SpringMVCDemo

411
来自专栏AI星球

机器学习程序猿在Linux猩球的生存指南

一个小程序猿,在一场飞行意外中,坠落到Linux猩球,与家乡Win猩球/Mac猩球的绚丽多彩不同的是:Linux猩球大部分时间都是处于黑暗之中[命令行/Shel...

494
来自专栏DeveWork

WordPress重定向作者归档链接到“关于”页面

默认的情况下,当有人点击你文章的作者名称的时候,会转到一个如 http://域名/author/名称 的 url 链接。如果对于一个多作者站点来说,这个功能非常...

1925
来自专栏企鹅号快讯

如何在 Linux 上安装友好的交互式 shell:Fish

Fish 有着很多重要的功能,比如自动建议、语法高亮、可搜索的历史记录(像在 bash 中 CTRL+r)、智能搜索功能、极好的 VGA 颜色支持、基于 web...

1947

扫描关注云+社区