Usr lib php 20220902 pdo_pgsql so undefined symbol pdo_parse_params in unknown on line 0

  1. 17th January 2014, 04:57 PM #1

    pdo_parse_params error in pdo_odbc.so whenever PHP starts in Fedora 20

    *This thread might belong in Programming & Packaging. I'm new here, so I'm not sure...*

    I'm getting this error when I try to start PHP via command line:

    Code:

        PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/pdo_odbc.so' - /usr/lib64/php/modules/pdo_odbc.so: undefined symbol: pdo_parse_params in Unknown on line 0

    Here are the PHP packages I have installed:

    Code:

        php.x86_64                      5.5.7-1.fc20        @updates                    
        php-ZendFramework.noarch        1.12.3-3.fc20       @updates                    
        php-bcmath.x86_64               5.5.7-1.fc20        @updates                    
        php-cli.x86_64                  5.5.7-1.fc20        @updates                    
        php-common.x86_64               5.5.7-1.fc20        @updates                    
        php-devel.x86_64                5.5.7-1.fc20        @updates                    
        php-gd.x86_64                   5.5.7-1.fc20        @updates                    
        php-mcrypt.x86_64               5.5.7-1.fc20        @updates                    
        php-mssql.x86_64                5.5.7-1.fc20        @updates                    
        php-odbc.x86_64                 5.5.7-1.fc20        @updates                    
        php-pdo.x86_64                  5.5.7-1.fc20        @updates                    
        php-pear.noarch                 1:1.9.4-23.fc20     @fedora                     
        php-pecl-jsonc.x86_64           1.3.3-1.fc20        @updates                    
        php-pecl-jsonc-devel.x86_64     1.3.3-1.fc20        @updates                    
        php-process.x86_64              5.5.7-1.fc20        @updates                    
        php-xml.x86_64                  5.5.7-1.fc20        @updates

    I have extension=pdo_odbc.so and extension=oci8.so as the only extensions defined in my /etc/php.ini file. There are also a lot of .ini files in the /etc/php.d directory that loads most of the other extensions. The following .so files are in the /usr/lib64/php/modules directory:

    Code:

        -rwxr-xr-x. 1 root root   32560 Dec 10 23:51 bcmath.so
        -rwxr-xr-x. 1 root root   24696 Dec 10 23:51 bz2.so
        -rwxr-xr-x. 1 root root   33752 Dec 10 23:51 calendar.so
        -rwxr-xr-x. 1 root root   15568 Dec 10 23:51 ctype.so
        -rwxr-xr-x. 1 root root   86912 Dec 10 23:51 curl.so
        -rwxr-xr-x. 1 root root  180608 Dec 10 23:51 dom.so
        -rwxr-xr-x. 1 root root   65496 Dec 10 23:51 exif.so
        -rwxr-xr-x. 1 root root 2713328 Dec 10 23:51 fileinfo.so
        -rwxr-xr-x. 1 root root   53624 Dec 10 23:51 ftp.so
        -rwxr-xr-x. 1 root root  120904 Dec 10 23:51 gd.so
        -rwxr-xr-x. 1 root root   15640 Dec 10 23:51 gettext.so
        -rwxr-xr-x. 1 root root   45080 Dec 10 23:51 iconv.so
        -rwxr-xr-x. 1 root root   40840 Dec 12 09:13 json.so
        -rwxr-xr-x. 1 root root   45256 Dec 10 23:51 mcrypt.so
        -rwxr-xr-x. 1 root root   53816 Dec 10 23:51 mssql.so
        -rwxr-xr-x. 1 root root  560751 Jan 10 10:20 oci8.so
        -rwxr-xr-x. 1 root root   70312 Dec 10 23:51 odbc.so
        -rwxr-xr-x. 1 root root   25008 Dec 10 23:51 pdo_dblib.so
        -rwxr-xr-x. 1 root root   28856 Dec 10 23:51 pdo_odbc.so
        -rwxr-xr-x. 1 root root  116240 Dec 10 23:51 pdo.so
        -rwxr-xr-x. 1 root root   29168 Dec 10 23:51 pdo_sqlite.so
        -rwxr-xr-x. 1 root root  272000 Dec 10 23:51 phar.so
        -rwxr-xr-x. 1 root root   32880 Dec 10 23:51 posix.so
        -rwxr-xr-x. 1 root root   15624 Dec 10 23:51 shmop.so
        -rwxr-xr-x. 1 root root   54176 Dec 10 23:51 simplexml.so
        -rwxr-xr-x. 1 root root   91368 Dec 10 23:51 sockets.so
        -rwxr-xr-x. 1 root root   51336 Dec 10 23:51 sqlite3.so
        -rwxr-xr-x. 1 root root   19880 Dec 10 23:51 sysvmsg.so
        -rwxr-xr-x. 1 root root   11496 Dec 10 23:51 sysvsem.so
        -rwxr-xr-x. 1 root root   15720 Dec 10 23:51 sysvshm.so
        -rwxr-xr-x. 1 root root   19712 Dec 10 23:51 tokenizer.so
        -rwxr-xr-x. 1 root root   36720 Dec 10 23:51 wddx.so
        -rwxr-xr-x. 1 root root   32888 Dec 10 23:51 xmlreader.so
        -rwxr-xr-x. 1 root root   54072 Dec 10 23:51 xml.so
        -rwxr-xr-x. 1 root root   49152 Dec 10 23:51 xmlwriter.so
        -rwxr-xr-x. 1 root root   37104 Dec 10 23:51 xsl.so

    Seeing that the files are owned by root, I tried sudo php as well with the same results.

    The output of when I run phpinfo() can be found here.

    Last edited by purkinje; 17th January 2014 at 05:26 PM. Reason: added link to output of phpinfo()


Description of issue:

I am trying to integrate PHPUnit tests into my CI flow, however I am experiencing issues with the Postgres DB as the required php extensions are not installed by default.

I initially tried to install the extension via pickle per the documentation, however pickle is returning an error.

pickle install pdo_pgsql
  - Installing pdo_pgsql (latest-stable): Downloading (connecting...)���������������������������Downloading (0%)           ���������������������������Downloading (55%)�����������������Downloading (100%)

                                                                         
  [Exception]                                                            
  Couldn't parse the version defined in the PHP_PDO_PGSQL_VERSION macro  

Looking over the pickle repository I have also noticed that the latest release is V1.0.2 which was release on 01/05/2006.

I have tried to use the package manger to install the required php extension however I am not sure if this is being installed against the correct PHP instance.

   - sudo apt update --fix-missing
   - sudo apt install php-pgsql
   - echo "extension=pgsql.so" >> $HOME/.phpenv/versions/$(phpenv version-name)/etc/php.ini;

Resulting in

if [[ $PHPCS != 1 ]]; then vendor/bin/phpunit --log-junit shippable/testresults/junit.xml --coverage-xml shippable/codecoverage; fi
PHP Warning:  PHP Startup: Unable to load dynamic library '/root/.phpenv/versions/7.1/lib/php/extensions/no-debug-non-zts-20160303/pgsql.so' - /root/.phpenv/versions/7.1/lib/php/extensions/no-debug-non-zts-20160303/pgsql.so: cannot open shared object file: No such file or directory in Unknown on line 0

Warning: PHP Startup: Unable to load dynamic library '/root/.phpenv/versions/7.1/lib/php/extensions/no-debug-non-zts-20160303/pgsql.so' - /root/.phpenv/versions/7.1/lib/php/extensions/no-debug-non-zts-20160303/pgsql.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHPUnit 6.5.9 by Sebastian Bergmann and contributors.

.IIException: Database driver Cake\Database\Driver\Postgres cannot be used due to a missing PHP extension or unmet dependency in [/root/src/bitbucket.org/cardiffuni/php-app-toolkit/vendor/cakephp/cakephp/src/Database/Connection.php, line 179]

  • Link to the build failure: https://app.shippable.com/bitbucket/cardiffuni/php-app-toolkit/runs/28/1/console