{"id":308298,"date":"2021-07-26T14:45:52","date_gmt":"2021-07-26T11:45:52","guid":{"rendered":"https:\/\/en.buradabiliyorum.com\/how-to-quickly-deploy-wordpress-as-a-docker-container-cloudsavvy-it\/"},"modified":"2021-07-26T14:45:52","modified_gmt":"2021-07-26T11:45:52","slug":"how-to-quickly-deploy-wordpress-as-a-docker-container-cloudsavvy-it","status":"publish","type":"post","link":"https:\/\/buradabiliyorum.com\/en\/how-to-quickly-deploy-wordpress-as-a-docker-container-cloudsavvy-it\/","title":{"rendered":"#How to Quickly Deploy WordPress as a Docker Container \u2013 CloudSavvy IT"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_84 counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<label for=\"ez-toc-cssicon-toggle-item-6a2979a7933fc\" class=\"ez-toc-cssicon-toggle-label\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #dd3333;color:#dd3333\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #dd3333;color:#dd3333\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/label><input type=\"checkbox\"  id=\"ez-toc-cssicon-toggle-item-6a2979a7933fc\" checked aria-label=\"Toggle\" \/><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-quickly-deploy-wordpress-as-a-docker-container-cloudsavvy-it\/#Getting_Started\" >Getting Started<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-quickly-deploy-wordpress-as-a-docker-container-cloudsavvy-it\/#Base_Images\" >Base Images<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-quickly-deploy-wordpress-as-a-docker-container-cloudsavvy-it\/#Deploying_Your_Stack\" >Deploying Your Stack<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-quickly-deploy-wordpress-as-a-docker-container-cloudsavvy-it\/#Next_Steps\" >Next Steps<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-quickly-deploy-wordpress-as-a-docker-container-cloudsavvy-it\/#Configuration_With_Docker_Secrets\" >Configuration With Docker Secrets<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-quickly-deploy-wordpress-as-a-docker-container-cloudsavvy-it\/#Adding_Your_Own_Site\" >Adding Your Own Site<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-quickly-deploy-wordpress-as-a-docker-container-cloudsavvy-it\/#Conclusion\" >Conclusion<\/a><\/li><\/ul><\/nav><\/div>\n<p><strong>&#8220;#How to Quickly Deploy WordPress as a Docker Container \u2013 CloudSavvy IT&#8221;<\/strong><\/p>\n<div id=\"article-content-area\">\n<figure style=\"width: 1200px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"type:primaryImage wp-image-12979 size-full\" srcset=\"https:\/\/www.cloudsavvyit.com\/p\/uploads\/2021\/07\/e8e83f21.jpg?width=398&amp;trim=1,1&amp;bg-color=000&amp;pad=1,1 400w, https:\/\/www.cloudsavvyit.com\/p\/uploads\/2021\/07\/e8e83f21.jpg?width=1198&amp;trim=1,1&amp;bg-color=000&amp;pad=1,1 1200w\" sizes=\"auto, 400w, 1200w\" src=\"https:\/\/www.cloudsavvyit.com\/p\/uploads\/2021\/07\/e8e83f21.jpg?width=1198&amp;trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"Photo of the WordPress logo on a laptop screen\" width=\"1200\" height=\"675\" data-crediturl=\"https:\/\/www.shutterstock.com\/image-photo\/poznan-pol-feb-6-2021-laptop-1942487578\" data-credittext=\"monticello\/Shutterstock.com\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><figcaption class=\"wp-caption-text\"><span class=\"type:primaryImage imagecredit\"><a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/www.shutterstock.com\/image-photo\/poznan-pol-feb-6-2021-laptop-1942487578\">monticello\/Shutterstock.com<\/a><\/span><\/figcaption><\/figure>\n<p>WordPress is the most popular content management system. It\u2019s written in PHP, stores data in a MySQL database, and usually runs behind an Apache web server. These dependencies add several packages to your system and can be tricky to maintain over time. Here\u2019s how to quickly launch a containerized WordPress install using the official <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/hub.docker.com\/_\/wordpress\">Docker image<\/a>.<\/p>\n<h2 id=\"getting-started\"><span class=\"ez-toc-section\" id=\"Getting_Started\"><\/span>Getting Started<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Running WordPress in Docker requires two separate containers: a web container, running Apache and PHP, and a database container, hosting MySQL. You must also setup Docker volumes for the WordPress data directories. These store your configuration files and uploaded <a href=\"https:\/\/buradabiliyorum.com\/en\/category\/social-mediaa\/\" data-internallinksmanager029f6b8e52c=\"1\" title=\"Social Media\" target=\"_blank\" rel=\"noopener\">media<\/a> so they persist across container restarts.<\/p>\n<p>Make sure you\u2019ve got Docker and Docker Compose installed before you continue. Although you can use the Docker CLI on its own, Compose makes it easier to define the two services, their dependencies, and your volumes. You\u2019ll be able to bring up the entire stack with a single command.<\/p>\n<h2 id=\"base-images\"><span class=\"ez-toc-section\" id=\"Base_Images\"><\/span>Base Images<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>The official WordPress Docker image is available in many different tagged flavors. These cover the spectrum of available WordPress and PHP versions. If you use the <code>latest<\/code> tag, you\u2019ll get the current WordPress version with the newest PHP release.<\/p>\n<p>For more control over your deployment, use a specific WordPress and PHP version. Here are a few examples:<\/p>\n<ul>\n<li><code>wordpress:5.7<\/code> \u2013 WordPress 5.7 with the latest PHP.<\/li>\n<li><code>wordpress:php7.4<\/code> \u2013 PHP 7.4 with the latest WordPress.<\/li>\n<li><code>wordpress:5.7-php7.4<\/code> \u2013 WordPress 5.7 with PHP 5.4.<\/li>\n<\/ul>\n<p>An exhaustive list of supported tags is offered on <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/hub.docker.com\/_\/wordpress\">Docker Hub<\/a>. Besides version pinning support, image variants are also available for Apache, FPM and Alpine.<\/p>\n<p>Images come pre-configured with usable default settings. You can add your own <code>php.ini<\/code> settings by copying a compatible file into the <code>$PHP_INI_DIR\/conf.d<\/code> directory within the WordPress container.<\/p>\n<h2 id=\"deploying-your-stack\"><span class=\"ez-toc-section\" id=\"Deploying_Your_Stack\"><\/span>Deploying Your Stack<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Create a new directory for your site, then add a <code>docker-compose.yml<\/code> file. Paste in the following content:<\/p>\n<div class=\"wp-geshi-highlight-wrap5\">\n<div class=\"wp-geshi-highlight-wrap4\">\n<div class=\"wp-geshi-highlight-wrap3\">\n<div class=\"wp-geshi-highlight-wrap2\">\n<div class=\"wp-geshi-highlight-wrap\">\n<div class=\"wp-geshi-highlight\">\n<div class=\"yaml\">\n<pre class=\"de1\"><span class=\"co3\">version<\/span><span class=\"sy2\">: <\/span><span class=\"st0\">\"3\"<\/span>\n<span class=\"co4\">\nservices<\/span>:<span class=\"co4\">\n  wordpress<\/span>:<span class=\"co3\">\n    image<\/span><span class=\"sy2\">: <\/span>wordpress:5.7-php7.4<span class=\"co3\">\n    restart<\/span><span class=\"sy2\">: <\/span>unless-stopped<span class=\"co4\">\n    ports<\/span><span class=\"sy2\">:\n<\/span>      - 80<span class=\"co4\">\n    environment<\/span>:<span class=\"co3\">\n      WORDPRESS_DB_HOST<\/span><span class=\"sy2\">: <\/span>mysql<span class=\"co3\">\n      WORDPRESS_DB_USER<\/span><span class=\"sy2\">: <\/span>username<span class=\"co3\">\n      WORDPRESS_DB_PASSWORD<\/span><span class=\"sy2\">: <\/span>password<span class=\"co3\">\n      WORDPRESS_DB_NAME<\/span><span class=\"sy2\">: <\/span>wordpress<span class=\"co4\">\n    volumes<\/span><span class=\"sy2\">:\n<\/span>      - wordpress:\/var\/www\/html<span class=\"co4\">\n  mysql<\/span>:<span class=\"co3\">\n    image<\/span><span class=\"sy2\">: <\/span>mysql:5.7<span class=\"co3\">\n    restart<\/span><span class=\"sy2\">: <\/span>unless-stopped<span class=\"co4\">\n    environment<\/span>:<span class=\"co3\">\n      MYSQL_DATABASE<\/span><span class=\"sy2\">: <\/span>wordpress<span class=\"co3\">\n      MYSQL_USER<\/span><span class=\"sy2\">: <\/span>username<span class=\"co3\">\n      MYSQL_PASSWORD<\/span><span class=\"sy2\">: <\/span>password<span class=\"co3\">\n      MYSQL_RANDOM_ROOT_PASSWORD<\/span><span class=\"sy2\">: <\/span><span class=\"st0\">\"1\"<\/span><span class=\"co4\">\n    volumes<\/span><span class=\"sy2\">:\n<\/span>      - mysql:\/var\/lib\/mysql\n<span class=\"co4\">\nvolumes<\/span>:<span class=\"co4\">\n  wordpress<\/span><span class=\"sy2\">:\n<\/span>  mysql:<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>This Compose file defines a minimal stack with the required WordPress and MySQL services. The database connection is configured using environment variables. You should change the database username and password to secure values of your own. Remember to <a href=\"https:\/\/buradabiliyorum.com\/en\/category\/download-scripts-themes-apps\/\" data-internallinksmanager029f6b8e52c=\"9\" title=\"Download Scripts &amp; Themes &amp; Apps\" target=\"_blank\" rel=\"noopener\">app<\/a>ly the changes to both service definitions.<\/p>\n<p>The services are set to restart automatically unless they\u2019ve been manually stopped. This ensures your site comes back up automatically when you reboot the host system.<\/p>\n<p>The entire WordPress installation directory is mounted into a volume. Using this approach ensures all your WordPress content is persisted outside the container, including configuration, themes, plugins, and uploads. It also lets you use the WordPress self-updater from the admin panel. If you only mounted the data directories into a volume, any source changes applied by the self-updater would be lost after a container restart.<\/p>\n<p>Deploy the stack by running <code>docker-compose up -d<\/code>. You\u2019ll be able to login to WordPress by visiting <code>http:\/\/localhost<\/code> in your browser. If you see an \u201cerror establishing database connection\u201d message, wait a few moments before trying again. First-run database provisioning can take several seconds to complete.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-12981\" src=\"https:\/\/www.cloudsavvyit.com\/p\/uploads\/2021\/07\/64993e65.png?trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"\" width=\"1266\" height=\"917\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>Click through the standard WordPress setup wizard to configure your site. You\u2019ll need to setup an initial administrator user account. These credentials should be different to your MySQL database ones. The WordPress login form will appear when you\u2019re done. Use your new admin account to login to the admin dashboard.<\/p>\n<h2 id=\"next-steps\"><span class=\"ez-toc-section\" id=\"Next_Steps\"><\/span>Next Steps<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Your WordPress installation is now ready to use. Add posts, pages, themes, and plugins using the admin interface, just like a bare-metal WordPress install.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-12980\" src=\"https:\/\/www.cloudsavvyit.com\/p\/uploads\/2021\/07\/5073f930.png?trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"\" width=\"1266\" height=\"830\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>It\u2019s recommended you run through some basic security hardening steps to reduce your site\u2019s risk of attack. You should make sure you\u2019ve got a backup routine too. This will need to cover the MySQL database and your WordPress uploads directory, <code>wp-content<\/code>.<\/p>\n<h2 id=\"configuration-with-docker-secrets\"><span class=\"ez-toc-section\" id=\"Configuration_With_Docker_Secrets\"><\/span>Configuration With Docker Secrets<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Using environment variables for configuration is adequate for local use. Docker secrets are supported too, giving you more security in environments which other collaborators can access. Define secrets in your Compose file and substitute variables like <code>WORDPRESS_DB_PASSWORD<\/code> for <code>WORDPRESS_DB_PASSWORD_FILE<\/code>. WordPress will load the variable\u2019s value from the secret file that Docker injects.<\/p>\n<div class=\"wp-geshi-highlight-wrap5\">\n<div class=\"wp-geshi-highlight-wrap4\">\n<div class=\"wp-geshi-highlight-wrap3\">\n<div class=\"wp-geshi-highlight-wrap2\">\n<div class=\"wp-geshi-highlight-wrap\">\n<div class=\"wp-geshi-highlight\">\n<div class=\"yaml\">\n<pre class=\"de1\"><span class=\"co4\">services<\/span>:<span class=\"co4\">\n  wordpress<\/span>:<span class=\"co4\">\n    environment<\/span>:<span class=\"co3\">\n     WORDPRESS_DB_PASSWORD_FILE<\/span><span class=\"sy2\">: <\/span>\/run\/secrets\/WORDPRESS_DB_PASSWORD<span class=\"co4\">\n    secrets<\/span><span class=\"sy2\">:\n<\/span>     - WORDPRESS_DB_PASSWORD<span class=\"co4\">\nsecrets<\/span>:<span class=\"co4\">\n  WORDPRESS_DB_PASSWORD<\/span>:<span class=\"co3\">\n    file<\/span><span class=\"sy2\">: <\/span>.\/db_password<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>Add your password to the <code>db_password<\/code> file in your working directory. It\u2019ll be accessible as <code>\/run\/secrets\/WORDPRESS_DB_PASSWORD<\/code> in the container. WordPress is instructed to read this file to determine the final database password.<\/p>\n<h2 id=\"adding-your-own-site\"><span class=\"ez-toc-section\" id=\"Adding_Your_Own_Site\"><\/span>Adding Your Own Site<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>The steps above result in a fresh WordPress install that\u2019s ready to configure interactively via the admin center. You can provision your container with a set of default themes and plugins by mounting them into the <code>\/var\/www\/html\/wp-content\/themes<\/code> and <code>\/var\/www\/html\/wp-content\/plugins<\/code> directories.<\/p>\n<p>This technique also helps you create a custom Docker image for your site. Use the official WordPress image as your base and copy your site\u2019s assets into the appropriate directories. Here\u2019s an example of how you could package a custom theme as a ready-to-use image:<\/p>\n<pre><code>FROM wordpress:5.7-php7.4-apache&#13;\nCOPY .\/theme\/ \/var\/www\/html\/wp-content\/themes\/example-theme\/<\/code><\/pre>\n<p>Your theme will be available in each container you start. This method doesn\u2019t automatically enable the theme though. For that, you\u2019ll need a third service using the WordPress CLI image.<\/p>\n<div class=\"wp-geshi-highlight-wrap5\">\n<div class=\"wp-geshi-highlight-wrap4\">\n<div class=\"wp-geshi-highlight-wrap3\">\n<div class=\"wp-geshi-highlight-wrap2\">\n<div class=\"wp-geshi-highlight-wrap\">\n<div class=\"wp-geshi-highlight\">\n<div class=\"yaml\">\n<pre class=\"de1\"><span class=\"co4\">services<\/span>:<span class=\"co4\">\n  wpcli<\/span>:<span class=\"co3\">\n    image<\/span><span class=\"sy2\">: <\/span>wordpress:cli-2-php7.4<span class=\"co4\">\n    environment<\/span>:<span class=\"co3\">\n      WORDPRESS_DB_HOST<\/span><span class=\"sy2\">: <\/span>mysql<span class=\"co3\">\n      WORDPRESS_DB_USER<\/span><span class=\"sy2\">: <\/span>username<span class=\"co3\">\n      WORDPRESS_DB_PASSWORD<\/span><span class=\"sy2\">: <\/span>password<span class=\"co3\">\n      WORDPRESS_DB_NAME<\/span><span class=\"sy2\">: <\/span>wordpress<span class=\"co4\">\n    volumes_from<\/span><span class=\"sy2\">:\n<\/span>      - wordpress:rw<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>The CLI container needs access to the environment variables and volumes made available to the regular web container. Environment variables must be duplicated, unless you extract them into a reusable YAML section, whereas volumes can be mounted using <code>volumes_from<\/code>.<\/p>\n<p>Now you can use Docker Compose to complete the WordPress installation and enable your theme:<\/p>\n<pre><code>docker-compose run wpcli core install --title=\"My Site\" --admin_user=admin --admin_password=changeme --admin_email=me@example.com --url=localhost --allow-root&#13;\ndocker-compose run wpcli theme activate example-theme --allow-root<\/code><\/pre>\n<p>These steps can be automated as part of your image build process or a CI pipeline. You could <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/docs.docker.com\/engine\/reference\/commandline\/commit\">commit the<\/a> final container to create a standalone image of your site, ready for subsequent use.<\/p>\n<h2 id=\"conclusion\"><span class=\"ez-toc-section\" id=\"Conclusion\"><\/span>Conclusion<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Using WordPress with Docker avoids polluting your host machine and helps you containerize your site and its configuration. Defining your services as a Docker Compose file lets you quickly spin up new instances and help collaborators get running.<\/p>\n<p>Once your stack is live, the ongoing maintenance is similar to a regular WordPress install. Keep WordPress, your plugins, and your themes updated, and proactively check for security issues.<\/p>\n<p>One Docker-specific housekeeping task is updating the WordPress base image. It\u2019s good practice to periodically pull the latest image so you\u2019re not missing any important operating system patches. Run <code>docker-compose up -d --pull<\/code> to pull the image and restart your services.\n<\/div>\n<blockquote><p><strong><span style=\"color: #ff6600;\">If you liked the article, do not forget to share it with your friends. Follow us on\u00a0<span style=\"color: #ff0000;\"><a style=\"color: #ff0000;\" href=\"https:\/\/news.google.com\/publications\/CAAqBwgKMLG0nwswvr63Aw\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Google News<\/a><\/span>\u00a0too, click on the star and choose us from your favorites.<\/span><\/strong><\/p><\/blockquote>\n<blockquote>\n<p style=\"text-align: center;\">For forums sites go to <span style=\"color: #ff9900;\"><a style=\"color: #ff9900;\" href=\"https:\/\/forum.buradabiliyorum.com\/\" target=\"_blank\" rel=\"noopener\">Forum.BuradaBiliyorum.Com<\/a><\/span><\/strong><\/p>\n<\/blockquote>\n<blockquote>\n<p style=\"text-align: center;\"><strong>If you want to read more like this article, you can visit our <span style=\"color: #ff9900;\"><a style=\"color: #ff9900;\" href=\"https:\/\/en.buradabiliyorum.com\/technology\/\" target=\"_blank\" rel=\"noopener\">Technology category.<\/a><\/span><\/strong><\/p>\n<\/blockquote>\n<p><span style=\"color: black;\"><a style=\"color: #ff9900;\" href=\"https:\/\/www.cloudsavvyit.com\/12978\/how-to-quickly-deploy-wordpress-as-a-docker-container\/\" target=\"_blank\" rel=\"noopener\">Source<\/a><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>&#8220;#How to Quickly Deploy WordPress as a Docker Container \u2013 CloudSavvy IT&#8221; monticello\/Shutterstock.com WordPress is the most popular content management system. It\u2019s written in PHP, stores data in a MySQL database, and usually runs behind an Apache web server. These dependencies add several packages to your system and can be tricky to maintain over time&#8230;.<\/p>\n","protected":false},"author":1,"featured_media":308299,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"https:\/\/www.cloudsavvyit.com\/p\/uploads\/2021\/07\/e8e83f21.jpg","fifu_image_alt":"","footnotes":""},"categories":[18],"tags":[],"class_list":["post-308298","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technology"],"_links":{"self":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts\/308298","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/comments?post=308298"}],"version-history":[{"count":0,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts\/308298\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/media\/308299"}],"wp:attachment":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/media?parent=308298"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/categories?post=308298"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/tags?post=308298"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}