{"id":826,"date":"2016-08-07T21:10:02","date_gmt":"2016-08-07T15:40:02","guid":{"rendered":"https:\/\/pheonixsolutions.com\/blog\/?p=826"},"modified":"2026-09-08T16:21:57","modified_gmt":"2026-09-08T10:51:57","slug":"install-moodle-with-mariadb-in-ubuntu-14-04","status":"publish","type":"post","link":"https:\/\/pheonixsolutions.com\/blog\/install-moodle-with-mariadb-in-ubuntu-14-04\/","title":{"rendered":"How to Install Moodle with MariaDB on Ubuntu 14.04"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Introduction<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Moodle is a free and open-source Learning Management System (LMS) written in PHP. It can be used to create and manage online learning platforms, courses, users, and educational content.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In this guide, we will walk through the step-by-step process of setting up Moodle with <strong>MariaDB or MySQL<\/strong> on an <strong>Apache web server with PHP-FPM support<\/strong> on Ubuntu 14.04.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For Apache, we use PHP-FPM with FastCGI support because it can provide better performance compared with the traditional Apache <code>mod_php<\/code> approach. PHP-FPM also allows the web server to pass PHP requests to a dedicated PHP process manager and provides additional flexibility when configuring PHP applications.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">MariaDB and MySQL provide similar database functionality for this setup, so the guide includes configuration steps for both database options.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Prerequisites<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Before starting the Moodle installation, make sure you have:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>An Ubuntu 14.04 server.<\/li>\n\n\n\n<li>Root or <code>sudo<\/code> access.<\/li>\n\n\n\n<li>Apache web server access.<\/li>\n\n\n\n<li>Basic knowledge of Linux commands.<\/li>\n\n\n\n<li>Basic knowledge of MySQL or MariaDB.<\/li>\n\n\n\n<li>A server IP address or domain name for accessing Moodle.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Implementation<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Step 1: Install the Required Packages<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Install Apache, MariaDB, PHP, PHP-FPM, and the required FastCGI module:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo apt-get install apache2 mariadb-server php5 libapache2-mod-fastcgi php5-fpm<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Step 2: Install Moodle Dependencies<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Install the additional packages required by Moodle:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo apt-get install graphviz aspell php5-pspell php5-curl php5-gd php5-intl php5-mysql php5-xmlrpc php5-ldap git-core<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">These packages provide additional PHP functionality and supporting utilities required by Moodle.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 3: Configure PHP-FPM with Apache<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Configure Apache to communicate with PHP-FPM using FastCGI.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Enable Apache Proxy Modules<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Enable the required Apache proxy modules:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">cp -p \/etc\/apache2\/mods-available\/proxy.* \/etc\/apache2\/mods-enabled\/\ncp -p \/etc\/apache2\/mods-available\/proxy_fcgi.load \/etc\/apache2\/mods-enabled\/<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Add PHP-FPM Proxy Configuration<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Add the following configuration inside the Apache VirtualHost configuration:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ProxyPassMatch ^\/(.*\\.php(\/.*)?)$ fcgi:\/\/127.0.0.1:9000\/var\/www\/html\/$1<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Configure PHP-FPM to Listen on TCP<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">By default, PHP-FPM may listen through a Unix socket. For this configuration, change it to listen on TCP port <code>9000<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Edit the PHP-FPM pool configuration:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">vi \/etc\/php5\/fpm\/pool.d\/www.conf<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Comment out:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">listen = \/var\/run\/php5-fpm.sock<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Add:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">listen = 127.0.0.1:9000<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Restart Apache and PHP-FPM after making the changes.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 4: Download the Stable Moodle Version<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Clone the Moodle repository from Git:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">cd \/opt\nsudo git clone git:\/\/git.moodle.org\/moodle.git\ncd moodle<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">List the available branches:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo git branch -a<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Select the required stable branch:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo git branch --track remotes\/origin\/MOODLE_31_STABLE origin\/MOODLE_31_STABLE<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Checkout the stable branch:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo git checkout MOODLE_31_STABLE<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Step 5: Copy Moodle Files and Configure the Directory Structure<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Copy the Moodle files to the Apache document root:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo cp -R \/opt\/moodle\/* \/var\/www\/html\/<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Create the Moodle data directory:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo mkdir \/var\/moodledata<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Set the ownership:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo chown -R www-data \/var\/moodledata<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Set the required permissions:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo chmod -R 777 \/var\/moodledata\nsudo chmod -R 0755 \/var\/www\/html\/moodle<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Restart Apache:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo service apache2 restart<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Step 6: Configure the Database<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Moodle can be configured with either MySQL or MariaDB.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Option 1: MySQL Setup<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Make InnoDB the default storage engine by editing:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/etc\/mysql\/my.cnf<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Under the <code>[mysqld]<\/code> section and Basic Settings, add:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">default-storage-engine = innodb<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Restart MySQL:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo service mysql restart<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Create the Moodle database:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">CREATE DATABASE IF NOT EXISTS moodle DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Create the Moodle database user and grant the required permissions:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,CREATE TEMPORARY TABLES,DROP,INDEX,ALTER ON moodle.* TO moodle_user@localhost IDENTIFIED BY 'passwordformoodle_user';<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Option 2: MariaDB Setup<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Verify that InnoDB is available as the storage engine.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">From the MariaDB console, run:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">show engines<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Make sure InnoDB is available and configured as required.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Create the Moodle database:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">CREATE DATABASE IF NOT EXISTS moodle DEFAULT CHARACTER SET = utf8 COLLATE = utf8_unicode_ci;<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Create the Moodle database user:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,CREATE TEMPORARY TABLES,DROP,INDEX,ALTER ON moodle.* TO moodle_user@localhost IDENTIFIED BY 'passwordformoodle_user';<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Step 7: Complete the Moodle Setup<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Before starting the browser-based installation, set the required permissions:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">chmod -R 777 \/var\/www\/<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Open the server IP address in your browser:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">http:\/\/&lt;IP address of your server><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The Moodle installation wizard will start.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Database Type<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Select:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>mysqli<\/code> if you selected MySQL.<\/li>\n\n\n\n<li><code>MariaDB<\/code> if you selected MariaDB.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Database Settings<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Enter the database details created during the previous step:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><th>Setting<\/th><th>Value<\/th><\/tr><tr><td>Host server<\/td><td><code>localhost<\/code><\/td><\/tr><tr><td>Database<\/td><td><code>moodle<\/code><\/td><\/tr><tr><td>User<\/td><td><code>moodle_user<\/code><\/td><\/tr><tr><td>Password<\/td><td><code>passwordformoodle_user<\/code><\/td><\/tr><tr><td>Tables Prefix<\/td><td><code>mdl_<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Environment Checks<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Moodle will perform environment checks to verify whether the required server configuration and dependencies are available.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If any requirement is missing or incorrectly configured, the installer will display an error that needs to be resolved before continuing.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Follow the remaining installation steps and provide the required administrator details.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">After completing the installation, restore the required permissions:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">chmod -R 755 \/var\/www\/<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Moodle can be configured on Ubuntu with Apache, PHP-FPM, and either MariaDB or MySQL as the database backend.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In this setup, PHP-FPM is configured to communicate with Apache through FastCGI, while Moodle is installed from its Git repository and configured with a dedicated database and <code>moodledata<\/code> directory.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Once the environment checks are completed and the administrator account is configured, Moodle is ready to use.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Frequently Asked Questions<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">1. Can Moodle use MariaDB instead of MySQL?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Yes. The original setup supports both MariaDB and MySQL as the database backend.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2. Why is PHP-FPM used with Apache?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">PHP-FPM provides a separate PHP process manager that allows Apache to pass PHP requests through FastCGI instead of processing PHP through the traditional <code>mod_php<\/code> approach.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3. Where is Moodle&#8217;s data directory configured?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The guide creates the Moodle data directory at:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/var\/moodledata<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The directory is given <code>www-data<\/code> ownership so that the web server can access it.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Related Articles<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/pheonixsolutions.com\/blog\/how-to-change-mysql-user-authentication-plugin-for-password\/\">How to Change MySQL User Authentication Plugin for Password?<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/pheonixsolutions.com\/blog\/managing-multiple-php-versions-on-ubuntu-using-apt\/\">Managing Multiple PHP Versions on Ubuntu Using APT<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Talk to our experts<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Looking for the right technology solution for your business? Our team of experts can help you with development, cloud, DevOps, design, and a wide range of other technology needs. Get in touch with our team&nbsp;<a href=\"https:\/\/pheonixsolutions.com\/contact\" target=\"_blank\" rel=\"noreferrer noopener\">here<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction Moodle is a free and open-source Learning Management System (LMS) written in PHP. It can be used to create [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[1022],"tags":[],"class_list":["post-826","post","type-post","status-publish","format-standard","hentry","category-web-architecture","psol-cat-web-architecture"],"jetpack_publicize_connections":[],"jetpack_shortlink":"https:\/\/wp.me\/phn2x7-dk","jetpack_sharing_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/posts\/826","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/comments?post=826"}],"version-history":[{"count":1,"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/posts\/826\/revisions"}],"predecessor-version":[{"id":11542,"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/posts\/826\/revisions\/11542"}],"wp:attachment":[{"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/media?parent=826"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/categories?post=826"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/tags?post=826"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}