本文环境:
Mac OS X 10.8.5
Xcode 5.0

  Mac OS X升级到10.8.5之后,内置的Apache升级到2.2.24,PHP升级到了5.3.26。本文以此环境为基础。

  本文简介安装memcache、mcrypt、igbinary。

一、首先准备Xcode和autoconf。

  安装的过程需要Xcode的命令行工具,编译PHP扩展需要有autoconf。

  Xcode是苹果公司提供的免费开发工具,请从App Store中搜索安装。完成安装之后,请通过Xcode的菜单【Xcode】-【Preferences...】打开对话框并切换到【Downloads】页,下载Command Line Tools。

  autoconf请从如下地址下载:

http://ftp.gnu.org/gnu/autoconf/
提醒:
本文涉及的所有下载和编译安装,建议把源代码存放到路径不存在空格(和其他特殊符号)的位置,以避免执行make install时发生意外。

  解压并进入autoconf目录,依次执行如下命令:

./configure
make
sudo make install

二、安装memcache

  memcached是一套高性能的内存对象缓存系统。在PHP中,有两套扩展可以用来支持memcached。其中一套是原生的扩展,称为“memcache”,下面介绍的就是这个扩展。还有另外一个套扩展是基于libmemcached库的,功能更强一些。

  10.8的mac中,可以在/usr/bin/路径下找到memcached这个文件,/System/Library/LaunchDaemons/路径下还有个com.danga.memcached.plist文件。打开com.danga.memcached.plist文件,删除掉如下两行:

 <key>Disable</key>
<true/>

  保存文件之后重新启动,打开终端执行:

 #memcached的默认端口为11211
telnet 127.0.0.1
#stats命令显示memcached的各种状态信息
stats
#quit退出与memcached的连接
quit

  如果一切正常,开始安装memcache的PHP扩展。请从如下地址下载:

http://pecl.php.net/package/memcache

  解包下载的文件之后进入文件目录,请依次执行如下命令:

phpize
./configure
make
sudo make install

  如果看到如下结果:

Installing shared extensions:     /usr/lib/php/extensions/no-debug-non-zts-20090626/

  说明安装正常,接下去打开/etc/php.ini文件,添加如下行:

 extension=memcache.so

  重启apache之后,看一下phpinfo结果:

  

三、安装mcrypt

  Mcrypt是一个功能强大的加密算法扩展库,它持20多种加密算法和8种加密模式。Mac OS X中,需要先安装这个库然后再安装PHP扩展。

  首先是下载扩展库的源文件,下载地址在这里:

http://sourceforge.net/projects/mcrypt/files/Libmcrypt/2.5.8/

  下载到本地之后,解压缩,进入目录,请依次执行如下命令:

./configure --disable-posix-threads --enable-static
make
sudo make install

  安装好扩展库之后,请下载PHP的源代码。Mac OS X 10.8.5中的PHP是5.3.26版本的,下载地址如下(如果您的PHP版本不同,请自行下载相应版本的代码):

http://cn2.php.net/get/php-5.3.26.tar.bz2/from/a/mirror

  完成下载之后,请解包进入代码目录,再cd ext/mcrypt/,然后依次执行如下命令:

phpize
./configure
make
sudo make install

  正确完成安装之后,请编辑/etc/php.ini文件,加入如下配置行:

 extension=mcrypt.so

  很熟悉是不是?重启apache之后,再次用phpinfo进行检查:

  

四、安装igbinary

  用igbinary实现序列化和反序列化,效率更高,占用的字节数更少,性能远远高于PHP自带的序列化功能。有两个下载地址:

#PECL官方的地址,这里提供1..1版本(稳定版)下载
http://pecl.php.net/package/igbinary
#另外一个地址,提供1.1.2版本(开发版)下载
https://nodeload.github.com/phadej/igbinary/zip/master

  下载之后,依旧是很熟悉的路数:解包、进入目录,下列命令步骤:

phpize
./configure
make
sudo make install

  编辑/etc/php.ini添加如下配置行:

 extension=igbinary.so

  重启apache,检查一下效果:

  

  可以改动一下PHP的如下配置行:session.serialize_handler = php,修改成:

 session.serialize_handler = igbinary

  另外,推荐一篇关于igbinary性能测试的文章:

http://www.ooso.net/archives/538

  好了,就这些。

总结博客的过程,就是重新学习的过程。
感谢如下网友:
秦歌、yifangyou、Volcano
还有其他共享知识于网络的朋友

在Mac OS X中完善PHP环境:memcache、mcrypt、igbinary的更多相关文章

  1. 【转】Mac OS X 中 Zsh 下 PATH 环境变量的正确设置

    在 Mac OS X 中使用 zsh,环境变量 PATH 一不小心就会变得很紊乱,表现为自己设置的路径总是被放到系统路径之后,部分路径还会有重复.这是我们不太了解 zsh 启动时加载文件的顺序和 Ma ...

  2. Mac OS X 中一些常用的命令行技巧

    一.网络设置相关 1.网卡的物理地址的动态重置 出于某些需求,例如网络中的 IP 地址或网络帐号与网卡物理地址绑定,使得多个设备无法切换上网,可尝试临时更改物理地址.不过,系统偏好设置是不能修改网卡物 ...

  3. mac os 下搭建android开发环境

    mac os 下搭建android开发环境 周银辉 mac os 下搭建android环境比较方便, 如下几个步骤: 1,安装jdk 先搞清楚自己是否已经安装,在命令行下:java -version, ...

  4. 在Mac OS X中使用VIM开发STM32(2)

    本文原创于http://www.cnblogs.com/humaoxiao,非法转载者请自重! 在我先前的博文⎣在Mac OS X中使用VIM开发STM32(1)⎤中,我们安装完成了MACVIM,这一 ...

  5. 在Mac OS X中使用VIM开发STM32(1)

       本文原创于http://www.cnblogs.com/humaoxiao,非法转载者请自重!     在我先前的博文⎣在Mac OS X中搭建STM32开发环境⎤中,我们在Mac中DIY出了最 ...

  6. mac OS X下Java项目环境搭建+IntelliJ IDEA Jrebel插件安装与破解+Office 2016破解版安装

    一.mac OS X下Java项目环境搭建 因为某些原因新入手了台最新版的MacBook Pro,意味着今天要花一天时间安装各种软件以及项目环境搭建╮(╯▽╰)╭ 项目环境搭建步骤: 1.安装jdk ...

  7. Mac OS X中,有三种方式来实现启动项的配置

    Mac OS x 启动项设置 Mac OS X的启动原理: 1,mac固件激活,初始化硬件,加载BootX引导器. 2,BootX加载内核与内核扩展(kext). 3,内核启动launchd进程. 4 ...

  8. 在Mac OS X中配置Apache + PHP + MySQL

    在Mac OS X中配置Apache + PHP + MySQL Mac OS X 内置Apache 和 PHP,使用起来非常方便.本文以Mac OS X 10.6.3和为例.主要内容包括: 启动Ap ...

  9. 在 Mac OS X 中建立加密的 Zip 压缩 -- 让机密资料加上密码

    在 Mac OS X 中要压缩档案的話,基本上就用滑鼠点右鍵选「压缩...」就可以制作 Zip 格式的压缩档,很方便.但如果是机密的资料要透过 Email 等管道传送时,常常会需要建立加密的 Zip ...

随机推荐

  1. ansible学习系列2-ansible常用模块使用

    1. 查看支持的模块 [root@localhost ~]# ansible-doc -l 这里我们看下ansible的支持的模块个数 [root@localhost ~]# ansible-doc ...

  2. angr进阶(5)内存操作

    angr也可以将符号写在内存里,控制内存中的值,结合任意位置开始有奇效,但就是慢sym-write p = angr.Project('./issue', load_options={"au ...

  3. 域名注册域名解析域名绑定 dns服务器解析 域名记录的添加 记录类型含义@ www 访问域名请求过程

    创建一个web应用,简言之就是访问一个域名,可以到达一个地方,这个地方就是你存放供别人查看的文件的地方 就像一条绳,从这头拉一下,可以拉出来另一头的东西 主要有两个部分: 域名 虚拟主机(空间) 1. ...

  4. 不能ssh连接ubuntu linux 服务器 secureCRT不能ssh连接服务器 不能远程ssh连接虚拟机的ubuntu linux

    我是用的是secureCRT,远程连接我的虚拟机里面的ubuntu 直接报错,连接不上 1,先分别在windows上ipconfig和ubuntu上ifconfig下 互ping一下,是可以ping通 ...

  5. cocos creator主程入门教程(一)—— 初识creator

    五邑隐侠,本名关健昌,10年游戏生涯,现隐居五邑.本系列文章以TypeScript为介绍语言. 我们在cocos creator新建一个Hello TypeScript项目,都会有一个assets/S ...

  6. [争什么! 掺在一起做撒尿牛丸啊! 笨蛋]ASP.NET Core 2.0 + EF6 + Linux +MySql混搭

    好消息!特好消息!同时使用ASP.NET Core 2.0和.NET Framework类库还能运行在linux上的方法来啦! 是的,你没有看错!ASP.NET Core 2.0,.NET Frame ...

  7. 小tips:path的join和resolve的使用区别

    1.连接路径:path.join([path1][, path2][, ...]) path.join()方法可以连接任意多个路径字符串.要连接的多个路径可做为参数传入. path.join()方法在 ...

  8. 【20190415】JavaScript-事件流与stopPropagation()、stopImmediatePropagation()的误区解析

    这两天仔细看了一下MDN上关于事件流机制和相关方法的文档,发现有个很大的误区.过去我一直以为stopPropagation()就是用来阻止事件冒泡的,甚至很多博客和菜鸟教程上都是这样写的.但实际上文档 ...

  9. Android网页打开指定App

    一.只打开APP操作 通过用手机的浏览器(内置,第三方都可)访问一个网页,实现点击一个链接启动自己的应用,并传递数据. 首先在Mainifest文件里面对要启动的Activity添加一个过滤器. 网页 ...

  10. 微信小程序(五) 利用模板动态加载数据

    利用模板动态加载数据,其实是对上一节静态数据替换成动态数据: