Why does this happen and how can I enable the same extensions for the PHP cli for shell users? I've really tried searching for this issue, but it's basically impossible to find anything relevant. EDIT: Is this a Jail issue? Do I need to update jail after setting a new default PHP CLI?
yes, you need to include all versions of php into a jail, and update the jail if you add another php version. that will allow the shell user to use any version of the php cli. you can't currently automatically set the default cli php version they use to match the website fpm php version if you/they want the a specific php version to be used when just using /usr/bin/php instead of /usr/bin/php# then you'll need to set an alias for it in .bashrc in their home folder.
I managed to get that working and now I could use most extensions, however, mysqli isn't loading (But works on root). This is the entry I added to the jail: Code: [php] comment = The PHP Interpreter and Libraries executables = /usr/bin/php, /usr/bin/php7.4, /usr/bin/php7.3, /usr/bin/php7.2, /usr/bin/php5.6 directories = /usr/lib/php, /usr/share/php, /usr/share/php, /etc/php, /usr/share/php-geshi, /usr/share/zoneinfo includesections = env
mysql(i) may b working ok, but just not connecting if you're trying to connect to localhost. the mysql socket isn't included in the jail, if it's on the same partition, you can bind mount it, there are instructions somewhere on this forum, however that can have other complications. try connecting to 127.0.0.1 instead of localhost so it uses a tcp connection instead of the unix socket. if you're trying to use something like wp-cli, edit wp-config.php find Code: /** MySQL hostname */ define('DB_HOST', 'localhost:3306'); and replace it with Code: /** Tell WP-CLI to use TCP instead of socket connection */ if ( defined( 'WP_CLI' ) && WP_CLI ) { /** MySQL hostname for WP-CLI */ define('DB_HOST', '127.0.0.1:3306'); } else { /** MySQL hostname */ define('DB_HOST', 'localhost:3306'); } if you're using some other software/cms, make a similar change wherever the database connection is defined.
That was the exact issue, I saw it on occasion when web-searching the issue but it didn't hit me until you pointed it out! It works now, thanks a lot!
Ah, mess, another issue. Code: 77 error setting certificate verify locations: CAfile: /etc/ssl/certs/ca-certificates.crt CApath: /etc/ssl/certs Any ideas? EDIT: Found the solution & issue described here https://www.howtoforge.com/community/threads/jailkit-copy-over-ca-certificates.75927/
add this line: Code: regularfiles= /etc/ssl/certs/ca-certificates.crt to the netutils section in /etc/jailkit/jk_init.ini and then update the users jail.
@beryl you might try grabbing jk_init.ini.master from the stable-3.1 git branch and see how things work for you.
one thing which i didn't pick up on earlier. as i understand this, you have changed which php version your server OS uses by default, if this is right, set it back to what is was before. do NOT change the default php version on a server running ispconfig. it'll lead to all sorts of pain....