{"id":2372,"date":"2024-06-02T16:40:42","date_gmt":"2024-06-02T13:40:42","guid":{"rendered":"https:\/\/www.fibacloud.com\/community\/tutorials\/?p=2372"},"modified":"2026-10-04T22:57:46","modified_gmt":"2026-10-04T19:57:46","slug":"how-to-install-wordpress-on-vps-server","status":"publish","type":"post","link":"https:\/\/www.fibacloud.com\/community\/tutorials\/en\/how-to-install-wordpress-on-vps-server\/","title":{"rendered":"Install WordPress on an Ubuntu 24.04 VPS"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"2372\" class=\"elementor elementor-2372\" data-elementor-post-type=\"post\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c8b612c e-con-full e-flex e-con e-parent\" data-id=\"c8b612c\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-26cadd5 elementor-widget elementor-widget-text-editor\" data-id=\"26cadd5\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<style>\/*! elementor - v3.21.0 - 08-05-2024 *\/\n.elementor-widget-text-editor.elementor-drop-cap-view-stacked .elementor-drop-cap{background-color:#69727d;color:#fff}.elementor-widget-text-editor.elementor-drop-cap-view-framed .elementor-drop-cap{color:#69727d;border:3px solid;background-color:transparent}.elementor-widget-text-editor:not(.elementor-drop-cap-view-default) .elementor-drop-cap{margin-top:8px}.elementor-widget-text-editor:not(.elementor-drop-cap-view-default) .elementor-drop-cap-letter{width:1em;height:1em}.elementor-widget-text-editor .elementor-drop-cap{float:left;text-align:center;line-height:1;font-size:50px}.elementor-widget-text-editor .elementor-drop-cap-letter{display:inline-block}<\/style>\t\t\t\t<p>Running WordPress on a VPS means managing its web server, PHP runtime, database, HTTPS and ongoing maintenance together. This guide targets <strong>a new Ubuntu 24.04 LTS server with Apache 2.4, PHP 8.3 and an existing MySQL 8.4 LTS installation<\/strong>. Do not apply it over a control-panel installation or an existing website.<\/p>\n<figure class=\"fc-editorial-figure\" data-fc-visual=\"20260920\" aria-labelledby=\"fc-editorial-caption-2372\"><a href=\"https:\/\/www.fibacloud.com\/community\/tutorials\/wp-content\/uploads\/community-editorial-20260920\/fc-wordpress-en-inline-20260920.webp\" target=\"_blank\" rel=\"noopener\" aria-label=\"Open full-size illustration\"><picture><source media=\"(max-width: 600px)\" srcset=\"https:\/\/www.fibacloud.com\/community\/tutorials\/wp-content\/uploads\/community-editorial-20260920\/fc-wordpress-en-mobile-20260920.webp\" width=\"720\" height=\"1140\"><img loading=\"lazy\" src=\"https:\/\/www.fibacloud.com\/community\/tutorials\/wp-content\/uploads\/community-editorial-20260920\/fc-wordpress-en-inline-20260920.webp\" srcset=\"https:\/\/www.fibacloud.com\/community\/tutorials\/wp-content\/uploads\/community-editorial-20260920\/fc-wordpress-en-inline-20260920.webp 1440w, https:\/\/www.fibacloud.com\/community\/tutorials\/wp-content\/uploads\/community-editorial-20260920\/fc-wordpress-en-inline-20260920-300x242.webp 300w, https:\/\/www.fibacloud.com\/community\/tutorials\/wp-content\/uploads\/community-editorial-20260920\/fc-wordpress-en-inline-20260920-1024x825.webp 1024w, https:\/\/www.fibacloud.com\/community\/tutorials\/wp-content\/uploads\/community-editorial-20260920\/fc-wordpress-en-inline-20260920-768x619.webp 768w\" sizes=\"auto, (max-width: 900px) 100vw, 820px\" width=\"1440\" height=\"1160\" alt=\"How WordPress handles a request\" class=\"wp-image-2554\"  decoding=\"async\"><\/picture><\/a><figcaption id=\"fc-editorial-caption-2372\"><strong>How WordPress handles a request<\/strong> The web server can serve static files directly. For dynamic requests, PHP runs WordPress; WordPress reads the database as needed and builds the response.<details><summary>Step-by-step explanation<\/summary><ol><li>Receive: The web server accepts HTTPS requests.<\/li><li>Route: Serve static assets directly.<\/li><li>Execute: Run PHP\/WordPress for dynamic content.<\/li><li>Query: Read the data needed from the database.<\/li><\/ol><\/details><\/figcaption><\/figure>\n<h2>Prerequisites and deployment model<\/h2>\n<p>Prepare a sudo-capable user, a domain you control, DNS access and a separate test environment. Replace <code>site.example.com<\/code> consistently with your own hostname. WordPress recommends PHP 8.3 or later, MySQL 8.0 or later or MariaDB 10.11 or later, and HTTPS. This article uses MySQL rather than mixing commands for both database products.<\/p>\n<p>First complete the version and package-origin checks in the <a href=\"https:\/\/www.fibacloud.com\/community\/tutorials\/en\/mysql-installation-and-management-on-ubuntu\/\">MySQL installation guide for Ubuntu<\/a>. This workflow requires a working MySQL 8.4 server; it does not assume Ubuntu&#8217;s <code>mysql-server<\/code> package automatically provides 8.4 and does not replace an existing database package.<\/p>\n<p>The deployment account manages code; Apache writes only to the media upload directory. Core, plugin and theme updates use a controlled deployment process. A different model that permits dashboard installation and updates needs its own permission design and security-update ownership.<\/p>\n<p>Complete package, service, public TLS, WordPress installation and restore acceptance checks on a matching test server. The checklist below is not a claim that this complete environment has already been executed and certified.<\/p>\n<h2>1. Prepare the server and packages<\/h2>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-21c6230 elementor-widget elementor-widget-text-editor\" data-id=\"21c6230\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<pre><code class=\"language-bash\">cat \/etc\/os-release\nsudo ss -ltnp '( sport = :80 or sport = :443 or sport = :3306 )'\nsudo apt update\nsudo apt install apache2 libapache2-mod-php8.3 php8.3-mysql php8.3-curl php8.3-gd php8.3-mbstring php8.3-xml php8.3-zip curl\nphp -v\nphp -m\nmysql --version\nmysql -u root -p --execute=\"SELECT VERSION();\"<\/code><\/pre>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0e81877 elementor-widget elementor-widget-text-editor\" data-id=\"0e81877\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>If another application owns these ports, review its configuration first. Keep MySQL off the public internet. The application connects to a database on the same server, so neither disabling the firewall nor exposing port 3306 is required.<\/p>\n<h2>2. Configure HTTPS before installing WordPress<\/h2>\n<p>Create the new document root:<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c19de46 elementor-widget elementor-widget-text-editor\" data-id=\"c19de46\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<pre><code class=\"language-bash\">sudo install -d -o \"$(id -u)\" -g \"$(id -g)\" -m 0755 \/var\/www\/fc-wordpress\/public\nprintf '%s\\n' 'TLS preparation' &gt; \/var\/www\/fc-wordpress\/public\/index.html\nsudo a2enmod rewrite<\/code><\/pre>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f5ffdcb elementor-widget elementor-widget-text-editor\" data-id=\"f5ffdcb\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>Create <code>\/etc\/apache2\/sites-available\/fc-wordpress.conf<\/code> with the following virtual host. Inspect an existing file with that name before changing it.<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-915386e elementor-widget elementor-widget-text-editor\" data-id=\"915386e\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<pre><code class=\"language-apache\">&lt;VirtualHost *:80&gt;\n    ServerName site.example.com\n    DocumentRoot \/var\/www\/fc-wordpress\/public\n    &lt;Directory \/var\/www\/fc-wordpress\/public&gt;\n        Options -Indexes +FollowSymLinks\n        AllowOverride FileInfo\n        Require all granted\n    &lt;\/Directory&gt;\n    &lt;Directory \/var\/www\/fc-wordpress\/public\/wp-content\/uploads&gt;\n        &lt;FilesMatch \"\\.php$\"&gt;\n            Require all denied\n        &lt;\/FilesMatch&gt;\n    &lt;\/Directory&gt;\n    &lt;Files \"wp-config.php\"&gt;\n        Require all denied\n    &lt;\/Files&gt;\n    ErrorLog ${APACHE_LOG_DIR}\/fc-wordpress-error.log\n    CustomLog ${APACHE_LOG_DIR}\/fc-wordpress-access.log combined\n&lt;\/VirtualHost&gt;<\/code><\/pre>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d110859 elementor-widget elementor-widget-text-editor\" data-id=\"d110859\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<pre><code class=\"language-bash\">sudo a2ensite fc-wordpress.conf\nsudo apache2ctl configtest\nsudo systemctl reload apache2\nsudo apt install certbot python3-certbot-apache\nsudo certbot --apache -d site.example.com\nsudo certbot renew --dry-run<\/code><\/pre>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2a84958 elementor-widget elementor-widget-text-editor\" data-id=\"2a84958\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>Reload only after <strong>Syntax OK<\/strong>. DNS and your certificate validation method must be ready. Verify HTTPS and HTTP redirection using the actual hostname before creating administrator credentials. Check for unwanted AAAA records as well.<\/p>\n<h2>3. Create a separate database and account<\/h2>\n<p>Use the administrator password configured during Oracle MySQL installation; never give WordPress the root account. <code>-p<\/code> prompts interactively. Use <code>sudo mysql<\/code> only if you have confirmed that this account actually uses socket authentication:<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-901b5a1 elementor-widget elementor-widget-text-editor\" data-id=\"901b5a1\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<pre><code class=\"language-bash\">env MYSQL_HISTFILE=\/dev\/null mysql -u root -p<\/code><\/pre>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ac90c51 elementor-widget elementor-widget-text-editor\" data-id=\"ac90c51\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>Replace the password placeholder with a strong, unique password generated locally. If the example names already exist, choose new ones instead of deleting existing data.<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-50b9da0 elementor-widget elementor-widget-text-editor\" data-id=\"50b9da0\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<pre><code class=\"language-sql\">CREATE DATABASE fc_wordpress CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;\nCREATE USER 'fc_wp'@'localhost' IDENTIFIED BY 'REPLACE_WITH_A_UNIQUE_PASSWORD';\nGRANT ALL PRIVILEGES ON fc_wordpress.* TO 'fc_wp'@'localhost';\nSHOW GRANTS FOR 'fc_wp'@'localhost';\nEXIT;<\/code><\/pre>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-67bae4d elementor-widget elementor-widget-text-editor\" data-id=\"67bae4d\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>Privileges apply only to the WordPress schema: there is no global <code>*.*<\/code> grant, access to another schema or <code>GRANT OPTION<\/code>. Because core and plugin updates can create and alter tables, this account acts as the application&#8217;s schema owner. Separate a narrower runtime account only after testing the application&#8217;s and updater&#8217;s actual requirements. Keep passwords out of command-line arguments, Git and public files.<\/p>\n<h2>4. Download WordPress from its official source<\/h2>\n<p>In a new working directory:<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b1ceed2 elementor-widget elementor-widget-text-editor\" data-id=\"b1ceed2\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<pre><code class=\"language-bash\">mkdir -p fc-wordpress-download\ncd fc-wordpress-download\ncurl --fail --location --proto '=https' --tlsv1.2 https:\/\/wordpress.org\/latest.tar.gz -o wordpress.tar.gz\nsha256sum wordpress.tar.gz &gt; wordpress-download.sha256\ntar --no-same-owner -xzf wordpress.tar.gz\nphp -r 'include \"wordpress\/wp-includes\/version.php\"; echo $wp_version, PHP_EOL;'\nsudo cp -a wordpress\/. \/var\/www\/fc-wordpress\/public\/<\/code><\/pre>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ab6a99b elementor-widget elementor-widget-text-editor\" data-id=\"ab6a99b\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>Record the version and archive hash in your maintenance notes. A local hash identifies the downloaded file; it is not independent signature verification. Use the official HTTPS source and test the selected version with your plugins and theme.<\/p>\n<p>Copy <code>wp-config-sample.php<\/code> to <code>wp-config.php<\/code> in the document root. Set the database to <code>fc_wordpress<\/code>, user to <code>fc_wp<\/code>, host to <code>localhost<\/code>, and enter your own password. Obtain unique authentication keys and salts from WordPress&#8217;s official salt generator rather than copying published secrets from an example.<\/p>\n<p>Before the \u201cstop editing\u201d line, add the following policy settings without defining any existing constant twice:<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-22d07fc elementor-widget elementor-widget-text-editor\" data-id=\"22d07fc\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<pre><code class=\"language-php\">define( 'DISALLOW_FILE_EDIT', true );\ndefine( 'DISALLOW_FILE_MODS', true );\ndefine( 'FORCE_SSL_ADMIN', true );<\/code><\/pre>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-31d887b elementor-widget elementor-widget-text-editor\" data-id=\"31d887b\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p><code>DISALLOW_FILE_MODS<\/code> disables dashboard plugin\/theme installation and automatic file updates. In this model, the deployment account must apply security updates promptly after testing. Read-only code is not a reason to leave software unpatched.<\/p>\n<h2>5. Limit filesystem permissions<\/h2>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-937d03e elementor-widget elementor-widget-text-editor\" data-id=\"937d03e\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<pre><code class=\"language-bash\">sudo chown -R \"$(id -un)\":www-data \/var\/www\/fc-wordpress\/public\nsudo find \/var\/www\/fc-wordpress\/public -type d -exec chmod 0750 {} \\;\nsudo find \/var\/www\/fc-wordpress\/public -type f -exec chmod 0640 {} \\;\nsudo install -d -o www-data -g www-data -m 0750 \/var\/www\/fc-wordpress\/public\/wp-content\/uploads<\/code><\/pre>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-09ec915 elementor-widget elementor-widget-text-editor\" data-id=\"09ec915\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>Apply this only to the new example site. Do not change permission trees belonging to other websites or a control panel. Grant access to any additional cache directory according to the plugin&#8217;s documentation instead of making all code writable by the web account.<\/p>\n<p>For permalinks, save the <code>.htaccess<\/code> rules provided by WordPress using the deployment account. Since the code tree is read-only to Apache, do not expect WordPress to write that file automatically. Confirm that the rules affect only this site. Remove the temporary <code>index.html<\/code> preparation page afterwards; retain the application&#8217;s <code>index.php<\/code>.<\/p>\n<h2>6. Install and verify the application<\/h2>\n<p>Open the installation wizard over HTTPS. Choose a unique administrator account and strong password, adding multifactor authentication where appropriate. Verify that the site&#8217;s configured URL uses HTTPS.<\/p>\n<p>Using a test account, check login, publishing a post, media uploads, permalinks, password-reset email delivery and required plugin functions. Review Site Health. Verify that <code>\/wp-config.php<\/code>, archives and SQL backups are not public and that missing pages return 404. Remove test-environment indexing restrictions only when the real public site is ready.<\/p>\n<h2>Backups, updates and troubleshooting<\/h2>\n<p>A backup must cover the database, <code>wp-content<\/code> and required configuration together. Protect secrets and store backups outside the document root. Restore into a separate database and hostname, preventing the copy from sending real email or triggering payments. Verify content, media and login before considering the backup usable.<\/p>\n<p><strong>Database connection error:<\/strong> check the service, <code>localhost<\/code>, credentials and schema privileges. <strong>Internal pages return 404:<\/strong> check rewrite support, <code>.htaccess<\/code> and <code>AllowOverride FileInfo<\/code>. <strong>Uploads fail:<\/strong> inspect the uploads directory&#8217;s ownership and write boundary. <strong>500 or blank page:<\/strong> inspect PHP and Apache logs without exposing detailed errors to visitors.<\/p>\n<p>Before updates, capture a consistent files\/database backup and rehearse the release in staging. Rollback needs matching application files and compatible database state. Dropping and reinstalling the live database is not a troubleshooting step.<\/p>\n<h2>Official references<\/h2>\n<ul>\n<li><a href=\"https:\/\/wordpress.org\/about\/requirements\/\" rel=\"nofollow noopener\" target=\"_blank\">WordPress system requirements<\/a><\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/advanced-administration\/before-install\/howto-install\/\" rel=\"nofollow noopener\" target=\"_blank\">Official installation procedure<\/a><\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/advanced-administration\/security\/hardening\/\" rel=\"nofollow noopener\" target=\"_blank\">WordPress hardening and file permissions<\/a><\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/advanced-administration\/security\/backup\/\" rel=\"nofollow noopener\" target=\"_blank\">WordPress backup scope<\/a><\/li>\n<li><a href=\"https:\/\/eff-certbot.readthedocs.io\/en\/stable\/using.html#apache\" rel=\"nofollow noopener\" target=\"_blank\">Certbot Apache plugin and renewal<\/a><\/li>\n<\/ul>\n<p class=\"fc-article-review-date\">Technical content and sources reviewed on October 4, 2026. Recheck the relevant official documentation when a version or provider changes.<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Install WordPress with Ubuntu 24.04, PHP 8.3 and MySQL 8.4: configure HTTPS first, limit file access and verify backups and restores.<\/p>\n","protected":false},"author":1,"featured_media":2553,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[233,235,237],"class_list":["post-2372","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorials-en","tag-fibacloud","tag-vps","tag-wordpress"],"lang":"en","translations":{"en":2372,"tr":1828},"pll_sync_post":[],"_links":{"self":[{"href":"https:\/\/www.fibacloud.com\/community\/tutorials\/wp-json\/wp\/v2\/posts\/2372","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.fibacloud.com\/community\/tutorials\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.fibacloud.com\/community\/tutorials\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.fibacloud.com\/community\/tutorials\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.fibacloud.com\/community\/tutorials\/wp-json\/wp\/v2\/comments?post=2372"}],"version-history":[{"count":13,"href":"https:\/\/www.fibacloud.com\/community\/tutorials\/wp-json\/wp\/v2\/posts\/2372\/revisions"}],"predecessor-version":[{"id":2385,"href":"https:\/\/www.fibacloud.com\/community\/tutorials\/wp-json\/wp\/v2\/posts\/2372\/revisions\/2385"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.fibacloud.com\/community\/tutorials\/wp-json\/wp\/v2\/media\/2553"}],"wp:attachment":[{"href":"https:\/\/www.fibacloud.com\/community\/tutorials\/wp-json\/wp\/v2\/media?parent=2372"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fibacloud.com\/community\/tutorials\/wp-json\/wp\/v2\/categories?post=2372"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fibacloud.com\/community\/tutorials\/wp-json\/wp\/v2\/tags?post=2372"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}