Linux php7安装mongoDB和memcached扩展
pecl上的mongodb扩展有两个,都是官方出品的,一个叫mongo,一个是mongodb
前者已经被官方废弃,不再提供稳定的更新,官方推荐使用后者,并且后者是支持php7的。
Mongo 扩展官网: http://pecl.php.net/package/mongo (支持旧API,不推荐)
MongoDB 扩展官网:http://pecl.php.net/package/mongodb (支持新API,推荐)
PHP7 MongoDB API 官网:http://php.net/manual/en/book.mongodb.php (新API,支持PHP7,推荐)
PHP7 MongoDB API 接口使用,请参见米扑博客:PHP7 连接使用MongoDB API
在pecl上搜索mongodb即可找到,也可以通过pecl install mongodb
安装。
pecl install mongodb
mongo和mongodb的结构完全不同,使用方式也大相径庭
不过官方有个php适配包,可以让mongodb看上去和mongo使用体验近似:
mongo-php-library: https://github.com/mongodb/mongo-php-library/
pecl_http: http://pecl.php.net/package/pecl_http
Install the php_http
PHP extension on my CentOS server.
yum -y install php-pear
yum -y install php-raphf php-propro
pecl config-set php_ini /usr/local/php/etc/php.ini
pecl channel-update pecl.php.net
pecl install pecl_http
pecl install mongodb
在PHP.ini中加上:
extension=mongodb;
如果error:
openssl/evp.h: No such file or directory 说明需哟安装openssl
yum install -y openssl openssl-devel
解决 error: xslt-config not found
解决编译php扩展xsl时出现
error: xslt-config not found. Please reinstall the libxslt >= 1.1.0 distribution
的问题,只需要执行:
yum install libxslt-devel
CentOS 7 安装 PHP 7.0以及memcache和redis扩展
安装EPEL
EPEL 是 Extra Packages for Enterprise Linux 的缩写(EPEL),是用于 Fedora-based Red Hat Enterprise Linux (RHEL) 的一个高质量软件源,所以同时也适用于 CentOS 或者 Scientific Linux 等发行版。
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install epel-release
安装PHP 采用webtatic的编译版本
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yum install php70w php70w-devel php70w-bcmath php70w-fpm php70w-mbstring php70w-pdo php70w-soap php70w-mysql php70w-gd
安装 memcached for php7
git clone https://github.com/php-memcached-dev/php-memcached.git
cd php-memcached
git checkout php7
phpize
./configure --disable-memcached-sasl
make && make install
add extension=memcached.so to php.ini
安装 redis for php7
git clone https://github.com/phpredis/phpredis.git
cd phpredis
git checkout php7
phpize
./configure
make && make install
add extension=redis.so to php.ini
一,为什么要装memcached扩展
memcached的1.2.4及以上增加了CAS(Check and Set)协议,对于同一key的多进行程的并发处理问题。这种情况其实根数据库很像,如果同时有几个进程对同一个表的同一数据进行更新的话,那会不会打架呢,哈哈。数据库里面可以锁定整张表,也可以锁定表里面一 行的功能,其实memcached加入的CAS根这个差不多。
php的扩展memcache,不支持cas,所以我们要装memcached扩展,memcached扩展是基于libmemcached,所以要先安装libmemcached
二,查看memcahced的版本信息
telnet 127.0.0.1 12000
stats
你会看到有以下信息
STAT pid 15322
STAT uptime 1885
STAT time 1279455772
STAT version 1.2.8
STAT pointer_size 32
如果版本过低,考虑重新装一下
退出telnet ,ctrl + ] 然后在按q就行了。
三,安装所要软件
libmemcached 官网: https://launchpad.net/libmemcached/+download
memcached 官网: http://pecl.php.net/package/memcached
memcache 官网: http://pecl.php.net/package/memcache
mongodb 官网: http://pecl.php.net/package/mongodb (推荐,支持PHP7)
mongo 官网: http://pecl.php.net/package/mongo
redis 官网:http://pecl.php.net/package/redis
wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz
wget http://pecl.php.net/get/memcached-2.2.0.tgz
pecl 官方网站: http://pecl.php.net/package-stats.php (推荐)
memcached 官方网站: http://www.memcached.org
memcached 最新下载: http://www.memcached.org/files/memcached-1.4.34.tar.gz
四,安装libmemcached
tar zxvf libmemcached-1.0.18.tar.gz
cd libmemcached-1.0.18
./configure --prefix=/usr/local/libmemcached --with-memcached
make && make install
安装要注意的问题:
1、安装过程中不要忘了,--with-memcached,不然会提示你
checking for memcached... no
configure: error: "could not find memcached binary"
2、你的memcached是不是1.2.4以上的,如果不是会提示你
clients/ms_thread.o: In function `ms_setup_thread':
/home/zhangy/libmemcached-1.0.18/clients/ms_thread.c:225: undefined reference to `__sync_fetch_and_add_4'
clients/ms_thread.o:/home/zhangy/libmemcached-1.0.18/clients/ms_thread.c:196: more undefined references to `__sync_fetch_and_add_4' follow
collect2: ld returned 1 exit status
make[2]: *** [clients/memslap] Error 1
make[2]: Leaving directory `/home/zhangy/libmemcached-1.0.18'
解决办法是--disable-64bit CFLAGS="-O3 -march=i686",如果不用这个64位的long型数据,我想php扩展memcached,memcache也就没什么区别了,装memcached也就没什么意思了。
五,php的扩展memcached的安装
tar zxvf memcached-1.0.2.tar.gz
cd memcached-1.0.2
/usr/local/php/bin/phpize
./configure --enable-memcached --with-php-config=/usr/local/php/bin/php-config --with-libmemcached-dir=/usr/local/libmemcached
./configure --prefix=/usr/local/phpmemcached --with-memcached
make && make install
vim /usr/local/php/lib/php.ini
加上extension=memcached.so重起一下服务就可以了
安装扩展 memcached
cd /home/data/libmemcached-1.0.18
./configure --prefix=/usr/local/libmemcached --with-memcached
make && make install
cd /home/data/php-memcached-master
/usr/local/php/bin/phpize && ./configure --with-php-config=/usr/local/php/bin/php-config --with-libmemcached-dir=/usr/local/libmemcached/
make && make install
vim /usr/local/php/lib/php.ini
extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20151012/memcached.so # 末尾添加扩展
/etc/init.d/php-fpm restart
参考推荐:
PHP7 连接使用MongoDB API (推荐)
Struggling to install PHP pecl on CentOS
LNMP(CentOS+Nginx+Mysql+PHP)服务器环境配置 (推荐)
基于libmemcached,php扩展memcached的安装
版权所有: 本文系米扑博客原创、转载、摘录,或修订后发表,最后更新于 2017-12-13 16:33:58
侵权处理: 本个人博客,不盈利,若侵犯了您的作品权,请联系博主删除,莫恶意,索钱财,感谢!