centos的php7怎么安装memcached扩展
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了centos的php7怎么安装memcached扩展相关的知识,希望对你有一定的参考价值。
参考技术A 最近试了一下php7,在编译和支持mysql上都遇到一些问题,相信不少同学也同样遇到,所以在这里聊一下这个过程。简单来讲编译PHP7只需要3步: 1、./buildconf --force 2、./configure 3、make && make install 1、3步,都没啥好管的,configure是编译的关键,涉及到PHP对一些库的支持,这里我们使用最小的支持,包括MySQL: curl gd fpm mysqlnd 之所以把curl和gd拿来说,目的是要搞清楚,这些三方库在编译PHP之前得安装好,可以直接使用yum安装在默认位置,也可以编译安装到指定位置,yum安装后,编译时不用指定库的安装位置,关于安装这些库,可以搜索一下有很多。下面看看基本的configure ./configure --prefix=/apps/php/php7.0 --enable-mbstring --with-curl --with-gd --with-config-file-path=/apps/php/php7.0/etc/ -- enable-fpm --enable-mysqlnd --with-pdo-mysql=mysqlnd PHP-FPM 关于fpm,相信不用多说,用它来支持PHP是一个比较好的选择,PHP5.3.3开始就已经内置了php-fpm,所以PHP7里当然也有,只需要--enable-fpm一下就可以了 php-fpm参数: --start 启动 --stop 强制终止 --quit 平滑终止 --restart 重启 --reload 重新平滑加载php的php.ini --logrotate 重新启用log文件 MySQL支持 重点讲一下这个,因为在它上面花了一点时间,不知道从哪一版本开始,PHP不在希望使用mysql的库来支持mysql的连接,启用了mysqlnd来支持,听说比libmysql要快很多,PHP5.x还可以使用libmysql,PHP7貌似已经取消了支持,编译都没有了--with-mysql参数,只支持--with-mysqli和--with-pdo-mysql,可以通过查看configure的参数来知道: ./configure -help grep mysql 可以看到,PHP希望使用mysqlnd来支持MySQL,所以参数可以这样写: --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd mysqlnd是不需要mysql支持的,所以不用先安装好mysql一样可以编译通过,启动php-fpm,查看一下phpinfo,能看到mysqlnd和pdo_mysql表示php已经可以支持mysql了(这里用的是pdo,mysqli同理) 几个问题 编译问题:cc: Internal error: Killed (program cc1) 这个问题是第一次遇到,原来是我的阿里云服务器关掉了swap,内存不够用,就报了这个错。 解决办法很简单,configure时加上--disable-fileinfo参数就可以了。 PHP报找不到mysql服务 正如它所说,确实没找到,看看phpinfo中pdo_mysql.default_socket项 mysql.sock在哪里,再看一下mysql.sock的真正位置,使用命令:ps -efgrep mysql查看: 明显不在一个位置上,我的正确位置是:/var/lib/mysql/mysql.sock 所以,修改一下php.ini,找到pdo_mysql.default_socket,改为你的实际位置,重启一下php-fpm,很不幸,虽然php.ini有这个配置,修改后,竟然不行,最好是编译的时候,指定mysql.socket的位置: --with-mysql-sock=/var/lib/mysql/mysql.sock 如果还不行,可以到/tmp目录下建立一个mysql.sock的软链接: ln -s /var/lib/mysql/mysql.sock mysql.sock 再重启一次php-fpm,相信已经正常运行了。如果需要PHP支持的库更多,可以再次编译,在configure时把需要的支持加上,就是--with-xxx这中,记得如果是三方的,要先安装这些库才行哦。CentOS 6.6 安装 PHP Memcached 扩展
PHP 的 Memcached 扩展使用了 libmemcached 库提供的 api 与 memcached 服务端进行交互。它同样提供了一个 session 处理器(memcached)。
PHP 的 Memcached 扩展支持 getMulti,setMulti 等方法,而 Memcache 扩展则不支持;
在安装 Memcached 扩展的时候需要先安装 libmemcached,libmemcached 是 Memcached 的 C 客户端,它具有的优点是低内存,线程安全等特点,在高并发下,稳定性果断提高。
首先安装 libmemcached 1.0.18
进入 /usr/local/src ,下载源码包:
[[email protected] src]# wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz
解压:
[[email protected] src]# tar -zxvf libmemcached-1.0.18.tar.gz
进入解压后文件夹:
[[email protected] libmemcached-1.0.18]# cd libmemcached-1.0.18
配置:
[[email protected] libmemcached-1.0.18]# ./configure --prefix=/usr/local/libmemcached --with-memcached
编译和安装:
[[email protected] libmemcached-1.0.18]# make && make install
PHP 的 Memcached 2.2.0 扩展的安装
进入 /usr/lcoal/src ,下载扩展的源码包:
[[email protected] src]# wget https://launchpad.net/libmemcached/+download/memcached-2.2.0.tgz
解压:
[[email protected] src]# tar -zxvf memcached-2.2.0.tgz
进入解压后目录:
[[email protected] src]# cd memcached-2.2.0
用 phpize 给 PHP 动态添加扩展:
[[email protected] memcached-2.2.0]# /usr/local/php/bin/phpize
配置:
[[email protected] memcached-2.2.0]#./configure --with-memcached -with-php-config=/usr/local/php/bin/php-config --with-libmemcached-dir=/usr/local/libmemcached --enable-memcached
如果报错:
configure: error: no, sasl.h is not available. Run configure with --disable-memcached-sasl to disable this check
那么配置改为:
[[email protected] memcached-2.2.0]# ./configure --with-memcached -with-php-config=/usr/local/php/bin/php-config --with-libmemcached-dir=/usr/local/libmemcached --enable-memcached --disable-memcached-sasl
编译和安装:
[[email protected] memcached-2.2.0]# make && make install
安装完成:
这时会生成一个 memcached.so 文件:
/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/
打开 php.ini 文件,添加一条"extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/memcached.so"
重启 LNMP。
访问 phpinfo:
参考:
Linux基于libmemcached,php扩展memcached的安装
以上是关于centos的php7怎么安装memcached扩展的主要内容,如果未能解决你的问题,请参考以下文章