sql >> Database >  >> RDS >> PostgreSQL

Zeer beschikbare PostgreSQL implementeren met Single Endpoint voor WordPress

WordPress is een open source-software die u kunt gebruiken om uw website, blog of applicatie te maken. Er zijn veel ontwerpen en functies/plug-ins om toe te voegen aan uw WordPress-installatie. WordPress is gratis software, maar er zijn veel commerciële plug-ins om het te verbeteren, afhankelijk van uw vereisten.

WordPress maakt het gemakkelijk voor u om uw inhoud te beheren en het is erg flexibel. Maak concepten, plan publicatie en bekijk uw postrevisies. Maak uw inhoud openbaar of privé en beveilig berichten en pagina's met een wachtwoord.

Om WordPress uit te voeren, moet u ten minste PHP-versie 5.2.4+, MySQL-versie 5.0+ (of MariaDB) en Apache of Nginx hebben. Sommige van deze versies hebben EOL bereikt en u kunt uw site blootstellen aan beveiligingsproblemen, dus u moet de nieuwste versie installeren die beschikbaar is voor uw omgeving.

Zoals we konden zien, ondersteunt WordPress momenteel alleen de MySQL- en MariaDB-database-engines. WPPG is een plug-in op basis van PG4WP-plug-in, die je de mogelijkheid geeft om WordPress te installeren en te gebruiken met een PostgreSQL-database als backend. Het werkt door aanroepen naar MySQL-specifieke functies te vervangen door generieke aanroepen die ze toewijzen aan andere databasefuncties en door SQL-query's direct te herschrijven wanneer dat nodig is.

Voor deze blog installeren we 1 applicatieserver met WordPress 5.1.1 en HAProxy, 1.5.18 op dezelfde server en 2 PostgreSQL 11-databaseknooppunten (Master-Standby). Het hele besturingssysteem zal CentOS 7 zijn. Voor de implementatie van databases en load balancer gebruiken we het ClusterControl-systeem.

Dit is een basisomgeving. U kunt het verbeteren door meer functies voor hoge beschikbaarheid toe te voegen, zoals u hier kunt zien. Laten we beginnen.

Database-implementatie

Eerst moeten we onze PostgreSQL-database installeren. Hiervoor gaan we ervan uit dat je ClusterControl hebt geïnstalleerd.

Om een ​​implementatie uit te voeren vanuit ClusterControl, selecteert u eenvoudig de optie "Deploy" en volgt u de instructies die verschijnen.

Bij het selecteren van PostgreSQL moeten we Gebruiker, Sleutel of Wachtwoord en poort specificeren om via SSH verbinding te maken met onze servers. We hebben ook een naam nodig voor ons nieuwe cluster en als we willen dat ClusterControl de bijbehorende software en configuraties voor ons installeert.

Na het instellen van de SSH-toegangsinformatie, moeten we de databasegebruiker, -versie en datadir (optioneel) definiëren. We kunnen ook specificeren welke repository we moeten gebruiken.

In de volgende stap moeten we onze servers toevoegen aan het cluster dat we gaan maken.

Bij het toevoegen van onze servers kunnen we IP of hostnaam invoeren.

In de laatste stap kunnen we kiezen of onze replicatie synchroon of asynchroon zal zijn.

We kunnen de status van het maken van ons nieuwe cluster volgen via de ClusterControl-activiteitenmonitor.

Zodra de taak is voltooid, kunnen we onze cluster zien in het hoofdscherm van ClusterControl.

Zodra we ons cluster hebben gemaakt, kunnen we er verschillende taken op uitvoeren, zoals het toevoegen van een load balancer (HAProxy) of een nieuwe replica.

ClusterControlSingle Console voor uw gehele database-infrastructuurOntdek wat er nog meer nieuw is in ClusterControlInstalleer ClusterControl GRATIS

Load Balancer-implementatie

Om een ​​load balancer-implementatie uit te voeren, in dit geval HAProxy, selecteert u de optie "Load Balancer toevoegen" in de clusteracties en vult u de gevraagde informatie in.

We hoeven alleen IP/Naam, poort, beleid en de knooppunten die we gaan gebruiken toe te voegen. HAProxy is standaard geconfigureerd door ClusterControl met twee verschillende poorten, een read-write en een read-only. In de lees-schrijfpoort is alleen de master UP. In geval van een storing zal ClusterControl de meest geavanceerde slave promoten en de HAProxy-configuratie wijzigen om de nieuwe master in te schakelen en de oude uit te schakelen. Op deze manier hebben we een automatische failover in geval van storing.

Als we de vorige stappen hebben gevolgd, zouden we de volgende topologie moeten hebben:

We hebben dus een enkel eindpunt gemaakt in de toepassingsserver met HAProxy. Nu kunnen we dit eindpunt in de toepassing gebruiken als een localhost-verbinding.

WordPress-installatie

Laten we WordPress op onze applicatieserver installeren en deze configureren om verbinding te maken met de PostgreSQL-database met behulp van de lokale HAProxy-poort 3307.

Installeer eerst de benodigde pakketten op de applicatieserver.

$ yum install httpd php php-mysql php-pgsql postgresql
$ systemctl start httpd && systemctl enable httpd

Download de nieuwste WordPress-versie en verplaats deze naar de hoofdmap van het apache-document.

$ wget https://wordpress.org/latest.tar.gz
$ tar zxf latest.tar.gz
$ mv wordpress /var/www/html/

Download de WPPG-plug-in en verplaats deze naar de map met Wordpress-plug-ins.

$ wget https://downloads.wordpress.org/plugin/wppg.1.0.1.zip
$ unzip wppg.1.0.1.zip
$ mv wppg /var/www/html/wordpress/wp-content/plugins/

Kopieer het bestand db.php naar de map wp-content. Bewerk het dan en wijzig het pad 'PG4WP_ROOT':

$ cp /var/www/html/wordpress/wp-content/plugins/wppg/pg4wp/db.php /var/www/html/wordpress/wp-content/
$ vi /var/www/html/wordpress/wp-content/db.php
define( 'PG4WP_ROOT', ABSPATH.'wp-content/plugins/wppg/pg4wp');

Hernoem de wp-config.php en wijzig de database-informatie:

$ mv /var/www/html/wordpress/wp-config-sample.php /var/www/html/wordpress/wp-config.php
$ vi /var/www/html/wordpress/wp-config.php
define( 'DB_NAME', 'wordpressdb' );
define( 'DB_USER', 'wordpress' );
define( 'DB_PASSWORD', 'wpPassword' );
define( 'DB_HOST', 'localhost:3307' );

Vervolgens moeten we de database en de toepassingsgebruiker in de PostgreSQL-database maken. Op het hoofdknooppunt:

$ postgres=# CREATE DATABASE wordpressdb;
CREATE DATABASE
$ postgres=# CREATE USER wordpress WITH PASSWORD 'wpPassword';
CREATE ROLE
$ postgres=# GRANT ALL PRIVILEGES ON DATABASE wordpressdb TO wordpress;
GRANT

En bewerk het bestand pg_hba.conf om de verbinding vanaf de toepassingsserver toe te staan.

$ Vi /var/lib/pgsql/11/data/pg_hba.conf
host  all  all  192.168.100.153/24  md5
$ systemctl reload postgresql-11

Zorg ervoor dat u er toegang toe hebt vanaf de toepassingsserver:

$ psql -hlocalhost -p3307 -Uwordpress wordpressdb
Password for user wordpress:
psql (9.2.24, server 11.2)
WARNING: psql version 9.2, server version 11.0.
         Some psql features might not work.
Type "help" for help.
wordpressdb=>

Ga nu naar install.php in de webbrowser, in ons geval is het IP-adres voor de applicatieserver 192.168.100.153, dus we gaan naar:

http://192.168.100.153/wordpress/wp-admin/install.php

Voeg de sitetitel, gebruikersnaam en wachtwoord toe om toegang te krijgen tot het beheerdersgedeelte en uw e-mailadres.

Ga ten slotte naar Plug-ins -> Geïnstalleerde plug-ins en activeer de WPPG-plug-in.

Conclusie

Nu hebben we WordPress draaiend met PostgreSQL door een enkel eindpunt te gebruiken. We kunnen onze clusteractiviteit op ClusterControl volgen door de verschillende statistieken, dashboards of vele prestatie- en beheerfuncties te controleren.

Er zijn verschillende manieren om WordPress te implementeren met PostgreSQL. Het kan zijn door een andere plug-in te gebruiken, of door WordPress zoals gewoonlijk te installeren en de plug-in later toe te voegen, maar in ieder geval, zoals we al zeiden, wordt PostgreSQL niet officieel ondersteund door WordPress, dus we moeten een uitgebreid testproces uitvoeren als we dat willen gebruik deze topologie in productie.


  1. Een database exporteren met behulp van de opdrachtregel

  2. InMemory DUPLICATE Verwarring in Oracle RAC

  3. Een tabel koppelen aan een backend-database in Access 2016

  4. Vind niet-ASCII-tekens in varchar-kolommen met behulp van SQL Server