The requested apache plugin does not appear to be installed

Hi Gurus,

I ran this command: certbot renew

It produced this output: The requested apache plugin does not appear to be installed

My web server is (include version):

The operating system my web server runs on is (include version): Centos 7, Apache 2.4.6

The version of my client is (e.g. output of certbot --version or certbot-auto --version if you're using Certbot): certbot 1.16.0

Package certbot-1.11.0-1.el7.noarch already installed and latest version
Package python2-certbot-apache-1.11.0-1.el7.noarch already installed and latest version

but certbot tells me it is not installed. Please help me how to fix this issue.

thanks

Hi there @batpurev,

It seems like you have multiple Certbot installations.

What is the output of:

ls -la $(which certbot)
1 Like

hi,

thanks for your reply.

[root@localhost ~]# ls -la $(which certbot)
-rwxr-xr-x. 1 root root 211 Jun  5 21:12 /usr/local/bin/certbot

this means I have single version installed is it?

1 Like

here is the complete error log from /var/log/letsencrypt/letsencrypt.log file

2021-06-10 01:29:46,629:DEBUG:certbot._internal.renewal:Traceback was:
Traceback (most recent call last):
  File "/root/mycertbot/lib/python3.6/site-packages/certbot/_internal/renewal.py", line 474, in handle_renewal_request
    main.renew_cert(lineage_config, plugins, renewal_candidate)
  File "/root/mycertbot/lib/python3.6/site-packages/certbot/_internal/main.py", line 1363, in renew_cert
    installer, auth = plug_sel.choose_configurator_plugins(config, plugins, "certonly")
  File "/root/mycertbot/lib/python3.6/site-packages/certbot/_internal/plugins/selection.py", line 228, in choose_configurator_plugins
    diagnose_configurator_problem("authenticator", req_auth, plugins)
  File "/root/mycertbot/lib/python3.6/site-packages/certbot/_internal/plugins/selection.py", line 332, in diagnose_configurator_problem
    raise errors.PluginSelectionError(msg)
certbot.errors.PluginSelectionError: The requested apache plugin does not appear to be installed

2021-06-10 01:29:46,629:DEBUG:certbot.display.util:Notifying user: Processing /etc/letsencrypt/renewal/mydomain.com.conf
2021-06-10 01:29:46,663:DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): r3.o.lencr.org:80
2021-06-10 01:29:46,878:DEBUG:urllib3.connectionpool:http://r3.o.lencr.org:80 "POST / HTTP/1.1" 200 503```

That only means that is the one found first in the path [there may be others].
Try:
find / -name certbot

Thanks!

That copy of Certbot would have come from installing Certbot using pip install certbot. This is usually not what you want to do; it's not a supported method of installation.

So what you can try is:

sudo mv /usr/local/bin/certbot /usr/local/bin/certbot.bak
sudo yum -y reinstall certbot python2-certbot python2-certbot-apache python2-acme
1 Like

@_az

wasn't 1.16.0 installed only via snap?

pip will install whatever the latest vesrion published at certbot · PyPI is. Installing it globally is not recommended (for any Python package ever, not just Certbot) because it will conflict with libraries installed via yum.

There is an official and safe way to use pip to install Certbot, and that's using a virtual environment: Certbot - Pip Other.

2 Likes

@_az agreed that there are multiple version installed or multiple version have been installed in various ways (some not so good).

Should they just uninstall ALL certbots and then reinstall only once (and via the recommended method)?

1 Like

Yep, that's what the instructions at https://certbot.eff.org/ say to do. With pip it's a bit complicated because there's no precisely clean way to uninstall a set of globally-installed packages once you've installed them, but the commands I suggested a few posts ago should hopefully result in a working installation.

2 Likes

@_az I installed it using yum and it was working just fine until this renew came up.