给PHP开启shmop扩展实现共享内存

Posted 路漫漫其修远兮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了给PHP开启shmop扩展实现共享内存相关的知识,希望对你有一定的参考价值。

在项目开发中,想要实现php多个进程之间共享数据的功能,让客户端连接能够共享一个状态,需要开启共享内存函数shmop。如果预期考虑会遇到这方面需求,那么最好在编译PHP的时候添加--with-shmop选项。但是编译的时候没有添加,只能在重新编译配置了。

一、找到php源码包里的扩展目录,进入shmop

# cd /usr/local/src/php-7.1.10/ext/shmop/

二、执行phpize,生成配置

# phpize
[root@bogon shmop]# ls
acinclude.m4    build         config.h.in  config.nice    configure     CREDITS     libtool    Makefile.fragments  missing        package2.xml  README         shmop.la
aclocal.m4      config.guess  config.log   config.status  configure.in  include     ltmain.sh  Makefile.global     mkinstalldirs  package.xml   run-tests.php  shmop.lo
autom4te.cache  config.h      config.m4    config.sub     config.w32    install-sh  Makefile   Makefile.objects    modules        php_shmop.h   shmop.c        tests

三、执行命令开始编译

# ./configure --with-php-config=/usr/local/php/bin/php-config
# make && make install
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/lib/php/extensions/no-debug-non-zts-20160303/

四、修改php.ini开启扩展

复制返回的那行路径:/usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/

# vim /usr/local/php/etc/php.ini
;extension=php_pdo_sqlite.dll
;extension=php_pgsql.dll
extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/shmop.so   //添加此行代码,后面跟上shmop.so

重启php

 

以上是关于给PHP开启shmop扩展实现共享内存的主要内容,如果未能解决你的问题,请参考以下文章

PHP共享内存段实现,使用shmop函数实现内存共享

shmop / PHP 共享内存有多可靠?

PHP进程通信基础——shmop sem系列函数使用

php操作共享内存shmop类及简单使用测试(代码)

PHP共享内存的应用shmop系列

在 PHP 中使用共享内存