ImageMagick or GD missing: new VM server

“No php extensions are available to edit images on the server. ImageMagick or GD is requiredNo php extensions are available to edit images on the server. ImageMagick or GD is required”

Hi, am still learning to setup new server with VM (former cPaneler)…

One of the problems I run into is this error above (wordpress imagify plugin). Am on php 7.4 Centos 8…

Any help is much appreciated!

Thx a millioon
Dan

Try to install GD with

yum install php-gd

You are aware that CentOS 8 is not as yet a Grade A supported system on Virtualmin? See https://www.virtualmin.com/os-support.html

1 Like

Hallo Calport, thank you somuch.

When I try that command, I get its already installed.
"[root@web ~]# yum install php-gd
Last metadata expiration check: 0:51:26 ago on Sat 20 Jun 2020 10:13:23 AM CEST.
Package php-gd-7.4.7-1.el8.remi.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!
"

NO, was not aware that Centos 8 is not yet officially supported…could that give me all these problems?
Thx
Dan

Have alook here pretty good howto (harmful link removed) IT goes through the install and some problems

Hi Alec,
thank you so much!

Do you think this error could have something to do with it? not so sure if fpm can be the issue? (and why its an error)?

[root@CentOS-81-64-minimal ~]# systemctl status php-fpm.service
● php-fpm.service - The PHP FastCGI Process Manager
Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; enabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Sat 2020-06-20 17:30:35 CEST; 17s ago
Process: 2611471 ExecStart=/usr/sbin/php-fpm --nodaemonize (code=exited, status=78)
Main PID: 2611471 (code=exited, status=78)

Jun 20 17:30:35 web.consultd.de systemd[1]: Starting The PHP FastCGI Process Manager…
Jun 20 17:30:35 web.consultd.de php-fpm[2611471]: [20-Jun-2020 17:30:35] NOTICE: PHP message: PHP Warning: Module ‘zip’ already loaded in Unknown on line 0
Jun 20 17:30:35 web.consultd.de php-fpm[2611471]: [20-Jun-2020 17:30:35] ERROR: [pool 15916366174775] unable to set listen address as it’s already used in another pool ‘15912925857681’
Jun 20 17:30:35 web.consultd.de php-fpm[2611471]: [20-Jun-2020 17:30:35] ERROR: failed to post process the configuration
Jun 20 17:30:35 web.consultd.de php-fpm[2611471]: [20-Jun-2020 17:30:35] ERROR: FPM initialization failed
Jun 20 17:30:35 web.consultd.de systemd[1]: php-fpm.service: Main process exited, code=exited, status=78/CONFIG
Jun 20 17:30:35 web.consultd.de systemd[1]: php-fpm.service: Failed with result ‘exit-code’.
Jun 20 17:30:35 web.consultd.de systemd[1]: Failed to start The PHP FastCGI Process Manager.

Thx in advance

Dan

It’ll show up on the A list soon enough and I doubt CentOS 8 is the problem you’re having with PHP.

How did you install PHP 7.4? As a replacement for 7.2 or in addition to 7.2?

php -v

will show the version for ‘system PHP’ configured with /etc/php.ini. Installing multiple PHP versions involves separate php.ini files and executables.

If 7.2 is still the system’s PHP as installed from the CentOS repo, and assuming PHP 7.4 came from the Remi repository as an extra, see if these packages are available:

dnf info php74-php-pecl-imagick
dnf info php74-php-gd

Notice that package names for a multi-PHP install are different from what’s needed for system PHP. See the Remi repo wizard for help with that: Remi's RPM repository

Restart the web server if you install one, the other or both.

systemctl restart httpd
systemctl restart php-fpm

Then use the -m switch for a list of modules/extensions installed for PHP 7.4, except use the path to its binary.

/usr/bin/php74 -m

Hope this helps. Multiple PHP installations can get messy and you can always remove all of them and start over with a clean slate.

2 Likes

HI Ramin,
thank you so much… am not sured if I meeded up something, I only have 7.3. and 7.4 on the system, but am not sure if the php.ini s are ok/there

php -v gives me this:
[root@CentOS-81-64-minimal ~]# php -v
PHP Warning: Module ‘zip’ already loaded in Unknown on line 0
PHP Warning: Module ‘zip’ already loaded in Unknown on line 0
PHP 7.4.7 (cli) (built: Jun 9 2020 10:57:17) ( NTS )
Copyright © The PHP Group
Zend Engine v3.4.0, Copyright © Zend Technologies
with Zend OPcache v7.4.7, Copyright ©, by Zend Technologies
seems also there is an error with zip (other forumpost of mine)

7.2 is no more on the system, 7.3 and 7.4 installed to my knowledge from Remi repo

The dnf info php74-php-pecl-imagick and dnf info php74-php-gd commands show nothing, no response

Would you suggest to deinstall both php and reinstall? If so, do you have a hint for me how and what to install?
THank you so much

Dan

update: I did my best to remove all php

now only 7.4 is on server
but still get the
PHP Warning: Module ‘zip’ already loaded in Unknown on line 0
PHP Warning: Module ‘zip’ already loaded in Unknown on line 0
warning when doing php -v

and website is down with 503 service error

the error log says
“[Sat Jun 20 19:21:17.076212 2020] [proxy:error] [pid 1557:tid 140010606937856] (111)Connection refused: AH00957: FCGI: attempt to connect to 127.0.0.1:8002 (*) failed
[Sat Jun 20 19:21:17.076233 2020] [proxy_fcgi:error] [pid 1557:tid 140010606937856] [client 31.16.180.146:64037] AH01079: failed to make connection to backend: localhost”

hmmmm :frowning:

Dan

Your 7.4 installation apparently came from the multi package so remove that one too. Eliminate PHP entirely for a clean start. Try to get rid of all extra extensions and modules. dnf search/check/info can help narrow down leftovers. Sometimes the command history helps with recall.

Decide which PHP version you prefer for the default system installation, i.e., the one that uses /etc/php.ini. In theory, you don’t need a system PHP but I’ve never used it that way and can’t give adequate advice, nor would I recommend it. For my CentOS 8 installation I’m sticking with 7.2 from the CentOS repo and will add 7.3 from Remi eventually. I don’t want more than two PHPs to manage for my light requirements.

Since you’re starting fresh with Remi’s repositories enabled, you could be getting all PHP packages from there, from 5.6 to 7.4 to 8.x beta. If you go that route, for extra measure I suggest adding an exclusion in the CentOS Appstream repo to avoid any collisions.

If you prefer 7.3 or 7.4 for the system you’ll have to get them from Remi. Use the wizard and select ‘Default/Single version’ and follow instructions. Once installed its php.ini file will end up in /etc and php -v will output 7.3 or 7.4. For system PHP all *.ini files for various extensions and modules are in /etc/php.d.

For add-on PHP versions select ‘Multiple versions simultaneously’ with the Remi wizard and follow instructions.

Sorry, I’m drawing a blank on where add-on versions stash their php.ini files. Before I started using Webmin my CentOS 7 server stored them in /etc/opt/remi/73 and /etc/opt/remi/74… best I can recall. I do know you’ll find user.ini files in Virtualmin home directories for extra tuning per user. A phpinfo() file in a user’s public_html loaded in a browser will tell you all paths; or type /usr/bin/php73 -i for a big ugly screen dump with every detail.

It’s no less tricky installing packages for system and multi-PHP installations.

dnf install php-[pkg-name]

  • installs to system PHP

dnf install phpNN-php-[pkg-name]

  • installs to a specific multi-PHP installation where NN is the version number.

So there’s a big difference in how to install the two packages that gave you grief, depending on how PHP 7.4 was installed in the first place.

dnf install php-gd
dnf install php74-php-gd

dnf install php-pecl-imagick
dnf install php74-php-pecl-imagick

I think you should approach this by getting system PHP fully installed first along with all extensions. Then take on any multi versions.

3 Likes

Please also note the following about third party repositories (just for reference of anyone stumbling on this thread):

  1. Don’t enable third party repos unless you know what you’re doing.
  2. Even if you know what you’re doing, don’t enable third party repos until after Virtualmin has been installed.
1 Like

This is half right. PHP 7.3 is available from CentOS in addition to Remi.

Every time I do this PHP stuff I need a refresher course. Here’s what worked for me if it’s any help.

I decided to replace 7.2 with 7.4 as the default and 7.3 as the extra, both from Remi.

dnf module reset php
dnf module enable php:remi-7.4
dnf update php\*

With 7.4 a batch of basic extensions updated automatically, including php-fpm, since this was an update. Other extensions can be installed in batches.

dnf install php-openssl php-pcre php-posix php-sockets php-spl php-tokenizer php-zlib ... and so on

7.4 configuration files are

/etc/php.ini
/etc/php.d/*.ini

7.3 starts out bare since it’s new, so php-fpm and other extensions need to be installed manually.

dnf install php73

dnf install php73-php-fpm php73-php-mysqlnd php73-php-xmlrpc php73-php-pear php73-php-pdo php73-php-opcache ... and so on

7.3 configuration files are

/etc/opt/remi/php73/php.ini
/etc/opt/remi/php73/php.d/*.ini

For extra measure I restarted Webmin after restarting httpd and php-fpm.

This topic was automatically closed 4 days after the last reply. New replies are no longer allowed.