При разработке проекта, чтобы реализовать функцию обмена данными между несколькими процессами PHP и разрешить клиентским соединениям совместно использовать состояние, необходимо открыть функцию общей памяти shmop. Если вы ожидаете столкнуться с этим требованием, лучше всего добавить опцию — с-shmop при компиляции PHP. Но при компиляции он не добавляется и может быть только перекомпилирован и настроен.
1. Найдите расширенный каталог в исходном пакете PHP и войдите в магазин
# cd /usr/local/src/php-7.1.10/ext/shmop/
2. Выполните phpize для создания конфигурации
# phpize
[[email protected] 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
3. Начните компиляцию, выполнив команды
# ./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/
4. Измените php.ini для открытия расширений
Путь, возвращаемый репликацией:/usr/локальный/php/lib/php/расширения/без отладки-не-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//Add this line of code, followed by shmop.so.
Перезапустить PHP