{"id":43144,"date":"2024-06-04T13:52:39","date_gmt":"2024-06-04T13:52:39","guid":{"rendered":"https:\/\/accuweb.cloud\/resource\/?post_type=faq&#038;p=43144"},"modified":"2026-02-18T13:42:33","modified_gmt":"2026-02-18T13:42:33","slug":"zdt-deployment-for-php","status":"publish","type":"faq","link":"https:\/\/accuweb.cloud\/resource\/articles\/zdt-deployment-for-php","title":{"rendered":"ZDT Deployment for PHP"},"content":{"rendered":"<h2 class=\"ack-h2\">ZDT Deployment for PHP<\/h2>\n<p>Modern web services need to be accessible at all times. However, during project re-deployment (i.e., updates), applications can go down or return errors until the process is complete. Tools like Capistrano and Fabric can address this, but they often require additional time, expense, and specialist knowledge to integrate and configure properly. For example, setting up multiple servers with a <a class=\"ack-link-color\" href=\"https:\/\/accuweb.cloud\/resource\/articles\/load-balancing-introduction\/\" target=\"_blank\" rel=\"noopener\">load balancer<\/a> to exclude servers during deployment can be complex and resource-intensive.<\/p>\n<p>A simpler solution for <a class=\"ack-link-color\" href=\"https:\/\/accuweb.cloud\/application\/php-hosting\" target=\"_blank\" rel=\"noopener\">PHP<\/a> applications running on Apache was proposed by Rasmus Lerdorf, the creator of PHP and our technical advisor. This method, actively used at Etsy and battle-tested, forms the basis for the Zero Downtime &amp; Atomic Deployment feature on our platform. The key points of this approach are:<\/p>\n<p><strong>1. File Duplication During Deployment:<\/strong><\/p>\n<ul class=\"ack-ul\">\n<li>Each time a new deployment process is run, the application\u2019s files are duplicated and stored in a separate server directory. This directory is automatically named based on its creation date and time for easy identification.<\/li>\n<\/ul>\n<p><strong>2. Symbolic Link (Symlink) Switching:<\/strong><\/p>\n<ul class=\"ack-ul\">\n<li>A special request redirector, called a symlink (symbolic link), switches between different application versions after each update, pointing to the version that should be currently used.<\/li>\n<\/ul>\n<p><a href=\"https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/06\/Symlink-Switching.png\"><img fetchpriority=\"high\" decoding=\"async\" class=\"aligncenter wp-image-43152 size-full\" title=\"Symlink Switching\" src=\"https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/06\/Symlink-Switching.png\" alt=\"Symlink Switching\" width=\"255\" height=\"410\" srcset=\"https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/06\/Symlink-Switching.png 255w, https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/06\/Symlink-Switching-187x300.png 187w\" sizes=\"(max-width: 255px) 100vw, 255px\" \/><\/a><\/p>\n<p>In this way, the updated project files can be seamlessly deployed while the original code version continues to operate and handle user sessions. Once the deployment is fully completed, the symlink instantly switches to the latest version of the successfully deployed application, redirecting all incoming requests to it. This approach ensures that the deployment process is fully atomic and transparent to your customers, relieving you from performing numerous manual operations.<\/p>\n<p>Below, we\u2019ll explore this mechanism in more detail by describing:<\/p>\n<ul class=\"ack-ul\">\n<li><a class=\"ack-link-color\" href=\"#deployment-workflow\">ZDT deployment workflow<\/a><\/li>\n<li><a class=\"ack-link-color\" href=\"#functionality\">How ZDT functionality is ensured on the platform<\/a><\/li>\n<li><a class=\"ack-link-color\" href=\"#deployment-methods-comparison\">Atomic and classic deployment modes comparison<\/a><\/li>\n<\/ul>\n<p>Let\u2019s go on!<\/p>\n<h2 id=\"deployment-workflow\" class=\"ack-h2\">ZDT Deployment Workflow<\/h2>\n<p>First, let&#8217;s look at how the PHP zero-downtime deployment mechanism operates on the platform. We\u2019ll examine this process step-by-step with a real example.<\/p>\n<p><strong>Step 1.<\/strong> Begin by setting up a <strong>PHP environment<\/strong> (either a new or an existing one). For this example, we&#8217;ll use <strong>Apache<\/strong>.<\/p>\n<p><a href=\"https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/06\/Select-application-server-2.png\"><img decoding=\"async\" class=\"ack-article-image aligncenter wp-image-43148 size-full\" title=\"Select application server\" src=\"https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/06\/Select-application-server-2.png\" alt=\"Select application server\" width=\"980\" height=\"609\" srcset=\"https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/06\/Select-application-server-2.png 980w, https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/06\/Select-application-server-2-300x186.png 300w, https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/06\/Select-application-server-2-768x477.png 768w\" sizes=\"(max-width: 980px) 100vw, 980px\" \/><\/a><\/p>\n<p><strong>Step 2.<\/strong> Proceed with deploying the required application. During the <a class=\"ack-link-color\" href=\"https:\/\/accuweb.cloud\/resource\/articles\/accuweb-cloud-environment-deployment-guide\/\" target=\"_blank\" rel=\"noopener\">deployment<\/a> process, ensure to tick the appropriate checkbox in the confirmation frame (depending on the project&#8217;s source type) to enable the ZDT deployment option:<\/p>\n<p>For deployment via local file or direct URL:<\/p>\n<p><a href=\"https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/06\/Enable-Zero-Downtime-Deployment.png\"><img decoding=\"async\" class=\"aligncenter wp-image-43154 size-full\" title=\"Enable Zero-Downtime Deployment\" src=\"https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/06\/Enable-Zero-Downtime-Deployment.png\" alt=\"Enable Zero-Downtime Deployment\" width=\"436\" height=\"261\" srcset=\"https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/06\/Enable-Zero-Downtime-Deployment.png 436w, https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/06\/Enable-Zero-Downtime-Deployment-300x180.png 300w\" sizes=\"(max-width: 436px) 100vw, 436px\" \/><\/a><\/p>\n<div class=\"ack-formula\"><strong>Note:<\/strong> When performing this for the first time on an existing application deployed to the ROOT context, all previous data will typically be erased and overwritten with the new app installation (applies to deployment via archive\/URL only).<\/div>\n<div class=\"article-space\"><\/div>\n<p><strong>For deployment via VCS (e.g. from GIT\/SVN or Bitbucket repo):<\/strong><\/p>\n<p><a href=\"https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/06\/Deployment-via-VCS.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-43155 size-full\" title=\"Deployment via VCS\" src=\"https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/06\/Deployment-via-VCS.png\" alt=\"Deployment via VCS\" width=\"431\" height=\"287\" srcset=\"https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/06\/Deployment-via-VCS.png 431w, https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/06\/Deployment-via-VCS-300x200.png 300w\" sizes=\"(max-width: 431px) 100vw, 431px\" \/><\/a><\/p>\n<div class=\"ack-formula\">\n<p><strong>Note:<\/strong><\/p>\n<ul class=\"ack-ul\">\n<li><strong>The zero-downtime deployment flag<\/strong> becomes active only when deploying to the <strong>ROOT<\/strong> context of your PHP application server. Otherwise, the classic method will be used.<\/li>\n<li>When working with VCS repositories, the chosen deployment mode will be remembered and used for all further auto-updates of this application until you change it manually.<\/li>\n<li>Generally, we recommend not using &#8220;hard-coded&#8221; absolute paths in your app\u2019s code and configs while using the atomic deployment feature to ensure it remains operative regardless of the project\u2019s directory name.<\/li>\n<\/ul>\n<\/div>\n<div class=\"article-space\"><\/div>\n<p><strong>Step 3.<\/strong> During the initial deployment, a folder named <strong>ROOT_timestamp (e.g., ROOT_year.mm.dd-hh.mm.ss)<\/strong> and a special <strong>ROOT<\/strong> file acting as a symlink to this folder are created inside the <strong>webroot<\/strong> directory of your application server.<\/p>\n<p>Once the deployment process is finished, the application is ready to handle requests as usual.<\/p>\n<p><a href=\"https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/06\/Webroot.png\"><img loading=\"lazy\" decoding=\"async\" class=\"ack-article-image aligncenter wp-image-43157 size-full\" title=\"Webroot\" src=\"https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/06\/Webroot.png\" alt=\"Webroot\" width=\"1316\" height=\"473\" srcset=\"https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/06\/Webroot.png 1316w, https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/06\/Webroot-300x108.png 300w, https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/06\/Webroot-1024x368.png 1024w, https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/06\/Webroot-768x276.png 768w\" sizes=\"(max-width: 1316px) 100vw, 1316px\" \/><\/a><\/p>\n<p><strong>Step 4.<\/strong> During the second deployment (i.e., when deploying an update), a new folder named <strong>ROOT_timestamp<\/strong> is created. This ensures that the current application version and the customers using it remain unaffected.<\/p>\n<p><a href=\"https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/06\/Root_timestamp.png\"><img loading=\"lazy\" decoding=\"async\" class=\"ack-article-image aligncenter wp-image-43150 size-full\" title=\"Root_timestamp\" src=\"https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/06\/Root_timestamp.png\" alt=\"Root_timestamp\" width=\"1384\" height=\"479\" srcset=\"https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/06\/Root_timestamp.png 1384w, https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/06\/Root_timestamp-300x104.png 300w, https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/06\/Root_timestamp-1024x354.png 1024w, https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/06\/Root_timestamp-768x266.png 768w\" sizes=\"(max-width: 1384px) 100vw, 1384px\" \/><\/a><\/p>\n<p>Immediately after the new files are unpacked, the symlink switches to this new folder, directing all newly received requests to it. Meanwhile, the first folder continues processing sessions for &#8220;<strong>old<\/strong>&#8221; users, i.e., those who began their session before the symlink switch.<\/p>\n<div class=\"ack-formula\"><strong>Note:<\/strong> When updating an app version using an archive or URL, any user-generated content should be manually transferred to the newly created app directory from the older one, which is stored alongside. Previously, such an operation involved the complete overriding of all context data.<\/p>\n<div>If using version control systems (VCS), all content in the app&#8217;s directory, including tracked and untracked files, is fully copied, eliminating the need for manual operations. However, it&#8217;s advisable to utilize the .gitignore list to exclude unnecessary files from your project. This practice saves resources and time during repetitive re-deploys.<\/div>\n<\/div>\n<div class=\"article-space\"><\/div>\n<p><strong>Step 5.<\/strong> Subsequent atomic deployments follow the same process. Each deployment involves removing the oldest project folder while adding a new <strong>ROOT_timestamp<\/strong> directory for the most recent project version.<\/p>\n<p>This method ensures that only two versions of the deployed application\u2014the latest and the previous one\u2014are stored within the app server simultaneously. The older version can be manually removed when it is no longer needed, preventing any unnecessary disk space consumption.<\/p>\n<div class=\"ack-formula\"><strong>Note:<\/strong> If you want to prevent a specific project version from being automatically removed, simply rename the corresponding folder before initiating the new deployment.<a href=\"https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/06\/Rename-Corresponding-Folder.png\"><img loading=\"lazy\" decoding=\"async\" class=\"ack-article-image aligncenter wp-image-43156 size-full\" title=\"Rename Corresponding Folder\" src=\"https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/06\/Rename-Corresponding-Folder.png\" alt=\"Rename Corresponding Folder\" width=\"1220\" height=\"376\" srcset=\"https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/06\/Rename-Corresponding-Folder.png 1220w, https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/06\/Rename-Corresponding-Folder-300x92.png 300w, https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/06\/Rename-Corresponding-Folder-1024x316.png 1024w, https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/06\/Rename-Corresponding-Folder-768x237.png 768w\" sizes=\"(max-width: 1220px) 100vw, 1220px\" \/><\/a><\/p>\n<\/div>\n<div class=\"article-space\"><\/div>\n<p>All operations are fully automated, requiring no additional involvement from developers. The deployment process is executed smoothly, without the need for an app server restart, ensuring zero application downtime.<\/p>\n<div class=\"article-space\"><\/div>\n\t\t<div data-elementor-type=\"section\" data-elementor-id=\"38668\" class=\"elementor elementor-38668\" data-elementor-settings=\"{&quot;ha_cmc_init_switcher&quot;:&quot;no&quot;}\" data-elementor-post-type=\"elementor_library\">\n\t\t\t        <section class=\"elementor-section elementor-top-section elementor-element elementor-element-882321f elementor-section-boxed elementor-section-height-default elementor-section-height-default ct-header-fixed-none ct-row-max-none\" data-id=\"882321f\" data-element_type=\"section\" data-settings=\"{&quot;_ha_eqh_enable&quot;:false}\">\n            \n                        <div class=\"elementor-container elementor-column-gap-default \">\n                    <div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-7cc79cc\" data-id=\"7cc79cc\" data-element_type=\"column\">\n        <div class=\"elementor-widget-wrap elementor-element-populated\">\n                    \n        \t\t<div class=\"elementor-element elementor-element-e31b40f elementor-widget elementor-widget-shortcode\" data-id=\"e31b40f\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\"><\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t            <\/div>\n        <\/div>\n                    <\/div>\n        <\/section>\n        \t\t<\/div>\n\t\t\n<div class=\"article-space\"><\/div>\n<h2 id=\"functionality\" class=\"ack-h2\">ZDT Implementation at PHP Servers<\/h2>\n<p>The atomic deployment option for <strong>Apache PHP<\/strong> instances is facilitated by the <strong>mod_realdoc<\/strong> module. This module manages the symlink switching process and can be further configured through the platform dashboard in the <strong>conf.d &gt; mod_realdoc.conf<\/strong> file.<\/p>\n<p><a href=\"https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/06\/ZDT-Implementation.png\"><img loading=\"lazy\" decoding=\"async\" class=\"ack-article-image aligncenter wp-image-43153 size-full\" title=\"ZDT Implementation\" src=\"https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/06\/ZDT-Implementation.png\" alt=\"ZDT Implementation\" width=\"1610\" height=\"471\" srcset=\"https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/06\/ZDT-Implementation.png 1610w, https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/06\/ZDT-Implementation-300x88.png 300w, https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/06\/ZDT-Implementation-1024x300.png 1024w, https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/06\/ZDT-Implementation-768x225.png 768w, https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/06\/ZDT-Implementation-1536x449.png 1536w\" sizes=\"(max-width: 1610px) 100vw, 1610px\" \/><\/a><\/p>\n<div class=\"ack-formula\"><strong>TIP:<\/strong> The RealpathEvery parameter in the mod_realdoc module determines how frequently the symbolic link path is refreshed. By default, its value is set to 0, but for ZDT deployment, it&#8217;s adjusted to 2. This ensures that all deployment and switching operations are completed before redirecting requests to the new project version, preventing I\/O slowdowns.<\/p>\n<div>If necessary, you can customize this value, but avoid setting it too high as it may cause delays in symlink switching. Remember to restart your app server node after making any changes to apply them.<\/div>\n<\/div>\n<div class=\"article-space\"><\/div>\n<p>For additional details about this module, please refer to its source page. Regarding <strong>NGINX-PHP<\/strong>, atomic deployment relies on built-in functionality without requiring additional modules. You can find the corresponding settings at the end of the <strong>conf &gt; nginx.conf<\/strong> file. With this understanding, let&#8217;s compare both classic and atomic deployment methods.<\/p>\n<h2 id=\"deployment-methods-comparison\" class=\"ack-h2\">Comparison and Summary<\/h2>\n<p>To demonstrate the advantages of the ZDT update approach, we conducted a straightforward load test with the following key parameters:<\/p>\n<ol class=\"ack-ol\">\n<li><strong>Application:<\/strong> We used a basic version of WordPress CMS for the test, deploying its default distribution without any heavy content.<\/li>\n<li><strong>Load Generation Tool:<\/strong> <a class=\"ack-link-color\" href=\"https:\/\/jmeter.apache.org\/\" target=\"_blank\" rel=\"noopener\">Apache JMeter<\/a> was configured to continuously send the necessary amount of concurrent requests to our application throughout the redeployment process.<\/li>\n<li><strong>Time Frame:<\/strong> The test commenced shortly before initiating the redeployment process and concluded a few seconds after its completion.<\/li>\n<\/ol>\n<p>Let&#8217;s delve into the most widely used method of project deployment &#8211; the <strong>classic<\/strong> approach, also known as installation from a single archived package without additional features like ZDT enabled:<\/p>\n<p><a href=\"https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/06\/Classic-Approach.png\"><img loading=\"lazy\" decoding=\"async\" class=\"ack-article-image aligncenter wp-image-43151 size-full\" title=\"Classic Approach\" src=\"https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/06\/Classic-Approach.png\" alt=\"Classic Approach\" width=\"1159\" height=\"567\" srcset=\"https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/06\/Classic-Approach.png 1159w, https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/06\/Classic-Approach-300x147.png 300w, https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/06\/Classic-Approach-1024x501.png 1024w, https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/06\/Classic-Approach-768x376.png 768w\" sizes=\"(max-width: 1159px) 100vw, 1159px\" \/><\/a><\/p>\n<p>In this scenario, we observe commendable results:<\/p>\n<ul class=\"ack-ul\">\n<li>Swift and consistent <strong>response time<\/strong> (depicted by the blue graph), averaging just 1.2 seconds.<\/li>\n<li>Rapid restoration to normal operation, where all incoming requests are successfully processed (illustrated by the green line) with no encountered errors (depicted by the red graph).<\/li>\n<li>A brief spike in response time lasting only two seconds, as highlighted by the red line (though deploying a more content-rich project could potentially extend this interval).<\/li>\n<\/ul>\n<p>Now, let&#8217;s conduct the identical test using the second contender &#8211; <strong>ZDT<\/strong>. To facilitate clearer comparison, we&#8217;ll maintain the same color legend as previously used:<\/p>\n<p><a href=\"https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/06\/ZDT.png\"><img loading=\"lazy\" decoding=\"async\" class=\"ack-article-image aligncenter wp-image-43149 size-full\" title=\"ZDT\" src=\"https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/06\/ZDT.png\" alt=\"ZDT\" width=\"1159\" height=\"567\" srcset=\"https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/06\/ZDT.png 1159w, https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/06\/ZDT-300x147.png 300w, https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/06\/ZDT-1024x501.png 1024w, https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/06\/ZDT-768x376.png 768w\" sizes=\"(max-width: 1159px) 100vw, 1159px\" \/><\/a><\/p>\n<p><strong>The response time<\/strong> remains stable and nearly unchanged, albeit with a slight increase during the update process, attributed to concurrent deployment activities alongside request serving. Remarkably, no errors occur throughout the entire test duration.<\/p>\n<p>Hence, zero downtime deployment effectively mitigates the issue of failed requests during application updates, while maintaining an average response time consistent. Moreover, the atomic approach affords the flexibility to retain all user-generated content within the application directory, facilitating seamless migration to the new application version as needed &#8211; a capability absent in the conventional deployment method.<\/p>\n<div class=\"ack-formula\">Indeed, you may observe that the classic method exhibits a notably lower minimum request handling time compared to the atomic approach, suggesting superior performance. However, this observation can be misleading. The discrepancy arises due to the presence of failed requests, where the serving time is included in the calculation despite the requests not being processed. In reality, the average response time remains nearly identical for both methods.<\/div>\n<div class=\"article-space\"><\/div>\n<div class=\"article-space\"><\/div>\n\t\t<div data-elementor-type=\"section\" data-elementor-id=\"38668\" class=\"elementor elementor-38668\" data-elementor-settings=\"{&quot;ha_cmc_init_switcher&quot;:&quot;no&quot;}\" data-elementor-post-type=\"elementor_library\">\n\t\t\t        <section class=\"elementor-section elementor-top-section elementor-element elementor-element-882321f elementor-section-boxed elementor-section-height-default elementor-section-height-default ct-header-fixed-none ct-row-max-none\" data-id=\"882321f\" data-element_type=\"section\" data-settings=\"{&quot;_ha_eqh_enable&quot;:false}\">\n            \n                        <div class=\"elementor-container elementor-column-gap-default \">\n                    <div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-7cc79cc\" data-id=\"7cc79cc\" data-element_type=\"column\">\n        <div class=\"elementor-widget-wrap elementor-element-populated\">\n                    \n        \t\t<div class=\"elementor-element elementor-element-e31b40f elementor-widget elementor-widget-shortcode\" data-id=\"e31b40f\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\"><\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t            <\/div>\n        <\/div>\n                    <\/div>\n        <\/section>\n        \t\t<\/div>\n\t\t\n<div class=\"article-space\"><\/div>\n<h3 class=\"ack-h3\">VCS Deployment<\/h3>\n<p>Now, let\u2019s replicate our test for the second type of deployment, which involves using version control systems (VCS) such as Git or SVN. We&#8217;ll begin with the classic deployment method:<\/p>\n<p><a href=\"https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/06\/VCS-Deployment.png\"><img loading=\"lazy\" decoding=\"async\" class=\"ack-article-image aligncenter wp-image-43147 size-full\" title=\"VCS Deployment\" src=\"https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/06\/VCS-Deployment.png\" alt=\"VCS Deployment\" width=\"1159\" height=\"567\" srcset=\"https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/06\/VCS-Deployment.png 1159w, https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/06\/VCS-Deployment-300x147.png 300w, https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/06\/VCS-Deployment-1024x501.png 1024w, https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/06\/VCS-Deployment-768x376.png 768w\" sizes=\"(max-width: 1159px) 100vw, 1159px\" \/><\/a><\/p>\n<p>Since the deployment sources are located in a remote repository, this process naturally takes longer compared to installing from an uploaded archive. This delay allows us to more clearly observe the differences. During this process, the response time experiences a significant drop (nearly 4 seconds in our case), indicating the unavailability of the application. This is reflected in the spike in the errors graph, indicating a failure to handle incoming requests during this period. Otherwise, the performance remains largely consistent with the previous deployment method.<\/p>\n<div class=\"ack-formula\"><strong>Note:<\/strong> Unlike archive deployment, where the old project is entirely replaced before redeployment, causing downtime, in VCS deployment, only the differing files are updated. Consequently, if the files requiring changes are not currently in use, there may be no interruption in service.<\/div>\n<div class=\"article-space\"><\/div>\n<p>Finally, the last test for ZDT deployment via VCS aligns with our expectations, maintaining a stable response time with a slight increase during simultaneous operations, such as handling user sessions and updating the project.<\/p>\n<p><a href=\"https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/06\/ZDT-Deployment-via-VCS.png\"><img loading=\"lazy\" decoding=\"async\" class=\"ack-article-image aligncenter wp-image-43146 size-full\" title=\"ZDT Deployment via VCS\" src=\"https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/06\/ZDT-Deployment-via-VCS.png\" alt=\"ZDT Deployment via VCS\" width=\"1159\" height=\"567\" srcset=\"https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/06\/ZDT-Deployment-via-VCS.png 1159w, https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/06\/ZDT-Deployment-via-VCS-300x147.png 300w, https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/06\/ZDT-Deployment-via-VCS-1024x501.png 1024w, https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/06\/ZDT-Deployment-via-VCS-768x376.png 768w\" sizes=\"(max-width: 1159px) 100vw, 1159px\" \/><\/a><\/p>\n<p>Additionally, no errors occurred, and all incoming requests were successfully processed.<\/p>\n<h2 class=\"ack-h2\">Conclusion<\/h2>\n<p>Alright, we&#8217;ve delved into the technical nitty-gritty (raw data, visualizations, and practical applications) of ZDT, and you&#8217;ve witnessed its user-friendly implementation within our platform. Now, let&#8217;s condense this information and highlight the significant advantages it brings to your PHP application&#8217;s hosting environment.<\/p>\n<ul class=\"ack-ul\">\n<li><strong>Cost-Conscious Choice:<\/strong> ZDT eliminates the need for additional resource allocation like separate instances or tools. You simply require sufficient disk space to store two project versions (current and previous). Compared to other solutions potentially demanding extra app servers, balancers, or external services, ZDT emerges as a practically free-of-charge option.<\/li>\n<li><strong>Deployment Made Easy:<\/strong> The deployment process remains as streamlined as ever. There&#8217;s no requirement for additional configurations or manual intervention, ensuring a smooth and hassle-free experience.<\/li>\n<li><strong>Atomic Speed and Zero Downtime:<\/strong> ZDT upholds its promise \u2013 deployment speed remains identical to the classic method, preventing any delays for your users. Even more importantly, ZDT lives up to its namesake by guaranteeing a completely transparent update process for your customers. This stands in stark contrast to the classic approach, which can introduce errors even during minor application deployments.<\/li>\n<li><strong>The ZDT Advantage:<\/strong> By incorporating ZDT deployment, you transform project updates into a seamless and invisible operation for both your team and your customers. This empowers you to maintain optimal application performance and deliver a consistently exceptional user experience.<\/li>\n<\/ul>\n<div class=\"cta-btn-top-space\"><\/div>\n\t\t<div data-elementor-type=\"section\" data-elementor-id=\"38668\" class=\"elementor elementor-38668\" data-elementor-settings=\"{&quot;ha_cmc_init_switcher&quot;:&quot;no&quot;}\" data-elementor-post-type=\"elementor_library\">\n\t\t\t        <section class=\"elementor-section elementor-top-section elementor-element elementor-element-882321f elementor-section-boxed elementor-section-height-default elementor-section-height-default ct-header-fixed-none ct-row-max-none\" data-id=\"882321f\" data-element_type=\"section\" data-settings=\"{&quot;_ha_eqh_enable&quot;:false}\">\n            \n                        <div class=\"elementor-container elementor-column-gap-default \">\n                    <div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-7cc79cc\" data-id=\"7cc79cc\" data-element_type=\"column\">\n        <div class=\"elementor-widget-wrap elementor-element-populated\">\n                    \n        \t\t<div class=\"elementor-element elementor-element-e31b40f elementor-widget elementor-widget-shortcode\" data-id=\"e31b40f\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\"><\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t            <\/div>\n        <\/div>\n                    <\/div>\n        <\/section>\n        \t\t<\/div>\n\t\t\n<div class=\"cta-btn-mob-space\"><\/div>\n","protected":false},"author":1,"featured_media":52879,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","class_list":["post-43144","faq","type-faq","status-publish","has-post-thumbnail","hentry","faq_topics-kb","faq_topics-php","faq_topics-product-documentation","faq_topics-zdt-deployment-for-php"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.10 (Yoast SEO v24.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>ZDT Deployment for PHP Applications with AccuWeb.Cloud<\/title>\n<meta name=\"description\" content=\"Ensure uninterrupted PHP application updates with zero downtime and atomic switching. Deploy updates while maintaining current availability.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/accuweb.cloud\/resource\/articles\/zdt-deployment-for-php\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"ZDT Deployment for PHP\" \/>\n<meta property=\"og:description\" content=\"Ensure uninterrupted PHP application updates with zero downtime and atomic switching. Deploy updates while maintaining current availability.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/accuweb.cloud\/resource\/articles\/zdt-deployment-for-php\" \/>\n<meta property=\"og:site_name\" content=\"AccuWeb Cloud\" \/>\n<meta property=\"article:modified_time\" content=\"2026-02-18T13:42:33+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/07\/NEW-OG-IMAGE-URL.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1280\" \/>\n\t<meta property=\"og:image:height\" content=\"720\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"11 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/accuweb.cloud\/resource\/articles\/zdt-deployment-for-php#article\",\"isPartOf\":{\"@id\":\"https:\/\/accuweb.cloud\/resource\/articles\/zdt-deployment-for-php\"},\"author\":{\"name\":\"Jilesh Patadiya\",\"@id\":\"https:\/\/accuweb.cloud\/resource\/#\/schema\/person\/a7a4cbe8405202b537509c757b588c58\"},\"headline\":\"ZDT Deployment for PHP\",\"datePublished\":\"2024-06-04T13:52:39+00:00\",\"dateModified\":\"2026-02-18T13:42:33+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/accuweb.cloud\/resource\/articles\/zdt-deployment-for-php\"},\"wordCount\":1874,\"publisher\":{\"@id\":\"https:\/\/accuweb.cloud\/resource\/#organization\"},\"image\":{\"@id\":\"https:\/\/accuweb.cloud\/resource\/articles\/zdt-deployment-for-php#primaryimage\"},\"thumbnailUrl\":\"https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/07\/NEW-OG-IMAGE-URL.jpg\",\"inLanguage\":\"en-US\"},{\"@type\":[\"WebPage\",\"FAQPage\"],\"@id\":\"https:\/\/accuweb.cloud\/resource\/articles\/zdt-deployment-for-php\",\"url\":\"https:\/\/accuweb.cloud\/resource\/articles\/zdt-deployment-for-php\",\"name\":\"ZDT Deployment for PHP Applications with AccuWeb.Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/accuweb.cloud\/resource\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/accuweb.cloud\/resource\/articles\/zdt-deployment-for-php#primaryimage\"},\"image\":{\"@id\":\"https:\/\/accuweb.cloud\/resource\/articles\/zdt-deployment-for-php#primaryimage\"},\"thumbnailUrl\":\"https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/07\/NEW-OG-IMAGE-URL.jpg\",\"datePublished\":\"2024-06-04T13:52:39+00:00\",\"dateModified\":\"2026-02-18T13:42:33+00:00\",\"description\":\"Ensure uninterrupted PHP application updates with zero downtime and atomic switching. Deploy updates while maintaining current availability.\",\"breadcrumb\":{\"@id\":\"https:\/\/accuweb.cloud\/resource\/articles\/zdt-deployment-for-php#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/accuweb.cloud\/resource\/articles\/zdt-deployment-for-php\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/accuweb.cloud\/resource\/articles\/zdt-deployment-for-php#primaryimage\",\"url\":\"https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/07\/NEW-OG-IMAGE-URL.jpg\",\"contentUrl\":\"https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/07\/NEW-OG-IMAGE-URL.jpg\",\"width\":1280,\"height\":720},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/accuweb.cloud\/resource\/articles\/zdt-deployment-for-php#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/accuweb.cloud\/resource\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"ZDT Deployment for PHP\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/accuweb.cloud\/resource\/#website\",\"url\":\"https:\/\/accuweb.cloud\/resource\/\",\"name\":\"AccuWeb Cloud\",\"description\":\"Cutting Edge Cloud Computing\",\"publisher\":{\"@id\":\"https:\/\/accuweb.cloud\/resource\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/accuweb.cloud\/resource\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/accuweb.cloud\/resource\/#organization\",\"name\":\"AccuWeb.Cloud\",\"url\":\"https:\/\/accuweb.cloud\/resource\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/accuweb.cloud\/resource\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/04\/accuwebcloud_logo_black_tagline.jpg\",\"contentUrl\":\"https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/04\/accuwebcloud_logo_black_tagline.jpg\",\"width\":156,\"height\":87,\"caption\":\"AccuWeb.Cloud\"},\"image\":{\"@id\":\"https:\/\/accuweb.cloud\/resource\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/accuweb.cloud\/resource\/#\/schema\/person\/a7a4cbe8405202b537509c757b588c58\",\"name\":\"Jilesh Patadiya\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/accuweb.cloud\/resource\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/2cea2bdb5bbabb771ee67e96acad7396f25cb1a0c360b9bc4a9ac40cea9cd8b2?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/2cea2bdb5bbabb771ee67e96acad7396f25cb1a0c360b9bc4a9ac40cea9cd8b2?s=96&d=mm&r=g\",\"caption\":\"Jilesh Patadiya\"},\"description\":\"Jilesh Patadiya, the visionary Co-Founder and Chief Technology Officer (CTO) behind AccuWeb.Cloud. Founder &amp; CTO at AccuWebHosting.com. He shares his web hosting insights on the AccuWeb.Cloud blog. He mostly writes on the latest web hosting trends, WordPress, storage technologies, and Windows and Linux hosting platforms.\",\"sameAs\":[\"https:\/\/accuweb.cloud\/resource\",\"https:\/\/www.facebook.com\/accuwebhosting\",\"https:\/\/www.instagram.com\/accuwebhosting\/\",\"https:\/\/www.linkedin.com\/company\/accuwebhosting\/\",\"https:\/\/x.com\/accuwebhosting\",\"https:\/\/www.youtube.com\/c\/Accuwebhosting\"],\"url\":\"https:\/\/accuweb.cloud\/resource\/author\/accuwebadmin\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"ZDT Deployment for PHP Applications with AccuWeb.Cloud","description":"Ensure uninterrupted PHP application updates with zero downtime and atomic switching. Deploy updates while maintaining current availability.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/accuweb.cloud\/resource\/articles\/zdt-deployment-for-php","og_locale":"en_US","og_type":"article","og_title":"ZDT Deployment for PHP","og_description":"Ensure uninterrupted PHP application updates with zero downtime and atomic switching. Deploy updates while maintaining current availability.","og_url":"https:\/\/accuweb.cloud\/resource\/articles\/zdt-deployment-for-php","og_site_name":"AccuWeb Cloud","article_modified_time":"2026-02-18T13:42:33+00:00","og_image":[{"width":1280,"height":720,"url":"https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/07\/NEW-OG-IMAGE-URL.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"11 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/accuweb.cloud\/resource\/articles\/zdt-deployment-for-php#article","isPartOf":{"@id":"https:\/\/accuweb.cloud\/resource\/articles\/zdt-deployment-for-php"},"author":{"name":"Jilesh Patadiya","@id":"https:\/\/accuweb.cloud\/resource\/#\/schema\/person\/a7a4cbe8405202b537509c757b588c58"},"headline":"ZDT Deployment for PHP","datePublished":"2024-06-04T13:52:39+00:00","dateModified":"2026-02-18T13:42:33+00:00","mainEntityOfPage":{"@id":"https:\/\/accuweb.cloud\/resource\/articles\/zdt-deployment-for-php"},"wordCount":1874,"publisher":{"@id":"https:\/\/accuweb.cloud\/resource\/#organization"},"image":{"@id":"https:\/\/accuweb.cloud\/resource\/articles\/zdt-deployment-for-php#primaryimage"},"thumbnailUrl":"https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/07\/NEW-OG-IMAGE-URL.jpg","inLanguage":"en-US"},{"@type":["WebPage","FAQPage"],"@id":"https:\/\/accuweb.cloud\/resource\/articles\/zdt-deployment-for-php","url":"https:\/\/accuweb.cloud\/resource\/articles\/zdt-deployment-for-php","name":"ZDT Deployment for PHP Applications with AccuWeb.Cloud","isPartOf":{"@id":"https:\/\/accuweb.cloud\/resource\/#website"},"primaryImageOfPage":{"@id":"https:\/\/accuweb.cloud\/resource\/articles\/zdt-deployment-for-php#primaryimage"},"image":{"@id":"https:\/\/accuweb.cloud\/resource\/articles\/zdt-deployment-for-php#primaryimage"},"thumbnailUrl":"https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/07\/NEW-OG-IMAGE-URL.jpg","datePublished":"2024-06-04T13:52:39+00:00","dateModified":"2026-02-18T13:42:33+00:00","description":"Ensure uninterrupted PHP application updates with zero downtime and atomic switching. Deploy updates while maintaining current availability.","breadcrumb":{"@id":"https:\/\/accuweb.cloud\/resource\/articles\/zdt-deployment-for-php#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/accuweb.cloud\/resource\/articles\/zdt-deployment-for-php"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/accuweb.cloud\/resource\/articles\/zdt-deployment-for-php#primaryimage","url":"https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/07\/NEW-OG-IMAGE-URL.jpg","contentUrl":"https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/07\/NEW-OG-IMAGE-URL.jpg","width":1280,"height":720},{"@type":"BreadcrumbList","@id":"https:\/\/accuweb.cloud\/resource\/articles\/zdt-deployment-for-php#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/accuweb.cloud\/resource\/"},{"@type":"ListItem","position":2,"name":"ZDT Deployment for PHP"}]},{"@type":"WebSite","@id":"https:\/\/accuweb.cloud\/resource\/#website","url":"https:\/\/accuweb.cloud\/resource\/","name":"AccuWeb Cloud","description":"Cutting Edge Cloud Computing","publisher":{"@id":"https:\/\/accuweb.cloud\/resource\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/accuweb.cloud\/resource\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/accuweb.cloud\/resource\/#organization","name":"AccuWeb.Cloud","url":"https:\/\/accuweb.cloud\/resource\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/accuweb.cloud\/resource\/#\/schema\/logo\/image\/","url":"https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/04\/accuwebcloud_logo_black_tagline.jpg","contentUrl":"https:\/\/accuweb.cloud\/resource\/wp-content\/uploads\/2024\/04\/accuwebcloud_logo_black_tagline.jpg","width":156,"height":87,"caption":"AccuWeb.Cloud"},"image":{"@id":"https:\/\/accuweb.cloud\/resource\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/accuweb.cloud\/resource\/#\/schema\/person\/a7a4cbe8405202b537509c757b588c58","name":"Jilesh Patadiya","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/accuweb.cloud\/resource\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/2cea2bdb5bbabb771ee67e96acad7396f25cb1a0c360b9bc4a9ac40cea9cd8b2?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2cea2bdb5bbabb771ee67e96acad7396f25cb1a0c360b9bc4a9ac40cea9cd8b2?s=96&d=mm&r=g","caption":"Jilesh Patadiya"},"description":"Jilesh Patadiya, the visionary Co-Founder and Chief Technology Officer (CTO) behind AccuWeb.Cloud. Founder &amp; CTO at AccuWebHosting.com. He shares his web hosting insights on the AccuWeb.Cloud blog. He mostly writes on the latest web hosting trends, WordPress, storage technologies, and Windows and Linux hosting platforms.","sameAs":["https:\/\/accuweb.cloud\/resource","https:\/\/www.facebook.com\/accuwebhosting","https:\/\/www.instagram.com\/accuwebhosting\/","https:\/\/www.linkedin.com\/company\/accuwebhosting\/","https:\/\/x.com\/accuwebhosting","https:\/\/www.youtube.com\/c\/Accuwebhosting"],"url":"https:\/\/accuweb.cloud\/resource\/author\/accuwebadmin"}]}},"_links":{"self":[{"href":"https:\/\/accuweb.cloud\/resource\/wp-json\/wp\/v2\/faq\/43144","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/accuweb.cloud\/resource\/wp-json\/wp\/v2\/faq"}],"about":[{"href":"https:\/\/accuweb.cloud\/resource\/wp-json\/wp\/v2\/types\/faq"}],"author":[{"embeddable":true,"href":"https:\/\/accuweb.cloud\/resource\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/accuweb.cloud\/resource\/wp-json\/wp\/v2\/comments?post=43144"}],"version-history":[{"count":8,"href":"https:\/\/accuweb.cloud\/resource\/wp-json\/wp\/v2\/faq\/43144\/revisions"}],"predecessor-version":[{"id":53164,"href":"https:\/\/accuweb.cloud\/resource\/wp-json\/wp\/v2\/faq\/43144\/revisions\/53164"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/accuweb.cloud\/resource\/wp-json\/wp\/v2\/media\/52879"}],"wp:attachment":[{"href":"https:\/\/accuweb.cloud\/resource\/wp-json\/wp\/v2\/media?parent=43144"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}