文档章节

Centos安装APC扩展和APCU扩展简记

暗夜在火星
 暗夜在火星
发布于 2017/04/14 00:39
字数 859
阅读 421
收藏 0

背景

最近为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, ...): 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

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

# /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

 

参考

linux下apc安装指南

 

© 著作权归作者所有

共有 人打赏支持
暗夜在火星

暗夜在火星

粉丝 167
博文 175
码字总数 325127
作品 1
广州
程序员
私信 提问
CentOS下yum安装PHP

美国时间2014年11月13日,PHP开发团队,在「PHP 5.6.3 is available|PHP: Hypertext Preprocessor」上公布了PHP5.6系的最新版本「PHP 5.6.3」。 在最新的版本5.6.3不仅修改了多个Bug,并且修...

Yomut
2016/07/20
40
0
Install Nginx/PHP-FPM on CentOS/RHEL

Install Nginx, PHP 5.5.15 and PHP-FPM on Fedora 20/19/18/17, CentOS 7/6.5/5.10, Red Hat (RHEL) 7/6.5/5.10 1. Change to root user. su 2. Install needed repositories CentOS 7/6.5/......

linuxjd
2014/08/17
0
0
在RHEL/CentOS 6.3/5.6和Fedora 17/12上安装APC

在RHEL/CentOS 6.3/5.6和Fedora 17/12上安装APC(可选的PHP缓存) APC(可选的PHP缓存)是一个免费,开源的PHP代码缓存。这个模块的主要目的是提供一个健壮的框架来缓存和优化PHP代码。 在L...

悠悠客
2013/06/29
0
0
Phabricator安装向导

安装向导 该文档包含获得以及运行Phabricator所需的最基本安装指引。 安装要求 Phabricator是一个LAMP应用套件,因此最基本的要求就是LAMP环境: Linux:Linux的不同发行版及变种是必需的。M...

悠悠客
2013/04/28
0
0
CentOS7 安装php5.6或7.0

CentOS7.0公布也有一段时间了,在这里简单介绍一下在CentOS7上安装php5.6的方法。 安装php5.6版本以后不再需要安装Zend Guard,而是用yum命令安装php-opcache及php-pecl-apcu就可以有效的提高...

liliangchun
2017/07/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

day11

architect刘源源
49分钟前
3
0
论学好Linux系统的超级重要性

不知道各位在日常的工作生活中有没有接触过“rm -rf /*”这个命令,因为这个命令搞出来的事情可还不少呢!前段时间就在一个群里看到了有个小伙子,老板让他去维护一下服务器,这小伙也不太懂...

Linux就该这么学
昨天
1
0
git 使用

1,首先在github配置好信息和仓库,然后在本地进行操作 git init git config user.name 'zhangwuer' git config user.email '56789053@qq.com' 2,与远程分支建立连接 git checkout -b test......

天王盖地虎626
昨天
3
0
git checkout 命令详解

在日常的git操作中,git checkout——检出,是我们的常用命令。最为常用的两种情形是创建分支和切换分支。 在下面的命令中,使用了一些简写,在这里说明一下: git st # git statusgit ci ...

shzwork
昨天
8
0
【Nginx】Nginx多级代理,获取客户端真实请求IP以及每级代理IP

Nginx多级代理,获取客户端真实请求IP以及每级代理IP 如图所示,每一级nginx里的location配置里需要加上对应的配置,最后一级nginx是直接到应用,测试时为了方便,直接用echo模块去测试,打印...

薛定谔的旺
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部