WordPress е софтуер с отворен код, който можете да използвате, за да създадете свой уебсайт, блог или приложение. Има много дизайни и функции/приставки, които да добавите към вашата WordPress инсталация. WordPress е безплатен софтуер, но има много търговски плъгини за подобряването му в зависимост от вашите изисквания.
WordPress ви улеснява да управлявате съдържанието си и е наистина гъвкав. Създайте чернови, насрочете публикуване и разгледайте ревизиите на публикациите си. Направете съдържанието си публично или частно и защитете публикациите и страниците с парола.
За да стартирате WordPress, трябва да имате поне PHP версия 5.2.4+, MySQL версия 5.0+ (или MariaDB) и Apache или Nginx. Някои от тези версии са достигнали EOL и може да изложите сайта си на уязвимости в сигурността, така че трябва да инсталирате най-новата налична версия според вашата среда.
Както видяхме, в момента WordPress поддържа само MySQL и MariaDB двигателите на базата данни. WPPG е плъгин, базиран на PG4WP плъгин, който ви дава възможност да инсталирате и използвате WordPress с база данни PostgreSQL като бекенд. Той работи, като заменя извикванията към специфични за MySQL функции с общи извиквания, които ги съпоставят с други функции на базата данни и пренаписва SQL заявки в движение, когато е необходимо.
За този блог ще инсталираме 1 сървър на приложения с WordPress 5.1.1 и HAProxy, 1.5.18 в същия сървър и 2 възела на база данни PostgreSQL 11 (Master-Standby). Цялата операционна система ще бъде CentOS 7. За внедряването на бази данни и балансиране на натоварването ще използваме системата ClusterControl.
Това е основна среда. Можете да го подобрите, като добавите повече функции за висока наличност, както можете да видите тук. И така, да започнем.
Разгръщане на база данни
Първо, трябва да инсталираме нашата база данни PostgreSQL. За това ще приемем, че имате инсталиран ClusterControl.
За да извършите внедряване от ClusterControl, просто изберете опцията „Внедряване“ и следвайте инструкциите, които се появяват.
Когато избираме PostgreSQL, трябва да посочим потребител, ключ или парола и порт за свързване чрез SSH към нашите сървъри. Също така имаме нужда от име за нашия нов клъстер и ако искаме ClusterControl да инсталира съответния софтуер и конфигурации вместо нас.
След като настроим информацията за SSH достъп, трябва да дефинираме потребителя на базата данни, версията и datadir (по избор). Можем също да посочим кое хранилище да използваме.
В следващата стъпка трябва да добавим нашите сървъри към клъстера, който ще създадем.
Когато добавяме нашите сървъри, можем да въведем IP или име на хост.
В последната стъпка можем да изберем дали нашата репликация ще бъде синхронна или асинхронна.
Можем да наблюдаваме състоянието на създаването на нашия нов клъстер от монитора на активността на ClusterControl.
След като задачата приключи, можем да видим нашия клъстер в главния екран на ClusterControl.
След като създадем нашия клъстер, можем да изпълним няколко задачи върху него, като добавяне на балансьор на натоварване (HAProxy) или нова реплика.
ClusterControlЕдинична конзола за цялата ви инфраструктура на базата данни Открийте какво още е новото в ClusterControlИнсталирайте ClusterControl БЕЗПЛАТНОРазгръщане на Load Balancer
За да извършите разгръщане на балансиране на натоварването, в този случай HAProxy, изберете опцията „Добавяне на балансьор на натоварване“ в действията на клъстера и попълнете исканата информация.
Трябва само да добавим IP/име, порт, политика и възлите, които ще използваме. По подразбиране HAProxy е конфигуриран от ClusterControl с два различни порта, един за четене-запис и един само за четене. В порта за четене-запис само главният е UP. В случай на неуспех, ClusterControl ще популяризира най-модерния подчинен и ще промени конфигурацията на HAProxy, за да активира новия главен и да деактивира стария. По този начин ще имаме автоматично преминаване при отказ в случай на неуспех.
Ако следвахме предишните стъпки, трябва да имаме следната топология:
И така, имаме единична крайна точка, създадена в сървъра на приложения с HAProxy. Сега можем да използваме тази крайна точка в приложението като връзка с локален хост.
Инсталиране на WordPres
Нека да инсталираме WordPress на нашия сървър на приложения и да го конфигурираме да се свързва с базата данни PostgreSQL, като използваме локалния HAProxy порт 3307.
Първо инсталирайте необходимите пакети на сървъра на приложения.
$ yum install httpd php php-mysql php-pgsql postgresql
$ systemctl start httpd && systemctl enable httpd
Изтеглете най-новата версия на WordPress и я преместете в корена на документа на apache.
$ wget https://wordpress.org/latest.tar.gz
$ tar zxf latest.tar.gz
$ mv wordpress /var/www/html/
Изтеглете приставката WPPG и я преместете в директорията на wordpress плъгини.
$ 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/
Копирайте файла db.php в директорията wp-content. След това го редактирайте и променете пътя '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');
Преименувайте wp-config.php и променете информацията за базата данни:
$ 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' );
След това трябва да създадем базата данни и потребителя на приложението в базата данни PostgreSQL. На главния възел:
$ 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
И редактирайте файла pg_hba.conf, за да разрешите връзката от сървъра на приложения.
$ Vi /var/lib/pgsql/11/data/pg_hba.conf
host all all 192.168.100.153/24 md5
$ systemctl reload postgresql-11
Уверете се, че имате достъп до него от сървъра на приложения:
$ 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=>
Сега отидете на install.php в уеб браузъра, в нашия случай IP адресът за сървъра на приложения е 192.168.100.153, така че отиваме на:
http://192.168.100.153/wordpress/wp-admin/install.php
Добавете заглавието на сайта, потребителското име и паролата за достъп до администраторската секция и вашия имейл адрес.
Накрая отидете на Plugins -> Installed Plugins и активирайте приставката WPPG.
Заключение
Сега имаме WordPress, работещ с PostgreSQL, като използваме една крайна точка. Можем да наблюдаваме нашата клъстерна активност в ClusterControl, като проверяваме различните показатели, табла за управление или много функции за производителност и управление.
Има различни начини за внедряване на WordPress с PostgreSQL. Това може да бъде чрез използване на различен плъгин или чрез инсталиране на WordPress както обикновено и добавяне на плъгина по-късно, но във всеки случай, както споменахме, PostgreSQL не се поддържа официално от WordPress, така че трябва да извършим изчерпателен процес на тестване, ако искаме да използвайте тази топология в производството.