• If you are still using CentOS 7.9, it's time to convert to Alma 8 with the free centos2alma tool by Plesk or Plesk Migrator. Please let us know your experiences or concerns in this thread:
    CentOS2Alma discussion

Resolved Unable to load dynamic library after plesk update

gawrrell

New Pleskian
Hello, I'm having this issue after the plesk auto update.
When I run any php command I get:
Code:
PHP Warning:  PHP Startup: Unable to load dynamic library '/opt/plesk/php/5.6/lib64/php/modules/imap.so' - /opt/plesk/php/5.6/lib64/php/modules/imap.so: undefined symbol: _safe_emalloc_string in Unknown on line 0

But the "imap.so" module exists at that location.
(I've attached a print screen)
The same issue is for pgsql.so and ldap.so.
 

Attachments

  • err1.png
    err1.png
    15.1 KB · Views: 5
Hi gawrrell,

pls. consider to add MORE informations ( server operating software, Plesk version ( incl. MU!!! ) for investigations. ;)


Consider as well to investigate update/upgrade - issues at your log - files, which points often enough directly to possible issues/problems/errors.


Sometimes, it is as well a good idea to change the log - level, to get more informations in psa - log - files:




To install the latest updates/upgrades/patches for your current Plesk version, you could use the command:

/usr/local/psa/admin/bin/autoinstaller --select-product-id plesk --select-release-current --reinstall-patch --install-component base
 
1) My OS and plesk version are:
Code:
[root@nbois logs]# cat /usr/local/psa/version
12.5.30 CentOS 7 1205160608.10

2) I had looked into plesk logs but I cannot find nothing relevant, can you be more specific where to look?
3) I've installed the updates/patches by running that command line, the problem persist.
4) I've changed, from panel, to the PHP FastCGI then back to FPM still no result.
5) On the phpinfo() page the imap, ldap, pgsql modules are running:
Code:
IMAP c-Client Version     2007f
SSL Support     enabled
Kerberos Support     enabled

Code:
LDAP Support     enabled
RCS Version     $Id: 8ab0fe072786e6f8d7dbd47b6a4897e81ce89ec3 $
Total Links     0/unlimited
API Version     3001
Vendor Name     OpenLDAP
Vendor Version     20440
SASL Support     Enabled
ldap.max_links    Unlimited    Unlimited

Code:
PostgreSQL(libpq) Version     9.2.15
PostgreSQL(libpq)     PostgreSQL 9.2.15 on x86_64-redhat-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-4), 64-bit
Multibyte character support     enabled
SSL support     enabled
Active Persistent Links     0
Active Links     0

pgsql.allow_persistent    On    On
pgsql.auto_reset_persistent    Off    Off
pgsql.ignore_notice    Off    Off
pgsql.log_notice    Off    Off
pgsql.max_links    Unlimited    Unlimited
pgsql.max_persistent    Unlimited    Unlimited

Strange thing is if I run the php -v command the version is PHP 5.6.22 (cli) (built: May 27 2016 11:45:28) but on the plesk admin panel it shows 5.6.26.
 
Hi gawrrell,

pls. note that using the command "php -v" over the command line will display the OS vendor version installed on your server. Plesk - PHP - version - commands are requested with the commands:

Code:
/opt/plesk/php/5.2/bin/php -v
/opt/plesk/php/5.3/bin/php -v
/opt/plesk/php/5.4/bin/php -v
/opt/plesk/php/5.5/bin/php -v
/opt/plesk/php/5.6/bin/php -v
/opt/plesk/php/7.0/bin/php -v

If you experience issues with different versions displayed over the Plesk Control Panel, pls. consider to REREAD the handlers with the command:

plesk bin php_handler --reread


Consider as well to uninstall and reinstall misconfigured Plesk modules:

/usr/local/psa/admin/bin/autoinstaller --select-product-id plesk --select-release-current --remove-component php5.6
/usr/local/psa/admin/bin/autoinstaller --select-product-id plesk --select-release-current --install-component php5.6
 
I've found the problem.
Before the update, I have create a symbolic link to /opt/plesk/php/5.6/bin/php called "phpv" and stored in /usr/local/bin .... somehow after the update, when I call phpv -v it gives me that error, but when I delete and recreate the symbolic link everything works like before the update.

Is there a way to link the "default" php command to a specific path so when I'm logged in with different user than root it will point to the /opt/plesk/php/5.6/bin/php?
Ex:
when I'm with root and execute php -v it will point to system php version
when I'm with nbo user and execute php -v it will point to the custom php version.
 
Example:
I have a project(in symfony 2.8) that requires php v 5.6, but the default version of php installed with plesk is 5.4.
For my project I have to run terminal commands like: php app/console doctrine:schema:update --force ... but since the symfony requires at least php v 5.6 it will give me an error.
To be able to run that command I have to enter: /opt/plesk/php/5.6/bin/php app/console doctrine:schema:update --force ... this is why I've created a symbolic link to that path(called phpv) so I can quickly type
phpv app/console doctrine:schema:update ...

Now I was wondering if I login with a different user than root, when I type the normal command: php app/console doctrine:schema:update ... how can I make the php to point to /opt/plesk/php/5.6/php ... in this way I can get rid of the symbolic link.
 
Back
Top