centos7 php apc扩展,Centos安装APC扩展和APCU扩展简记

搜索热词

背景

最近为PhalApi添加了APC的缓存功能,需要测试一下,但发现服务器环境缺少apcu扩展,所以需要安装一下。虽然安装扩展的方式都是比较相似的,通常都是在PHP的安装包源代码的 ./ext 目录下找到对应的扩展,然后安装配置即可。但问题是:1、ext的目录下没有apcu的源代码;2、网上找了一些帮助,好像不太适用。所以这里稍微整理了一下。

下载APC源代码

首先,去到:http://pecl.PHP.net/package/APC 下载源代码压缩包。

安装扩展

一开始,我下载了APC-3.1.9.tgz这个包,但按网上的教程,却出现以下错误:

[root ext]# cd APC-3.1.9

[root APC-3.1.9]# /usr/local/PHP/bin/PHPize ./configure --enable-apc --enable-apc-mmap --with-PHP-config=/usr/local/PHP/bin/PHP-config

Configuring for:

PHP Api Version: 20090626

Zend Module Api No: 20090626

Zend Extension Api No: 220090626

config.m4:180: warning: AC_CACHE_VAL(PHP_APC_GCC_ATOMICS,...): suspicIoUs cache-id,must contain _cv_ to be cached

../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...

../../lib/autoconf/general.m4:1994: AC_CACHE_CHECK is expanded from...

config.m4:180: the top level

config.m4:180: warning: AC_CACHE_VAL(PHP_APC_GCC_ATOMICS,must contain _cv_ to be cached

../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...

../../lib/autoconf/general.m4:1994: AC_CACHE_CHECK is expanded from...

config.m4:180: the top level

上面命令写错了,应该分为两行命令来操作,即:

# /usr/local/PHP/bin/PHPize

# ./configure --enable-apc --enable-apc-mmap --with-PHP-config=/usr/local/PHP/bin/PHP-config

重新下载了APC-3.1.6.tgz这个包,并换一种操作方式,就可以了。以下是相关的过程:

# wget http://pecl.PHP.net/get/APC-3.1.6.tgz

# tar -xzvf ./APC-3.1.6.tgz

# cd APC-3.1.6

[root@iZ94hkyutskZ APC-3.1.6]# ./configure --enable-apc --enable-apc-mmap --with-PHP-config=/usr/local/PHP/bin/PHP-config

......

creating libtool

appending configuration tag "CXX" to libtool

configure: creating ./config.status

config.status: creating config.h

# make

......

Build complete.

Don't forget to run 'make test'.

# make install

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

到这里,扩展就生成好了。

PHP.ini的配置

接下来就是配置:

# PHP --ini

# vim /usr/local/PHP/lib/PHP.ini

添加以下配置:

extension=apc.so

apc.enabled = 1

apc.cache_by_default = on

apc.shm_segments = 1

apc.shm_size = 32M

apc.ttl = 600

apc.user_ttl = 600

apc.num_files_hint = 0

apc.write_lock = On

PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/PHP/modules/apc.so' - /usr/lib/PHP/modules/apc.so: cannot open shared object file: No such file or directory in Unknown on line 0

则要把上面的扩展复制到对应的位置:

cp /usr/local/PHP/lib/PHP/extensions/no-debug-non-zts-20090626/apc.so /usr/lib/PHP/modules/apc.so

最后,可以这样看到APC扩展已安装成功。

# PHP -m | grep apc

apc

注意:PHP-fpm的配置

如果PHP-fpm使用的是另外的配置,则也要同步修改:

# vim /usr/local/PHP/etc/PHP.ini

把上面的配置同步添加到这个文件。然后重启PHP即可。

再进一步,安装APCU扩展

和APC类似,下载地址为:http://pecl.PHP.net/package/APCu

但下了几个包,发现和APC-3.1.6.tgz这个包,能兼容不出错的,试了一下,可以是:apcu-4.0.0.tgz 这个包。

依然是下面几步操作:

1084 wget http://pecl.PHP.net/get/apcu-4.0.0.tgz

1085 cd apcu-4.0.0.tgz

1086 tar -xzvf ./apcu-4.0.0.tgz

1087 cd apcu-4.0.0

1088 /usr/local/PHP/bin/PHPize

1089 ./configure --with-PHP-config=/usr/local/PHP/bin/PHP-config

1090 make

1091 make install

1092 history

接下来,继续是配置重启即可,这里不再赘述。

但发现,添加了以下配置后:

extension=apcu.so

会出现这样的警告:

# PHP -m

PHP Warning: Module 'apc' already loaded in Unknown on line 0

Warning: Module 'apc' already loaded in Unknown on line 0

最终,去掉apc.so即可。而且官方好像也不推荐使用apc了。最后配置如下:

;extension=apc.so

extension=apcu.so

apc.enabled = 1

apc.cache_by_default = on

apc.shm_segments = 1

apc.shm_size = 32M

apc.ttl = 600

apc.user_ttl = 600

apc.num_files_hint = 0

apc.write_lock = On

参考

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值