skip to Main Content

I cannot seem to access any shared memory functions.

I’m running PHP7.1, provisioned using Easy Apache 4.

From what I can make of the documentation shmop should just be there by default. I don’t see any specific extension options in Easy Apache that seem relevant to shared memory.

Here’s the Configure Command as shown by phpinfo()m which appears to include the required –enable-shmop

'./configure' '--build=x86_64-redhat-linux-gnu' '--host=x86_64-redhat-linux-gnu' '--target=x86_64-redhat-linux-gnu' '--program-prefix=' '--prefix=/opt/cpanel/ea-php71/root/usr' '--exec-prefix=/opt/cpanel/ea-php71/root/usr' '--bindir=/opt/cpanel/ea-php71/root/usr/bin' '--sbindir=/opt/cpanel/ea-php71/root/usr/sbin' '--sysconfdir=/opt/cpanel/ea-php71/root/etc' '--datadir=/opt/cpanel/ea-php71/root/usr/share' '--includedir=/opt/cpanel/ea-php71/root/usr/include' '--libdir=/opt/cpanel/ea-php71/root/usr/lib64' '--libexecdir=/opt/cpanel/ea-php71/root/usr/libexec' '--localstatedir=/opt/cpanel/ea-php71/root/usr/var' '--sharedstatedir=/opt/cpanel/ea-php71/root/usr/com' '--mandir=/opt/cpanel/ea-php71/root/usr/share/man' '--infodir=/opt/cpanel/ea-php71/root/usr/share/info' '--cache-file=../config.cache' '--with-libdir=lib64' '--with-config-file-path=/opt/cpanel/ea-php71/root/etc' '--with-config-file-scan-dir=/opt/cpanel/ea-php71/root/etc/php.d' '--disable-debug' '--with-pic' '--without-pear' '--with-bz2' '--with-freetype-dir=/usr' '--with-png-dir=/usr' '--with-xpm-dir=/usr' '--enable-gd-native-ttf' '--without-gdbm' '--with-gettext' '--with-iconv' '--with-jpeg-dir=/usr' '--with-openssl' '--with-zlib' '--with-layout=GNU' '--enable-exif' '--enable-ftp' '--enable-sockets' '--with-kerberos' **'--enable-shmop'** '--with-libxml-dir=/usr' '--with-system-tzdata' '--with-mhash' '--libdir=/opt/cpanel/ea-php71/root/usr/lib64/php' '--enable-pcntl' '--enable-opcache' '--disable-opcache-file' '--enable-phpdbg' '--with-imap=shared,/opt/cpanel/ea-php71/root/usr' '--with-imap-ssl' '--enable-mbstring=shared' '--enable-mbregex' '--with-gd=shared' '--with-gmp=shared' '--enable-calendar=shared' '--enable-bcmath=shared' '--with-bz2=shared' '--enable-ctype=shared' '--enable-dba=shared' '--with-db4=/usr' '--with-tcadb=/usr' '--enable-exif=shared' '--enable-ftp=shared' '--with-gettext=shared' '--with-iconv=shared' '--enable-sockets=shared' '--enable-tokenizer=shared' '--with-xmlrpc=shared' '--with-ldap=shared' '--with-ldap-sasl' '--enable-mysqlnd=shared' '--with-mysqli=shared,mysqlnd' '--with-mysql-sock=/var/lib/mysql/mysql.sock' '--enable-dom=shared' '--with-pgsql=shared' '--enable-simplexml=shared' '--enable-xml=shared' '--enable-wddx=shared' '--with-snmp=shared,/usr' '--enable-soap=shared' '--with-xsl=shared,/usr' '--enable-xmlreader=shared' '--enable-xmlwriter=shared' '--with-curl=shared,/opt/cpanel/libcurl' '--enable-pdo=shared' '--with-pdo-odbc=shared,unixODBC,/usr' '--with-pdo-mysql=shared,mysqlnd' '--with-pdo-pgsql=shared,/usr' '--with-pdo-sqlite=shared,/usr' '--with-sqlite3=shared,/usr' '--enable-json=shared' '--enable-zip=shared' '--without-readline' '--with-libedit' '--with-pspell=shared' '--enable-phar=shared' '--with-mcrypt=shared,/opt/cpanel/libmcrypt' '--with-tidy=shared,/opt/cpanel/libtidy' '--enable-sysvmsg=shared' '--enable-sysvshm=shared' '--enable-sysvsem=shared' **'--enable-shmop=shared'** '--enable-posix=shared' '--with-unixODBC=shared,/usr' '--enable-intl=shared' '--with-icu-dir=/usr' '--with-enchant=shared,/usr' '--with-recode=shared,/usr' '--enable-fileinfo=shared' 'build_alias=x86_64-redhat-linux-gnu' 'host_alias=x86_64-redhat-linux-gnu' 'target_alias=x86_64-redhat-linux-gnu'

Any suggestions as to what I can try / check?

Thanks

2

Answers


  1. Chosen as BEST ANSWER

    After some digging, I found that the php-shm extension is in the common package (which was installed), BUT it seems to rely on some of the sysv extensions which are in the process package (which wasn't installed).

    Once I added the process package the shmop functions started working.

    Hope this helps someone else.


  2. Just to summarize @xtempore’s answer,

    In CentOS 8, run:

    dnf -y install php-process 
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search