WordPress er en open source-software, du kan bruge til at oprette din hjemmeside, blog eller applikation. Der er mange designs og funktioner/plugins at tilføje til din WordPress installation. WordPress er en gratis software, men der er mange kommercielle plugins til at forbedre det afhængigt af dine krav.
WordPress gør det nemt for dig at administrere dit indhold, og det er virkelig fleksibelt. Opret udkast, planlæg offentliggørelse, og se på dine indlægsrevisioner. Gør dit indhold offentligt eller privat, og beskyt indlæg og sider med en adgangskode.
For at køre WordPress skal du mindst have PHP version 5.2.4+, MySQL version 5.0+ (eller MariaDB) og Apache eller Nginx. Nogle af disse versioner har nået EOL, og du kan udsætte dit websted for sikkerhedssårbarheder, så du bør installere den nyeste version, der er tilgængelig i henhold til dit miljø.
Som vi kunne se, understøtter WordPress i øjeblikket kun MySQL- og MariaDB-databasemotorerne. WPPG er et plugin baseret på PG4WP plugin, der giver dig mulighed for at installere og bruge WordPress med en PostgreSQL database som backend. Det fungerer ved at erstatte kald til MySQL-specifikke funktioner med generiske kald, der knytter dem til andre databasefunktioner og omskriver SQL-forespørgsler på farten, når det er nødvendigt.
Til denne blog installerer vi 1 applikationsserver med WordPress 5.1.1 og HAProxy, 1.5.18 på samme server og 2 PostgreSQL 11 databasenoder (Master-Standby). Hele operativsystemet vil være CentOS 7. Til databaserne og load balancer-implementeringen bruger vi ClusterControl-systemet.
Dette er et grundlæggende miljø. Du kan forbedre det ved at tilføje flere funktioner med høj tilgængelighed, som du kan se her. Så lad os starte.
Databaseimplementering
Først skal vi installere vores PostgreSQL-database. Til dette antager vi, at du har ClusterControl installeret.
For at udføre en implementering fra ClusterControl skal du blot vælge indstillingen "Deploy" og følge instruktionerne, der vises.
Når vi vælger PostgreSQL, skal vi angive bruger, nøgle eller adgangskode og port for at forbinde med SSH til vores servere. Vi har også brug for et navn til vores nye klynge, og hvis vi ønsker, at ClusterControl skal installere den tilsvarende software og konfigurationer for os.
Efter opsætning af SSH-adgangsoplysningerne skal vi definere databasebruger, version og datadir (valgfrit). Vi kan også angive, hvilket lager der skal bruges.
I det næste trin skal vi tilføje vores servere til den klynge, som vi skal oprette.
Når vi tilføjer vores servere, kan vi indtaste IP eller værtsnavn.
I det sidste trin kan vi vælge, om vores replikering skal være Synchronous eller Asynchronous.
Vi kan overvåge status for oprettelsen af vores nye klynge fra ClusterControl-aktivitetsmonitoren.
Når opgaven er færdig, kan vi se vores klynge på hovedskærmen for ClusterControl.
Når vi har oprettet vores klynge, kan vi udføre flere opgaver på den, såsom at tilføje en belastningsbalancer (HAProxy) eller en ny replika.
ClusterControlSingle Console for hele din databaseinfrastrukturFind ud af, hvad der ellers er nyt i ClusterControlInstaller ClusterControl GRATISLoad Balancer-implementering
For at udføre en load balancer-implementering, i dette tilfælde, HAProxy, skal du vælge indstillingen "Add Load Balancer" i klyngehandlingerne og udfylde de anmodede oplysninger.
Vi skal kun tilføje IP/navn, port, politik og de noder, vi skal bruge. Som standard er HAProxy konfigureret af ClusterControl med to forskellige porte, en read-write og en read-only. I læse-skriveporten er det kun masteren, der er OP. I tilfælde af fejl vil ClusterControl promovere den mest avancerede slave, og den ændrer HAProxy-konfigurationen for at aktivere den nye master og deaktivere den gamle. På denne måde vil vi have automatisk failover i tilfælde af fejl.
Hvis vi fulgte de foregående trin, skulle vi have følgende topologi:
Så vi har et enkelt slutpunkt oprettet i applikationsserveren med HAProxy. Nu kan vi bruge dette slutpunkt i applikationen som en lokal værtsforbindelse.
WordPress-installation
Lad os installere WordPress på vores applikationsserver og konfigurere den til at oprette forbindelse til PostgreSQL-databasen ved at bruge den lokale HAProxy-port 3307.
Først skal du installere de nødvendige pakker på applikationsserveren.
$ yum install httpd php php-mysql php-pgsql postgresql
$ systemctl start httpd && systemctl enable httpd
Download den seneste WordPress-version, og flyt den til apache-dokumentroden.
$ wget https://wordpress.org/latest.tar.gz
$ tar zxf latest.tar.gz
$ mv wordpress /var/www/html/
Download WPPG-plugin'et og flyt det til wordpress-plugin-mappen.
$ 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/
Kopier filen db.php til wp-content-mappen. Derefter skal du redigere den og ændre 'PG4WP_ROOT'-stien:
$ 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');
Omdøb wp-config.php og skift databaseinformationen:
$ 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' );
Derefter skal vi oprette databasen og applikationsbrugeren i PostgreSQL-databasen. På masternoden:
$ 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
Og rediger filen pg_hba.conf for at tillade forbindelse fra applikationsserveren.
$ Vi /var/lib/pgsql/11/data/pg_hba.conf
host all all 192.168.100.153/24 md5
$ systemctl reload postgresql-11
Sørg for, at du kan få adgang til det fra applikationsserveren:
$ 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=>
Gå nu til install.php i webbrowseren, i vores tilfælde er IP-adressen for applikationsserveren 192.168.100.153, så vi går til:
http://192.168.100.153/wordpress/wp-admin/install.php
Tilføj webstedets titel, brugernavn og adgangskode for at få adgang til admin-sektionen og din e-mail-adresse.
Til sidst, gå til Plugins -> Installerede plugins og aktiver WPPG plugin.
Konklusion
Nu har vi WordPress kørende med PostgreSQL ved at bruge et enkelt slutpunkt. Vi kan overvåge vores klyngeaktivitet på ClusterControl ved at tjekke de forskellige metrics, dashboards eller mange ydeevne- og administrationsfunktioner.
Der er forskellige måder at implementere WordPress med PostgreSQL. Det kan være ved at bruge et andet plugin, eller ved at installere WordPress som normalt og tilføje pluginnet senere, men under alle omstændigheder, som vi nævnte, er PostgreSQL ikke officielt understøttet af WordPress, så vi skal udføre en udtømmende testproces, hvis vi vil bruge denne topologi i produktionen.