centos6下安装php7的memcached扩展
安装php7的memcached扩展 1.编译安装libmemcached-1.0.18 wget https://launchpadlibrarian.net/165454254/libmemcached-1.0.18.tar.gz tar -zxvf libmemcached-1.0.18.tar.gz cd libmemcached-1.0.18 ./configure --prefix=/usr/local/libmemcached --with-memcached make && make install 2. 安装php-memcached扩展 php使用memcache的扩展有两个,一个memcache,一个memcached,前者比较老,推荐使用第二个,我们这里以第二个为例: 在github上找到适用于php7的分支(https://github.com/php-memcached-dev/php-memcached/tree/php7),同样使用wget下载zip压缩包,解压缩,进入目录,依次执行下列命令(其中php-config和libmemcached目录根据具体情况设定,可以使用whereis或者find来查找 # 解压 cd php-memcached-php7 # 执行phpize会生成configure文件 /usr/local/php/bin/phpize # 执行预编译 ./configure --enable-memcached --with-php-config=/usr/local/php/bin/php-config --with-libmemcached-dir=/usr/local/libmemcached --disable-memcached-sasl make make install [root@szxxlfhtest02t:/usr/local/src/php-memcached-php7]# /usr/local/php/bin/phpize Configuring for: PHP Api Version: 20151012 Zend Module Api No: 20151012 Zend Extension Api No: 320151012 [root@szxxlfhtest02t:/usr/local/src/php-memcached-php7]# make install Libraries have been installed in: /usr/local/src/php-memcached-php7/modules If you ever happen to want to link against installed libraries in a given directory, LIBDIR, you must either use libtool, and specify the full pathname of the library, or use the `-LLIBDIR' flag during linking and do at least one of the following: - add LIBDIR to the `LD_LIBRARY_PATH' environment variable during execution - add LIBDIR to the `LD_RUN_PATH' environment variable during linking - use the `-Wl,--rpath -Wl,LIBDIR' linker flag - have your system administrator add LIBDIR to `/etc/ld.so.conf' See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages. ---------------------------------------------------------------------- Build complete. Don't forget to run 'make test'. Installing shared extensions: /usr/local/php-7.0.12_fpm/lib/php/extensions/no-debug-non-zts-20151012/ 修改php.ini的配置 加上:extension_dir="/usr/local/php7.1/lib/php/extensions/no-debug-non-zts-20160303/"(每个人的路径可能不一样) extension = "memcached.so 重启php-fpm 3. 修改php.ini文件 (php.ini文件具体位置可以通过phpinfo()函数来查看到),在php.ini文件之中加入下面这句: # vim /usr/local/php-7.0.12_fpm/lib/php.ini extension_dir="/usr/local/php-7.0.12_fpm/lib/php/extensions/no-debug-non-zts-20151012/" extension=memcached.so [root@szxxlfhtest02t:~]# php -m [PHP Modules] bz2 calendar Core ctype curl date dba dom exif fileinfo filter ftp gd gettext hash iconv json ldap libxml mbstring mcrypt memcache memcached 4.测试是否安装成功 [root@szxxlfhtest02t:/data/www/vhosts/cmstest.chinasoft.com/httpdocs]# cat mem.php <?php $mem = new Memcached(); //创建一个memcached对象 $mem->addServer('127.0.0.1',11211); //连接memcached $mem->set("key","test");//设置一个变量到内存中,名称是key 值是test $get_value = $mem->get('key'); //从内存中取出key的值 if($mem->getResultCode() == Memcached::RES_NOTFOUND) //如果该名称的变量没有设置 { echo 'not set!'; } else { echo $get_value; } *************************** [root@newcms:/data/www/cms/cmsx.chinasoft.com.wx/httpdocs/public]# cat /usr/local/nginx/conf/cms.d/cmsx.chinasoft.com.wx.conf server { listen 80; server_name cmsx.chinasoft.com.wx cmsx.chinasoft.com.wx.wx; access_log /data/www/logs/nginx_log/access/cmsx.chinasoft.com.wx_access.log main ; access_log on; error_log /data/www/logs/nginx_log/error/cmsx.chinasoft.com.wx_error.log ; root /data/www/cms/cmsx.chinasoft.com.wx/httpdocs/public/; index index.html index.shtml index.php ; include rewrite.d/cmsx.chinasoft.com.wx.conf ; error_page 404 403 /404.html; access_log on; #location / { # expires -1; # proxy_pass http://php_pool; # include proxy_params; #} #location / { # index index.php index.html index.htm; # try_files $uri $uri/ /index.php?$query_string; #} #location ~ \.php$ { # fastcgi_pass unix:/tmp/php-cgi.sock; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; # include fastcgi_params; #} location / { index index.php index.html index.htm; if (!-e $request_filename) { rewrite . /index.php last; } } location ~ \.php$ { fastcgi_pass unix:/tmp/php-cgi.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }