skip to Main Content

Using php-5.4. I’m trying to load ‘oci8.so’ to access the function oci_connect. When in command line, I can access said function fine. But (after reloading, restarting, and reloading) php-fpm REFUSES to load the extension.

php -r 'print_r(get_loaded_extensions()); lists oci8.

Array
(
    [0] => Core
    [1] => date
    [2] => ereg
    [3] => libxml
    [4] => openssl
    [5] => pcre
    [6] => zlib
    [7] => bz2
    [8] => calendar
    [9] => ctype
    [10] => hash
    [11] => filter
    [12] => ftp
    [13] => gettext
    [14] => gmp
    [15] => SPL
    [16] => iconv
    [17] => pcntl
    [18] => readline
    [19] => Reflection
    [20] => session
    [21] => standard
    [22] => shmop
    [23] => SimpleXML
    [24] => sockets
    [25] => exif
    [26] => tokenizer
    [27] => xml
    [28] => curl
    [29] => fileinfo
    [30] => json
    [31] => oci8
    [32] => Phar
    [33] => zip
    [34] => mhash
)

However curl localhost/extensions.php reads

Array
(
    [0] => Core
    [1] => date
    [2] => ereg
    [3] => libxml
    [4] => openssl
    [5] => pcre
    [6] => zlib
    [7] => bz2
    [8] => calendar
    [9] => ctype
    [10] => hash
    [11] => filter
    [12] => ftp
    [13] => gettext
    [14] => gmp
    [15] => SPL
    [16] => iconv
    [17] => Reflection
    [18] => session
    [19] => standard
    [20] => shmop
    [21] => SimpleXML
    [22] => sockets
    [23] => exif
    [24] => tokenizer
    [25] => xml
    [26] => cgi-fcgi
    [27] => curl
    [28] => fileinfo
    [29] => json
    [30] => Phar
    [31] => zip
    [32] => mhash
    // missing oci8
    // and also missing 'pcntl'??
)

Both the fpm and cli are reading the exact same php.ini. I have check and tested.

Nothing at all in any error logs.

2

Answers


  1. Depending how you have installed PHP FPM but, On Debian CLI and FPM use different ini files try:

       php -i | grep php.ini
    

    Mines is /etc/php/7.0/cli/php.ini

    and

        <?php phpinfo(); ?>
    

    Mine is /etc/php/7.0/fpm/php.ini

    Hope this helps.

    Login or Signup to reply.
  2. Well not sure it is related but this happened to me on “Amazon Linux 2 AMI” so I guess could apply to “CentOS” too.

    Long story short I installed composer and other php stuff.

    [zzzz@stageOpenID /etc/httpd/sites-enabled]$ php -i
    phpinfo()
    PHP Version => 7.2.30
    
    System => Linux stageOpenID 4.14.177-139.254.amzn2.x86_64 #1 SMP Thu May 7 18:48:23 UTC 2020 x86_64
    Build Date => May  5 2020 18:04:39
    Server API => Command Line Interface
    Virtual Directory Support => disabled
    Configuration File (php.ini) Path => /etc
    Loaded Configuration File => /etc/php.ini
    Scan this dir for additional .ini files => /etc/php.d
    Additional .ini files parsed => 
    

    So far so good.

    And now to the web.

    From phpinfo.php:

    PHP Version: 7.2.30 
    System: Linux stageOpenID 4.14.177-139.254.amzn2.x86_64 #1 SMP Thu May 7 18:48:23 UTC 2020 x86_64
    Build Date: May 5 2020 18:06:20
    Server API: FPM/FastCGI
    Virtual Directory Support: disabled
    Configuration File (php.ini) Path: /etc
    Loaded Configuration File: /etc/php.ini
    Scan this dir for additional .ini files /etc/php.d
    Additional .ini files parsed
    

    But the lists are different.

    Why? Simply because after the yum installation I restarted httpd but I forgot to restart php-fpm, so php-cli got the new modules and php-fpm didn’t.

    So, don’t forget to:

    sudo systemctl restart php-fpm
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search