Skip to content
  • Solutions
    By Role
    • For Developers
    • For Content Managers
    • For Agencies
    • For IT Admins
    • For Web Hosters
    • For Developers
    • For Content Managers
    • For Agencies
    • For IT Admins
    • For Web Hosters
    By Infrastructure
    • Overview
    • AWS
    • Microsoft Azure
    • Alibaba Cloud
    • Google Cloud Platform
    • Vultr
    • Overview
    • AWS
    • Microsoft Azure
    • Alibaba Cloud
    • Google Cloud Platform
    • Vultr
    • Digital Ocean
    • Linode
    • Upcloud
    • Oracle
    • OVH
    • Digital Ocean
    • Linode
    • Upcloud
    • Oracle
    • OVH
  • Product
    • Plesk Features
    • Plesk Editions
    • What’s new
    • Pricing
    • Roadmap
    • Lifecycle Policy
    • Extensions Catalogue
  • Pricing
  • Extensions
    Featured Extensions
    • SocialBee
    • WP Toolkit
    • Sitejet Builder for Plesk
    • SEO Toolkit
    • Joomla! Toolkit
    • Premium Email
    • Email Security
    • SocialBee
    • WP Toolkit
    • Sitejet Builder for Plesk
    • SEO Toolkit
    • Joomla! Toolkit
    • Premium Email
    • Email Security
    Bundles and packs:
    • Business and Collaboration Edition
    • WP pack
    • Hosting pack
    • Power pack
    • Language pack
    • Business and Collaboration Edition
    • WP pack
    • Hosting pack
    • Power pack
    • Language pack

    See all Extensions

  • For Partners
    • Plesk Contributor Program
    • Plesk Partner Program
    • Affiliate program
    • Plesk University
  • Help Center
    • Documentation
    • Professional Services
    • Support
    • Contact Us
    • Wiki
    • Forum
  • Plesk 360 login
  • Free Trial
  • Pricing
  • Solutions
    • By Role
      • For Developers
      • For Content Managers
      • For Agencies
      • For IT Admins
      • For Web Hosters
    • By Infrastructure
      • Overview
      • Plesk on Amazon Web Services (AWS & Lightsail)
      • Microsoft Azure
      • Alibaba Cloud
      • Google Cloud Platform
      • Vultr
      • DigitalOcean
      • Linode
      • UpCloud
      • Oracle
      • OVH
  • Products
  • Pricing
  • Extensions
    • Featured Extensions
      • SocialBee
      • WP Toolkit
      • Sitejet Builder for Plesk
      • SEO Toolkit
      • Joomla! Toolkit
      • Premium Email
      • Email Security
    • Bundles and packs:
      • Business and Collaboration Edition
      • WP pack
      • Hosting pack
      • Power pack
      • Language pack
      • See all Extensions
  • For Partners
    • Plesk Contributor Program
    • Plesk Partner Program
    • Affiliate Program
    • Plesk University
  • Help Center
    • Documentation
    • Professional Services
    • Support
    • Contact Us
    • Wiki
    • Forum
  • Plesk 360 login
  • Free Trial
  • Pricing
  • Solutions
    • By Role
      • For Developers
      • For Content Managers
      • For Agencies
      • For IT Admins
      • For Web Hosters
    • By Infrastructure
      • Overview
      • Plesk on Amazon Web Services (AWS & Lightsail)
      • Microsoft Azure
      • Alibaba Cloud
      • Google Cloud Platform
      • Vultr
      • DigitalOcean
      • Linode
      • UpCloud
      • Oracle
      • OVH
  • Products
  • Pricing
  • Extensions
    • Featured Extensions
      • SocialBee
      • WP Toolkit
      • Sitejet Builder for Plesk
      • SEO Toolkit
      • Joomla! Toolkit
      • Premium Email
      • Email Security
    • Bundles and packs:
      • Business and Collaboration Edition
      • WP pack
      • Hosting pack
      • Power pack
      • Language pack
      • See all Extensions
  • For Partners
    • Plesk Contributor Program
    • Plesk Partner Program
    • Affiliate Program
    • Plesk University
  • Help Center
    • Documentation
    • Professional Services
    • Support
    • Contact Us
    • Wiki
    • Forum
  • Plesk 360 login
  • Free Trial
Plesk 360 login
Free Trial

Knowledge Base

Extension Structure – File Structure

 
extension structureextensions guideplesk extensions basicschangelogcss

A typical ZIP archive with an extension has the following structure of
files and directories:

example-extension.zip
 |
 +-meta.xml
 +-DESCRIPTION.md
 +-CHANGES.md
 +-/htdocs/
    |
    +-index.php
    +-public/
    +-...
 +-/plib/
    |
    +--controllers
    |         IndexController.php
    |
    +---scripts
    |         post-install.php
    |         pre-install.php
    |         pre-uninstall.php
    |
    +---views
    |    ---scripts
    |         ---index
    |                    index.phtml
    |
    +-/hooks/
      |
      +-...
    +-/library/
      |
      +-...
     +-/sbin/
    |
    +-...
 +-/var/
    |
    +-...
 +-/_meta/
    |
    +-...

The description of the most important files and directories is as
follows:

meta.xml - The XML-formatted description of the extension. During
the extension installation, this file is extracted to
PRODUCT_ROOT_D/admin/plib/modules/EXTENSION_ID/meta.xml, where
PRODUCT_ROOT_D is /usr/local/psa on Linux systems and
%plesk_dir% on Windows systems. See the detailed description of this
file structure.

DESCRIPTION.md - The extended description of the extension. The
description must be written in markdown. See the detailed description
for more information.

CHANGES.md - The changelog of the extension. The changelog must be
written in markdown. See the detailed description for more information.

/htdocs - All entry points of an extension, CSS, Javascript, and
graphics files should be placed in this directory. During installation,
the contents of this directory are extracted directly into the
/PRODUCT_ROOT_DIR/admin/htdocs/modules/EXTENSION_ID/ directory.

/htdocs/public - Contains the scripts that do not require
authorization (bypassing controllers). For example if your extension
exposes its own API.

/plib - This directory should contain PHP classes that are
responsible for the logic of an extension. During installation, the
contents of this directory are extracted directly into the
PRODUCT_ROOT_D/admin/plib/modules/MODULE_ID/ directory.

/plib/conrollers - This directory should contain the extension’s
controllers (for details, read the description of MVC
pattern
).
This directory is automatically generated when the extension is created
and contains the default controller for requests processing,
IndexController.php.

<code class="…

Tweet
Share
Share
Email
0 Shares
Read the full article
Related Posts

Plesk WP Toolkit Feature Awards 2021

Read More »

The Plesk WP Toolkit 5.1 Release – Backup Limits, Localization Support, and More

Read More »
Knowledge Base

Virtual Host Structure (Windows)

Read More »

(Plesk for Linux) System Updates

Read More »

(Plesk for Linux) System Updates – Updating System Packages

Read More »

Installing Plesk for Windows in Unattended Mode

Read More »

Hosting Wiki

  • Linux Containers
  • PhpMyAdmin
  • phpPgAdmin
  • Windows Server
  • Linux
  • JavaScript
  • PHP
  • CSS
  • Plesk
X-twitter Linkedin Youtube Reddit Github
  • Product
  • Login
  • Pricing
  • Editions
  • For Partners
  • Partner Program
  • Contributor Program
  • Affiliate Program
  • Plesk University
  • Company
  • Blog
  • Careers
  • Events
  • About Plesk
  • Our Brand
  • Resources
  • User and Admin guides
  • Help Center
  • Migrate to Plesk
  • Contact Us
  • Hosting Wiki
  • Forum
  • Legal
  • Legal
  • Privacy Policy
  • Imprint

© 2025 WebPros International GmbH

Part of the WebPros®  Family