MAC XAMPP 配置memcachd 环境

因为项目需要(为什么我每次都这么说)!使用YII1.x的框架,并且使用了memcache环境。本地开发和调试的时候为了能保证与线上环境差异不大,因此我并未将memcache改为filecache。

在整个安装的过程中也遇到了各种坑。尤其是MAC环境中,根据搜索总结了一下这次安装的过程和我成功的一些记录,尽可能将步骤简化,当大家来看的时候只需要Ctrl+C 和 Crtl+V

先说一下我的环境和版本:
MAC 10.10.5 Yosemite
XAMPP php5.6.3
php memcache扩展 2.2.7
memcached 1.4.34

首先一点无需过于关注 memcached 的版本,因为这个和PHP环境无关,无非是端口通讯而已。
其次不要使用MAC默认的PHP环境,具体原因不明(至少包括我在内很多人都没成功配置过)

第一步,安装 memcached 服务

在MAC下就不用这编译哪编译了,直接上brew

  1. $ brew install memcached

等待安装和编译完成后可以通过 -V 来判断服务是否成功安装

  1. $memcached -V

成功出现(请无视版本号):

  1. memcached 1.4.34

确定服务安装成功后,直接输入一下命令:

  1. $memcached -d

此时memcached 会以默认参数来运行端口号为 11211

具体memcached 的参数和命令我就不细说了,具体请参考:
http://blog.sina.com.cn/s/blog_6145ed810102vqu6.html

第二步、给PHP安装memecache的扩展

这一步骤需要留意一下扩展的版本号,php memcache扩展没有对PHP版本有强制要求(估计),因此如果你发现扩展安装不成功,或者引起PHP报错什么的可以考虑尝试一下其他版本。我就是这么试出来的,因此在这里给大家提个醒。

同时

先去网站上下载PHP MEMECACHE的源码。

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

我下载的是 2.2.7 之前试了3.0.8扩展跑起来了,但是程序执行的时候各种报错,因此大家遇到这种情况后可以尝试用不同的版本。

在初始化的时候需要用到phpize.因为我们使用的环境时XAMPP环境,不能直接执行phpize,直接执行就会跑到系统自带的环境中去,因此需要手动指定phpize路径(MAC 统一命令)

注意:整个编译过程无需 sudo 只有最后一步骤 make install的时候需要sudo

进如php memecache 的源码文件夹中

  1. /Applications/XAMPP/xamppfiles/bin/phpize

执行后就会出现类似如下提示

Configuring for:
PHP Api Version: 20131106
Zend Module Api No: 20131226
Zend Extension Api No: 220131226

然后开始配置,同时要指定php-config路径,不能让它自己去找(很多人也栽在这个坑里了),命令如下:

  1. ./configure --with-php-config=/Applications/XAMPP/xamppfiles/bin/php-config


checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for a sed that does not truncate output... /usr/bin/sed
checking for cc... cc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
......此处忽略各种配置信息提示

完成后进行编译和安装的命令,如下:

  1. make && sudo make install

成功后系统会提示编号的模块安装的路径(系统会自动配置到XAMMP的环境目录中)


Installing shared extensions: /Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20131226/

配置PHP.INI文件

  1. sudo vi  /Applications/XAMPP/etc/php.ini

在文件中随便找一个你喜欢的位置,输入:

  1. extension=memcache.so

注意:很多人写的教材这里都是一串路径,其实没必要,因为XAMPP的环境已经将根路径配置好了,我们只需要些一个模块名称即可

完成后重启Apache 服务,memcache就可以使用了。

具体 扩展的安装也可以参考:

http://blog.csdn.net/peigong_dh/article/details/28901275

我参考的都是些老文章。

补充一下,我之前安装PHP memcache扩展 308的时候出现这个错误:

  1. dyld: lazy symbol binding failed: Symbol not found: _mmc_queue_pop
  2.   Referenced from: /Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20131226/memcache.so
  3.   Expected in: flat namespace
  4.  
  5. dyld: Symbol not found: _mmc_queue_pop
  6.   Referenced from: /Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20131226/memcache.so
  7.   Expected in: flat namespace
  8.  
  9. dyld: lazy symbol binding failed: Symbol not found: _mmc_queue_pop
  10.   Referenced from: /Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20131226/memcache.so
  11.   Expected in: flat namespace
  12.  
  13. dyld: Symbol not found: _mmc_queue_pop
  14.   Referenced from: /Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20131226/memcache.so
  15.   Expected in: flat namespace

导致Yii运行不成功也不报错,后面大概看了一下这篇文章的说明:

https://github.com/liip/php-osx/issues/39

最后一句评论大意应该是推荐使用稳定版本,我因此换成 2.2.7 后就好了



发表评论?

1 条评论。

  1. 啥都懂啊!

发表评论


注意 - 你可以用以下 HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

无觅相关文章插件,快速提升流量