I have a VPS hosting with a domain redirecting to it. I have LAMP stack for my main website using WordPress CMS. Plus I am using Odoo as my back-end with python and PostgreSQL in a sub-domain.

Everything was working fine until I installed Certbot Let’s Encrypt to obtain an SSL certificate by following these tutorials

For My Wordpress i installed is plugin:

WP Encryption – One Click single / wildcard Free SSL certificate & force HTTPS

Which got me in a loop because it forced the https i will explain it later on

So when the plugin didn't work i searched for another way for the the Whole VPS with these tutorials:

How To Secure Apache with Let's Encrypt on Ubuntu 16.04

How To Secure Apache with Let's Encrypt on Ubuntu 18.04

After completing the second tutorial for ubuntu 18.04 i noticed that all my domain traffic is going to https and it got stuck in a loop saying same as i said above

"ERR_TOO_MANY_REDIRECTS which means Site redirected too many times"

and couldn't access the website front-end for the wordpress in the doamin.

Then when i applied

"Step 3 — Allowing HTTPS Through the Firewall"

my internet connection got interpreted and when i got back to the ssh session i found my self locked out of the server and did not find any way to get back in.

And when i tired to use the sub-domain that has Odoo on it i have got the same errr

"ERR_TOO_MANY_REDIRECTS which means Site redirected too many times"

Until here i was hopeless and did't know what to do.

I contacted my VPS server provider and told him about what exactly happened. Then some how he managed to get me into the server again with a URL to the terminal i still couldn't access the server using ssh clients like putty.. so when i entered the server after he provided me with the URL first thing noticed is that he "rebooted the VPS" will get to this in a second.

So first thing i did was removing the wordpress plugin "WP Encryption" and update the wordpress site-url in wp_options table in mysql database because the plugin changed it from http to https so i changed it back and that solved the ERR_TOO_MANY_REDIRECTS for my website.

Then the second thing i did was disabling the ufw firewall that i enabled in the tutorial in Step 3 above.

I instantly got my connection to the server back using ssh client putty but what i have noticed again is the postgres service was inactive and went down with the reboot of the VPS. i tried to start the service but it didn't a gave me this error.

Failed to start postgresql.service: Unit postgresql.service is masked.

i searched for a soultion and found these commands to unmask

sudo systemctl unmask postgresql
sudo systemctl enable postgresql
sudo systemctl restart postgresql

and then the service has started and everything sames Ok when i run the status command

service postgresql status

the response is

● postgresql.service - LSB: PostgreSQL RDBMS server
   Loaded: loaded (/etc/init.d/postgresql; generated)
   Active: active (exited) since Thu 2020-03-26 05:54:09 UTC; 2h 22min ago
     Docs: man:systemd-sysv-generator(8)
    Tasks: 0 (limit: 2286)
   Memory: 0B
   CGroup: /system.slice/postgresql.service

but when i try to connect to postgres through the default port is says:

could not connect to server: No such file or directory
        Is the server running locally and accepting
        connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"

after many searches i made i found the posgres main cluster is also inactive or down i tried to start it with this command

pg_ctlcluster 11 main start

but i have got this error

Job for postgresql@11-main.service failed because the service did not take the steps required by its unit configuration. See "systemctl status postgresql@11-main.service" and "journalctl -xe" for details.

and when i run the command as requested

systemctl status postgresql@11-main.service

i have got this error

● postgresql@11-main.service - PostgreSQL Cluster 11-main    Loaded: loaded (/lib/systemd/system/postgresql@.service; disabled; vendor preset: enabled)    Active: failed (Result: protocol) since Thu 2020-03-26 15:22:15 UTC; 14s ago   Process: 18930 ExecStart=/usr/bin/pg_ctlcluster --skip-systemctl-redirect 11-main start (code=exited, status=1/FAILURE)

alone with

systemd[1]: Starting PostgreSQL Cluster 11-main...
postgresql@11-main[18930]: Error: Could not find pg_ctl executable for version 11
systemd[1]: postgresql@11-main.service: Can't open PID file /run/postgresql/11-main.pid (yet?) after start: No such file or
systemd[1]: postgresql@11-main.service: Failed with result 'protocol'.
systemd[1]: Failed to start PostgreSQL Cluster 11-main.

I guessed Let's Encrypt added an ssl configuration to the pg_hba.conf and postgres.conf like id did with apache so i searched for them and commented the "ssl on" lines and restarted postgres service along with the main cluster but nothing happened still the the same error which is

Error: Could not find pg_ctl executable for version 11

I have searched a lot for this problem but nothing worked how can i solve the pg_ctl executable in version 11 ??

Thanks in advanced i really appreciate it

Ps: I am using Ubuntu 19.10 (GNU/Linux 5.3.0-24-generic x86_64) Odoo 11 with postgres 11 as the database odoo can't connect to postgres as i mentioned before

2 Answers 2


You can also download https://wordpress.org/plugins/ssl-zen/ Here's a video tutorial on how to install the SSL certificate step-by-step - https://www.youtube.com/watch?v=aHBB91AdUSg

  1. Use an SSH client such as Putty or WinSCP and login to the root of your server.
  2. Our first task is to locate the SSL certificate files on our server. Go to the folder where you have installed WordPress, this is usually /var/www/html
  3. The SSL files are located at /wp-content/plugins/ssl_zen/ssl_zen/keys. Make a note of the file location for certificate.txt, privatekey.pem and cabundle.crt
  4. Now open another window and navigate to /etc/apache2/sites-available and look for default-ssl.conf
  5. Locate 'SSLEngine on' directive and make sure that it is un-commented. If it is not, remove the # sign before it
  6. Go to SSLCertificateFile directive, remove the existing value and add the location of your certificate.crt file including the path to it
  7. Follow the same process for SSLCertificateKeyFile
  8. Go to SSLCACertificateFile, if the line is commented, remove the # sign and add the location of your cabundle.crt
  9. Next, go to 000-default.conf file and make sure the ServerAdmin directive is set to your domain name.
  10. Open an SSH terminal window and type 'apachectl configtest' to make sure the apache configuration is working properly
  11. To enable the SSH module on the apache server, type 'a2enmod ssl' and hit enter
  12. Type 'a2ensite default-ssl' to enable default-ssl configuration
  13. Lastly, restart your apache server by typing 'systemctl apache2 restart'
  14. Go back to the SSL Zen plugin page and click on the Next button. The plugin will ask you if you would like to redirect all your http request to https, if you agree, click on the Next button.

So finally after a hours of digging

All PostgreSQL files where damaged and missing and i lost hope of repairing them i don't know what caused that but it has a relation with the accidental reboot of the server.

So i managed to find the main cluster data file for my important database information for the production server in this path


and i took a backup from it by zipping the whole folder using this command

zip -r main.zip main/

then i did a full purge and reinstall for postgres usuing these commands from here

apt-get --purge remove postgresql\*

to remove everything PostgreSQL from your system. Just purging the postgres package isn't enough since it's just an empty meta-package.

Once all PostgreSQL packages have been removed, run:

rm -r /etc/postgresql/
rm -r /etc/postgresql-common/
rm -r /var/lib/postgresql/
userdel -r postgres
groupdel postgres

Then i installed postgres with this command to match odoo11

sudo apt-get install postgresql libpq-dev -y

then creating the ODOO PostgreSQL User

sudo su - postgres -c "createuser -s odoo" 2> /dev/null || true

Now everything is okay odoo should work fine but you still don't have any database

So to bring back the backup from the cluster folder we took earlier we need to move the zip file to the same directory we took it from which is


but before that you should stop postgres service

sudo systemctl stop postgresql

and make sure it has stopped

sudo systemctl status postgresql

after that rename the main cluster that postgres uses right now because its empty and we don't need it because we are replacing it with our backed up cluster

mv /var/lib/postgres/11/main /var/lib/postgres/11/main_old

then move the zip file from where you backed it up to the postgres cluster folder with this command

mv /backups/main.zip /var/lib/postgres/11/

unzip the folder in the same path by using this command

unzip -a /var/lib/postgres/11/main.zip

after unzipping the folder give the ownership to your postgres user and group

chown -R postgres:postgres main

Then you are good to go. Start Postgres service

sudo systemctl start postgresql
sudo systemctl status postgresql

and make sure you also start the main cluster service

pg_ctlcluster 11 main start

if you stopped odoo make sure to start it also

service odoo-server start

Ps: I solved ERR_TOO_MANY_REDIRECTS for the odoo sub-domain by commenting ssl configurations in my odoo.config Apache2 virtual host that lets encrypt updated before and everything got back to where left it before installing lets encrypt.

I guess i will leave it here and won't use ssl in production again till i figure out how to use it in a test server .. thanks for your time i hope my question and answer helps someone in the future

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.