-
-
Notifications
You must be signed in to change notification settings - Fork 44
Home
Open Server Panel is a powerful alternative to WAMP stacks like Xampp, Wampserver, Laravel Herd, EasyPHP, Vertrigo, and similar solutions. This application runs on the Windows operating system, supports Apache and Nginx as web servers, and provides the ability to run various versions of PHP, MySQL, PostgreSQL, MongoDB, and other popular modules. If you have experience with similar software, mastering Open Server Panel will be straightforward.
The application can be used in both stationary and portable modes. In portable mode, you can freely move the program folder across the disk or copy it to another computer. However, note that on older versions of Windows, full portability may be limited (due to the 255-character path limit). The package includes the System Preparation Tool, designed to prepare Windows for working with Open Server Panel. It requires administrator rights to run.
- Full Customization: Users have full access to the settings of all modules.
- Flexible Management: Management is carried out through the console, tray menu, or web interface (in development).
- Reliable Process Control: Monitoring and automatic recovery after failures.
- Parallel Module Operation: Ability to run all modules simultaneously, including launching multiple versions of the same module (e.g., MySQL 5.5 and MySQL 8.0).
- Configuration Profiles: Creating profiles with individual module settings, including configurations and data.
- Domain Personalization: Individual settings for each domain, from IP address to PHP version.
- Built-in SSL and IPv6 Support: Works "out of the box" and does not require additional configuration.
- Optimized Environment: Pre-configured environment for each module, including quick access to shell/cli.
- Convenient Environment Switching: Instant switching between environments in the console.
- Rich Set of PHP Extensions: Over 115 available extensions.
- Built-in Functionality: Task scheduler and SMTP server.
- Composer and Node.js: Managing Node.js versions with NVM. Composer is available in all PHP modules.
- Improved Stability: No bugs, freezes, or encoding issues.
- Accessibility: All settings, templates, language files, and documentation are available on GitHub.
For Open Server Panel to function properly, the following is required:
Component | Requirements |
---|---|
Operating System | Windows 10 (version 1607 or later), Windows Server 2016 or later. 32-bit systems are not supported. Versions for Linux and MacOS are not available. |
Hardware Resources | At least 4 GB of RAM and 15 GB of free disk space. |
Required Software | MSVC++ 2005-2022 Redistributable Packages (x86/x64, included). |
File System | NTFS (network drives are not supported). |
Note
With limited RAM (less than 3 GB), it may be necessary to limit the number of modules running simultaneously. On low-performance computers, it is recommended to run no more than one module of each type at a time.
Open Server Panel can run on older versions of Windows (x64), but with some limitations:
- Not all modules are available.
- File paths cannot exceed 255 characters.
Operating System | Version Number | Support Level |
---|---|---|
Windows 7 SP1 | 6.1.7601 | Limited |
Windows Server 2008 R2 SP1 | 6.1.7601 | Limited |
Windows Home Server 2011 | 6.1.8400 | Limited |
Windows Server 2012 | 6.2.9200 | Limited |
Windows 8 | 6.2.9200 | Limited |
Windows 8.1 | 6.3.9600 | Limited |
Windows Server 2012 R2 | 6.3.9600 | Limited |
Windows 10 v1507 | 10.0.10240 | Limited |
Windows 10 v1511 | 10.0.10586 | Limited |
.
├── addons # Add-ons
│ └── <addon_name> # Main addon directory
│ └── ospanel_data # Service files (settings and configs)
├── bin # Common executable files
├── config # Settings
│ └── <module_name> # Module settings
│ ├── default # Default profile directory
│ │ ├── templates # Configuration templates
│ │ └── settings.ini # Module settings for the Default profile
│ └── module.ini # Basic module settings (on/off + profile name)
├── data # Data storage (databases, etc.)
├── home # User projects (domains)
├── licenses # Licenses for third-party components
├── logs # Log files
│ └── domains # Project logs
├── modules # Modules
│ └── <module_name> # Main module directory
│ └── ospanel_data # Service files (source settings and configurations)
├── system # Program service directory
│ └── lang # Language files
├── temp # Temporary files
└── user # User data
└── ssl # Custom SSL files (keys, certificates, etc.)
- Operating System: For optimal performance, it is recommended to use Windows 10 or later.
- Installation Location: Install Open Server Panel on an SSD drive, if available, to improve module performance.
-
Unsupported Configurations:
- USB Flash Drives: It is not recommended to use USB flash drives to install Open Server Panel, as this can lead to rapid device wear and significantly reduce performance.
- External Drives with USB 2.0: Using external storage devices with the outdated USB 2.0 interface is not recommended due to low data transfer speeds.
-
Downloading the Distribution:
- Download the Open Server Panel distribution from the official website: https://ospanel.io/download/
-
Running the Installer:
- It is recommended to install Open Server Panel to the root of a drive (for example,
C:\OSPanel
). -
Allowed Characters in the Directory Path:
A-Za-z0-9-+\_.\:
- Portable Installation: Choose this option only if you plan to use Open Server Panel on different computers and are installing it on a portable drive. In other cases, standard installation is recommended.
- It is recommended to install Open Server Panel to the root of a drive (for example,
-
Running the System Preparation Tool:
- After the installation is complete, run the System Preparation Tool. This utility requires administrator rights to run.
- Exceptions: Running the System Preparation Tool is not required if you are only installing missing modules, and the same version of Open Server Panel is already installed.
-
VPN/Proxy Configuration:
-
Exceptions: Add the subnets
127.0.0.0/8
,127.127.127.0/24
, and127.127.126.0/24
to the exception list of your VPN/proxy service. - WARP 1.1.1.1: If you are using Cloudflare WARP, you must also add these subnets to the exception list, as WARP routes all requests through its proxy. Without proper exception settings, utility tools will not be able to interact correctly with the Open Server Panel, resulting in connection errors.
- Browsers: You also need to configure exceptions for local subnets in the proxy/VPN extension settings of your browsers. If you are using browser-based VPNs or proxies, make sure to add the same exceptions there.
- DNS-over-HTTPS/TLS: Modern browsers often use secure DNS providers (DoH, DoT), such as Cloudflare, Google, or Firefox Trusted Recursive Resolver. These services may block access to local Open Server Panel domains. You should disable DNS-over-HTTPS/TLS in your browser settings or add exceptions for local domains when working with Open Server Panel.
-
Exceptions: Add the subnets
-
Configuring the Firewall/Antivirus:
- Exceptions: Add the Open Server Panel directory to your firewall/antivirus exceptions.
- Protecting the HOSTS File: If your firewall/antivirus protects the HOSTS file and ignores programs added to exceptions, disable this feature.
- Traffic Monitoring: Disable the traffic monitoring or interception feature in your firewall/antivirus. Such actions by security software can slow down work with local projects, cause issues with SSL certificates, and lead to other unexpected errors.
If the program is not added to the antivirus's trusted applications list, the antivirus may:
-
Scan the program every time it is launched:
- The antivirus will check the program's executable files (e.g.,
.exe
) for malicious code.
- The antivirus will check the program's executable files (e.g.,
-
Scan files used by the program:
- The antivirus will analyze any files the program opens or creates (e.g., project files, configuration files, temporary files, etc.) to prevent potential threats.
-
Slow down the program's performance:
- Continuous real-time file scanning can significantly reduce performance, especially if the program frequently interacts with a large number of files or performs intensive read/write operations.
-
Block certain actions:
- If the program interacts with the network, the antivirus may monitor its network requests. This can sometimes cause conflicts, such as SSL certificate issues or slower connections. For example, there have been cases where Composer stopped working due to an antivirus substituting the certificate.
To avoid performance issues and conflicts, it is recommended to add the program to the antivirus's exceptions (trusted applications) list.
Caution
Running Open Server Panel with administrator rights is not recommended. This can pose a potential security risk and is not a requirement for the program to work.
-
Launching the Program:
- Launch Open Server Panel from the Start menu or manually by running the
.\bin\ospanel.exe
file (for portable installation). - Make sure the Open Server Panel icon appears in the Windows notification area.
- Launch Open Server Panel from the Start menu or manually by running the
-
Analyzing Launch Errors (if necessary):
- If the program fails to start, check its log.
-
Common Web Server Errors:
-
Address already in use (#10048 in listen: Bind)
: The specified IP address and port are already in use by another application. Change the IP/port settings in the Open Server Panel configuration or in the settings of the conflicting application. -
Permission denied (#10013 in listen: Bind)
: Permission to use the specified IP address and port is denied. Configure the system firewall to allow Open Server Panel network access. -
cURL (system\bin\curl.exe) failed to establish a connection with the program's API
: Configure the system firewall to allow the utilities included in the software package to access the Open Server Panel API and the Internet.
-
-
Launching the CLI Interface:
- Open the CLI interface: Menu -> Command Line Interface.
-
Error
The system cannot write to the specified device
: Change the console font to one compatible with UTF-8 encoding (for example, Consolas) and restart the CLI interface. -
Checking Logs: Run the command
osp log general
in the CLI interface to check for errors or warnings in the program log.
-
Initializing the Root CA Certificate (if necessary):
- If the root CA certificate was not created during installation, run the command
osp cacert init
in the CLI interface.
- If the root CA certificate was not created during installation, run the command
-
Preparing the System (if necessary):
- If the System Preparation Tool was not run during installation, run it using the command
osp sysprep
in the CLI interface. - Important: After completing the system preparation, be sure to restart your computer.
- If the System Preparation Tool was not run during installation, run it using the command
Important
Open Server Panel will not work correctly without first preparing the system using the System Preparation Tool. Learn more about the utility's functions here.
Done!
You have successfully launched Open Server Panel for the first time! After installation, several test projects are available for you to use. To get them running, follow these steps:
- In the program menu, select the PHP version for each project.
- Enable the selected modules.
Important: Note that all modules are disabled by default.
To install additional modules, run the Open Server Panel installer again, deselect all components, and select only the necessary modules.
When using the portable version of Open Server Panel on another computer, you need to install the root SSL certificate and prepare the system on that computer. To do this, launch the CLI interface and run the commands osp cacert init
and osp sysprep
.
-
Create the project root directory: In the
home
folder, create the project's root directory, for example,home\example.local
. Inside it, create a.osp
subdirectory for project settings and, if needed, apublic
subdirectory for storing your project files. -
Create the configuration file: In the
home\example.local\.osp
directory, create aproject.ini
file with the following content:[domain_name] public_dir = {base_dir}\public php_engine = PHP-7.2
Replace
domain_name
with your desired project domain name andPHP-7.2
with the preferred PHP version.If multiple projects are located in the same root folder, you can add multiple configuration blocks in a single file
project.ini
.
After restarting Open Server Panel, you can select the desired PHP and Nginx versions for your projects through the program menu.
Web Server Organization Options:
- Apache + PHP: Select only the PHP module for your project.
- Nginx + Apache + PHP: Select the Nginx and PHP modules for your project. In this configuration, Nginx acts as a proxy server.
- Nginx + PHP-FCGI: Select the Nginx and PHP-FCGI modules for your project.
- Nginx Only (without PHP): Select only the Nginx module for your project.
Important:
- Your project (domain) cannot be named
auto
. This name is reserved for system commands. - To access the domain in a browser, you need to enable the corresponding PHP engine and/or Nginx engine.
- Enable other modules required for your project to work.
- PHP modules without the
FCGI
prefix are composite modulesApache + PHP
and are named as such for ease of selection in the console.
If your browser does not use the Windows certificate store (for example, Firefox), manually import the Open Server Panel root certificate:
- Firefox: Settings -> Privacy & Security -> Certificates -> View Certificates... -> Authorities tab -> Import...
-
Path to the Certificate:
data\ssl\root\cert.crt
- Restart the browser.
Important
Repeat the certificate import after each regeneration of the root certificate using the command osp cacert init
.
- Detailed information about project configuration is available here.
- Examples of domains available by default after installing Open Server Panel can be found in the
home
directory.
Open Server Panel uses CMD.exe
(the standard Windows command-line interpreter) by default. The console is selected through the program settings.
Tip
For a more convenient and modern experience, it is recommended to install and use Windows Terminal. Windows Terminal is a new application for working with the command line that supports various shells, including Command Prompt, PowerShell, and WSL.
Important:
- PowerShell is not supported. Do not use PowerShell to work with Open Server Panel.
- When using Windows Terminal, choose the "Command Prompt" profile, not "Windows PowerShell".
Usage: osp <command> [<arguments>]
Environment management:
add <MODULE|ADDON> Merge the environment of the module/addon with the current environment
info Show information about current environment
project <DOMAIN> [start] Activate project environment and go to its root directory
Use [start] to launch the project (if configured)
Don't specify any arguments to launch the project selector
Use "auto" domain to determine the project by the current directory
reset [init] Reset current console environment (original system environment)
Use [init] to initialize the command line interface
use <MODULE|ADDON> Apply the environment of the specified module or addon
When the module is disabled, some functions (utilities, commands,
database operations) may be unavailable!
Module management:
init <MODULE> [PROFILE] Reload module settings and recreate temporary files (configs)
If necessary, specify a new active settings profile for the module
This command is not available for modules in active state!
Apply the module environment again (command "use" or "add"), if it
is currently active, and the settings or settings profile has changed!
off <MODULE> Disable module
on <MODULE> [PROFILE] Enable module (if necessary, specify a new active profile)
restart <MODULE> [PROFILE] Restart module (if necessary, specify a new active profile)
shell <MODULE> Launch shell or module command line interface (if available)
status <MODULE> Show information about module status
Node.js management:
node install <N> Install Node.js version. Version number <N> options:
- specific version number
- "latest" for the latest version
- "lts" for the latest LTS version
After installation, use commands "osp use Node-x.x.x" or
"osp add Node-x.x.x" with the full version number
node list [available] Show list of installed Node.js versions
Use flag [available] to view available Node.js versions
node uninstall <N> Uninstall previously installed Node.js version
Other commands:
addons Show information about addons
cacert <init|show|deinit> Generate and install|show|remove root certificate (CA)
When installing a new one, all old root certificates will be removed
Restart your browser to apply the new root certificate
convert <DOMAIN> Convert domain name from/to Punycode
exit Terminate the program (current environment will be reset)
log <PATTERN> [N] Show logs by file path filter (last N lines)
Use regular expression to select displayed logs
Show all PHP-8.0 module logs: osp log php-8\.0
Show all domain access logs: osp log domains\\(.+)_access
Show all program logs: osp log "\\(general|api|scheduler)"
Show all available logs (last 15 lines): osp log . 15
modules Show information about modules
projects Show information about projects
status Show status of all systems (tasks, domains, addons, and modules)
sysprep [silent|ssd] Launch System Preparation Tool
Add [silent] to run system preparation in silent mode
Flag [ssd] is similar to [silent] (but with optimization for SSD)
Silent mode preparation is performed automatically, progress
is not displayed. After completion, the system will be restarted!
tasks Show information about scheduler tasks
version Show program version information
Usage examples:
osp exit & ospanel Restarting program
osp use PostgreSQL-9.6 Application in the PostgreSQL-9.6 module environment console
osp on PHP-8.1 myprofile Enabling PHP-8.1 module with changing settings profile to MyProfile
osp restart mysql-8.0 Restarting MySQL-8.0 module (module name is accepted in any case)
osp reset & osp add bind Combining system environment with Bind environment
Available utilities:
aria2c Utility for downloading files via HTTP(S), (S)FTP and BitTorrent prot.
bat Cat (linux) clone with syntax highlighting and Git integration
brotli Open source lossless data compression utility
curl Command line tool for transferring data with URLs
dust Utility similar to du (linux), but more intuitive and understandable!
fd Simple and fast utility for finding entries in the file system
gzip Utility for compressing/restoring files using the Deflate algorithm
jq Lightweight and flexible command-line JSON processor
mmdbinspect Tool for searching records in one or more .mmdb databases
sass Dart Sass — popular SASS/SCSS file compiler
sd Intuitive program for finding and replacing text in files
wget Non-interactive console program for downloading files
xh Convenient and fast tool for sending HTTP requests
For the following CLI commands, the silent
argument is available, which suppresses the output of all informational messages except warnings and error messages:
osp use ...
osp add ...
osp project ...
osp reset
osp reset init
For the osp reset init
command, instead of the silent
argument, you can use the noprint
argument to suppress the output of environment information.
For the following CLI commands, you can use the all
argument instead of the module name:
osp init
osp off
osp on
osp restart
osp status
Note
Only use the all
argument if you are absolutely sure of your actions.
A process environment is a set of variables and their values that determine the behavior of the operating system and applications running in that environment. These variables are used to store information required by applications and to configure system parameters.
- Each running process in the system has its own environment, so it is often referred to as the process environment.
- In the console, use the
set
command to view environment variables and their values.
Open Server Panel inherits the environment of the parent process (usually explorer.exe
, i.e., the standard system environment) when it starts and retains it until it exits.
- All processes launched by Open Server Panel through the menu, console (only for the "System" environment), or task scheduler also inherit this environment.
- Important: If the environment settings in your system have changed while Open Server Panel is running, you may need to restart the program.
Open Server Panel modules run in their own isolated environment, which is formed as follows:
- System Environment Filtering: Environment variables that are not listed in the allowed variables in the program or module settings are removed from the system environment.
- Adding Variables: Additional variables specified in the program or module settings are added to the filtered environment.
-
Pre-Configured Environment: All Open Server Panel modules have a ready-to-use environment that can be activated with the
osp use ...
command. -
Quick Launch of shell/cli: To launch the shell/cli shell of a module, use the
osp shell ...
command. No activation or attachment of the module environment is required.
The current environment is always displayed in the console window title (or tab name), for example: PHP-8.0 + MySQL-5.7 | Open Server Panel
.
-
Combining Environments: Modules of different types can be combined into one environment using the
osp add ...
command. -
Variable Name Conflicts: If variables with the same name exist in different environments, the final variable value is taken from the environment of the module that was connected last (except for the
PATH
variable, whose values are combined). -
Switching Between Projects: To switch between projects in the console, use the
osp project ...
command, which activates the project environment (PHP/Nginx/Node + modules and add-ons specified by theenvironment
option in theproject.ini
file) and navigates to its root directory (seeproject_dir
).
Note
PHP modules are combined (except for modules with the FCGI
prefix) and include Apache and PHP.
To run multiple modules simultaneously, use the osp on
command for each module:
osp on Redis-7.0
osp on MySQL-5.7
osp on PHP-7.4
Important
For correct setting of the path to the temporary files directory (variables TMP
and TEMP
), connect the most important module last.
To combine the environments of several modules without isolation from the system PATH
variable, use the following commands:
osp reset
osp add Redis-7.0
osp add MySQL-5.7
osp add PHP-7.4
To combine the environments of several modules with isolation from the system PATH
variable, use the following commands:
osp use Redis-7.0
osp add MySQL-5.7
osp add PHP-7.4
After executing the commands, you will see the following output in the console:
Redis-7.0: Module worker process started successfully
MySQL-5.7: Module worker process started successfully
PHP-7.4: Module worker process started successfully
Current environment: Redis-7.0
Current environment: Redis-7.0 + MySQL-5.7
Current environment: Redis-7.0 + MySQL-5.7 + PHP-7.4
Now you can work with PHP-7.4, Apache-2.4, MySQL-5.7, and Redis-7.0 simultaneously:
php -v
httpd -V
mysql -V
redis-cli -v
- Ready to Use: Composer is pre-installed and ready to use without additional configuration.
- Environment Activation: To work with Composer in the console, activate the environment of any project or PHP module.
- Isolated Versions: Each PHP module has its own version of Composer and a separate home directory.
Example of installing Zephir in PHP 7.4 using Composer:
-
Enable the Extension: Uncomment the line
extension=zephir_parser
in the.\config\PHP-7.4\default\templates\php.ini
file. -
Restart PHP: Run the command
osp restart php-7.4
in the CLI interface (Menu -> Command Line Interface). -
Activate the Environment: Run the command
osp use php-7.4
. -
Install Zephir:
cd %COMPOSER_HOME% composer require phalcon/zephir
-
Verify Installation: Run the command
zephir help
.
NVM (Node Version Manager)
- Built-in Tool: NVM is included in the Open Server Panel distribution and is installed as an add-on.
-
Working Through a Layer: Interaction with NVM is carried out through a special layer using the command
osp node ...
. -
Configuring the Launch Command: Specify the application launch command in the project settings using the
start_command
parameter. -
Example:
start_command = nodemon app.js
Tip
For convenient application launching, use nodemon. An example of using nodemon
can be found here.
Important
When working with NVM, pay attention only to error messages.
Ignore NVM advice on using nvm ...
commands - they are not available in Open Server Panel.
This NVM implementation is due to the fact that the original NVM does not support the simultaneous use of multiple versions of Node.js.
The built-in task scheduler works similarly to the Cron daemon in Unix systems. Scheduler tasks are described in the <project>\.osp\tasks.ini
file.
Important
To apply changes to the tasks.ini
file, you must restart Open Server Panel.
-
Base Directory: All tasks are run in the base directory of the project (see
base_dir
). - Project Status: Tasks are not executed if the project is in the "Off" or "Error" state.
Each section in the tasks.ini
file describes a set of tasks for the project, the name of which is specified in the section title.
The task execution schedule consists of 7 columns separated by spaces. The columns specify the execution time and task settings (minute, hour, day, month, day of the week, limit, switch). The first 5 columns can contain a number, a list of numbers separated by commas, a range of numbers separated by a hyphen, the characters *
or /
. Columns 6-7 can only contain numbers and the *
symbol.
* * * * * * * command
- - - - - - -
| | | | | | |
| | | | | | ----- enable/disable task (* or 1 - enabled, 0 - disabled)
| | | | | ------- limit on the number of launches (* or 0 - unlimited)
| | | | --------- day of the week (1-7)
| | | ----------- month (1-12)
| | ------------- day of the month (1-31)
| --------------- hour (0-23)
----------------- minute (0-59)
Examples:
15 14 1 * * * * # execute on the 1st of every month at 14:15
0 22 * * 1-5 * * # every weekday at 22:00
23 */2 * * * * * # execute at 0:23, 2:23, 4:23, etc.
5 4 * * 7 * * # execute at 4:05 on Sundays
15 10,13 * * 1,4 * * # execute on Monday and Thursday at 10:15 and 13:15
* * * * * * * # execute every minute
0-59/2 * * * * * * # execute on even minutes
1-59/2 * * * * * * # execute on odd minutes
*/5 * * * * * * # execute every 5 minutes
* * * * * 1 0 # execute once after starting the program (task disabled)
You can use the following template variables in scheduled tasks:
Variable | Description |
---|---|
{root_dir} |
Open Server Panel root directory (full path) |
{root_drive} |
Root directory drive letter |
{root_path} |
Path to the Open Server Panel root directory |
{base_dir} |
Project base directory |
{host} |
Domain name (Punycode is used for internationalized domain names) |
{host_decoded} |
Visible domain name (without Punycode) |
{nginx_engine} |
Nginx engine |
{node_engine} |
Node.js engine |
{php_engine} |
PHP engine |
{project_dir} |
Project root directory |
{project_url} |
Project URL |
{public_dir} |
Project public directory |
{start_command} |
Project launch command (if configured) |
{terminal_codepage} |
Console encoding (see terminal_codepage ) |
In addition to template variables, you can use any Windows environment variables, for example: %COMSPEC%
, %SYSTEMDRIVE%
, %USERNAME%
, %PATH%
, etc.
Please note that if you need to execute a command within the project environment, you need to specify the path to cmd.exe
(using the %COMSPEC%
environment variable) and activate the project environment using osp project
before executing the command itself.
To execute a command in a project environment:
- Specify the path to
cmd.exe
using the%COMSPEC%
environment variable. - Activate the project environment using the
osp project
command before executing the command.
Example of the tasks.ini
file:
[example.local]
Launch Node App = * * * * * 1 * "%COMSPEC%" /c "osp project {host} start"
Backup = */5 * * * * * * "%COMSPEC%" /c "tar -czf {base_dir}\.osp\backup\{host_decoded}.tar.gz -C {public_dir} *"
Laravel Schedule = * * * * * * * "%COMSPEC%" /c "osp project {host} & php artisan schedule:run"
[forum.example.local]
Call cron.php via HTTPS = */30 * * * * * 0 wget --secure-protocol=TLSv1_2 -q --no-cache https://{host}/cron.php -O nul
Call cron.php from PHP = 0-59/2 * * * * * * "%COMSPEC%" /c "osp project {host} & php -f cron.php"
Backup = */5 * * * * 1 * "%COMSPEC%" /c "tar -czf {base_dir}\.osp\backup\{host_decoded}.tar.gz -C {public_dir} *"
Example of a task with saving output to a file:
[my-project.loc]
Test Task = * * * * * * * "%COMSPEC%" /c "osp project {host} & php -f {base_dir}\script.php >> {base_dir}\log.txt"
In this example, the task will run every minute and execute the script.php
script using the PHP engine selected for the project. The result of the script execution will be written to the log.txt
file.
The task name is required.
- Modules are disabled by default: Before you start, enable the modules you need.
- Parallel operation: Modules can be launched in parallel without conflicts.
- Isolated environment: Each module runs in its own isolated environment, which prevents conflicts with other software.
- Support for modules of the same type: You can run multiple versions of the same module simultaneously (for example, MySQL 5.5 and MySQL 8.0).
- Local IP addresses: By default, all modules are configured to use only local IP addresses (except for the DNS and Mail category modules).
- Standard ports and credentials: Standard ports and logins are used. There are no default passwords or restrictions. These settings can be changed.
Important:
- PostgreSQL and UAC: Launching PostgreSQL modules is not possible when User Account Control (UAC) is disabled or when Open Server Panel is run with administrator rights.
- Security: Running Open Server Panel on public IP addresses without additional protection is extremely dangerous. This can lead to unauthorized access to your computer, up to and including complete control over the system and data loss.
Security recommendations:
- Strong passwords: Set strong passwords for all users whenever possible.
- Access restriction: Configure firewall rules, allowing access to modules only from trusted IP addresses.
-
Support for
.user.ini
: PHP FCGI modules support.user.ini
files at the directory level. PHP looks for.user.ini
in each directory, starting with the directory of the requested PHP file, and continues searching up to the root directory of the project. Only INI settings withINI_PERDIR
andINI_USER
modes are recognized in.user.ini
files.
- When Open Server Panel starts, all available modules are initialized.
- During initialization, the module configuration is checked and temporary files are created.
- This allows you to use the console utilities and commands of the module, regardless of whether it is enabled or not.
- Important: Some utilities and commands may not work if the module is disabled.
Initializing modules without enabling them can be useful for:
- Restoring databases
- Updating the data store
- Checking temporary configuration files
The diagram below shows the module launch scheme in Open Server Panel:
%%{init: {'theme':'forest'}}%%
graph TD;
A(Start<br>Open Server Panel)-->B(Module Initialization);
B-->|"Fail"| C(Status<br>'Error');
B-->|"Success"| D(Status Check);
D-->|"If disabled"| F(Status<br>'Disabled');
D-->|"If enabled"| G(Module Launch);
G-->|"Fail"| C;
G-->|"Success"| H(Status<br>'Enabled');
H-->|"If process<br>unexpectedly terminates<br>during probation"| C;
H-->|"If process<br>unexpectedly terminates"| G;
Description:
- Start Open Server Panel: When Open Server Panel starts, all available modules are initialized.
- Module Initialization: The module configuration is checked and temporary files are created.
- "Error" Status: If initialization fails, the module enters the "Error" state.
- Status Check: If initialization is successful, the module status is checked (enabled/disabled).
- "Disabled" Status: If the module is disabled, it remains in this state.
- Module Launch: If the module is enabled, it is launched.
- "Enabled" Status: If the launch is successful, the module enters the "Enabled" state.
-
Process Termination During Probation: If the module process unexpectedly terminates during the probation period (see the
probation
parameter in the module settings), the module enters the "Error" state. - Process Termination: If the module process unexpectedly terminates after the probation period, the module is restarted.
To connect to modules from PHP scripts and third-party applications, use the following parameters:
-
Host: Module name (for example,
MySQL-5.7
). Case does not matter (mysql-5.7
orMYSQL-5.7
are also valid). You can add.local
for compatibility with applications that require a domain name (for example,mysql-5.7.local
). - Port: Standard port of the module.
- User: Standard module user (if applicable).
- Password: No password (if applicable).
Module | Host | Port | User | Password |
---|---|---|---|---|
MySQL-5.7 |
MySQL-5.7 , mysql-5.7 , mysql-5.7.local
|
3306 |
root |
- |
Memcached-1.6 | Memcached-1.6 |
11211 |
- | - |
MongoDB-4.4 | MongoDB-4.4 |
27017 |
- | - |
PostgreSQL-12 | PostgreSQL-12 |
5432 |
postgres |
- |
RabbitMQ-3.13 | RabbitMQ-3.13 |
5672 |
- | - |
Redis-5.0 | Redis-5.0 |
6379 |
- | - |
SMTP | 127.0.0.1 |
25 |
- | - |
SMTP Server:
- For the SMTP server to successfully process an email, the sent email must contain a
FROM
header. - If the
FROM
header is missing, activate and fill in thesendmail_from
variable in thephp.ini
file template.
Caution
Do not use internal module IP addresses! Internal IP addresses are used only for internal module operation and are subject to change. They are not intended for connecting to modules.
Tip
It is recommended to use DBeaver as a universal database manager. DBeaver supports various types of databases (MySQL, MariaDB, PostgreSQL, SQLite), is regularly updated, and works stably.
Open Server Panel includes over 115 PHP extensions, which are disabled by default.
To enable an extension:
- Uncomment the corresponding line in the PHP configuration file template (
php.ini
). - Restart the PHP module.
PHPINFO: PHP 7.2 | PHP 7.3 | PHP 7.4 | PHP 8.0 | PHP 8.1 | PHP 8.2 | PHP 8.3 | PHP 8.4
Note
If an extension is not available for a particular version of PHP, it means that the extension developers do not provide, develop, or compile a Windows version for that version of PHP.
Caution
Do not change the order of extensions in the php.ini
file template. Extensions are connected in a certain order, depending on each other, and may not work if the activation order is changed.
Don't enable all PHP extensions at once - only activate those that your websites actually need. This provides two advantages:
- Less chance of extensions conflicting with each other
- The program will run faster and use less computer memory
For example, if your site doesn't work with Redis NoSQL databases, you don't need to enable the redis extension.
Extension | Dependency | Incompatibility |
---|---|---|
blackfire |
Caution! The extension may cause a memory leak. |
ioncube , opcache , opencensus , pcov , xdebug , xhprof
|
crypto |
openssl |
|
ev |
openssl , sockets
|
|
event |
openssl , sockets
|
|
exif |
mbstring |
|
http |
curl , intl , propro , psr , raphf , sockets
|
|
http_message |
psr |
|
ioncube |
Caution! The extension may cause PHP to malfunction. |
blackfire , opencensus , pcov , xhprof , xdebug
|
libevent |
sockets |
|
mailparse |
mbstring |
|
memcached |
igbinare |
|
oauth |
curl |
|
opcache |
blackfire Enabling xdebug or pcov disables JIT compilation. |
|
opencensus |
blackfire , ioncube , pcov , xdebug , xhprof
|
|
pcov |
blackfire , ioncube , opencensus , xdebug , xhprof
|
|
phalcon |
curl , fileinfo , gd2 , gettext , imagick , mbstring , openssl , pdo
|
|
rdkafka |
simple_kafka_client |
|
redis |
igbinary |
|
simple_kafka_client |
rdkafka |
|
solr |
curl |
|
ssh2 |
openssl |
|
stomp |
openssl |
|
xdebug |
blackfire , ioncube , opencensus , pcov , xhprof
|
|
xhprof |
blackfire , ioncube , opencensus , pcov , xdebug
|
|
yac |
Simultaneous activation in multiple PHP modules is not allowed! | |
yar |
curl |
Open Server Panel uses Apache version 2.4.54 (VC15) for PHP 7.2-7.4 and Apache version 2.4.63 (VS17) for PHP 8.0-8.4. The distribution includes additional Apache modules listed in the table below.
Module | Version | Link |
---|---|---|
mod_antiloris |
0.6.0 | https://www.monshouwer.eu/download/mod_antiloris/ |
mod_apreq2 |
2.16 | https://httpd.apache.org/apreq/docs/libapreq2/group__mod__apreq2.html |
mod_authn_ntlm |
1.0.8 | https://github.com/YvesR/mod_authn_ntlm |
mod_fcgid |
2.3.10 | https://httpd.apache.org/mod_fcgid/mod/mod_fcgid.html |
mod_jk |
1.2.46 (PHP 7.2-7.4) 1.2.50 (PHP 8.0-8.4) |
https://tomcat.apache.org/connectors-doc/reference/apache.html |
mod_limitipconn |
0.24 | https://dominia.org/djao/limitipconn2.html |
mod_log_dbd |
1.0.6 | https://sourceforge.net/p/dbd-modules/wiki/mod_log_dbd/ |
mod_log_rotate |
1.00a (PHP 7.2-7.4) 1.0.2 (PHP 8.0-8.4) |
https://github.com/JBlond/mod_log_rotate |
mod_maxminddb |
1.1.0 (PHP 7.3-7.4) 1.2.0 (PHP 8.0-8.4) |
https://github.com/maxmind/mod_maxminddb |
mod_perl |
2.0.12 | https://perl.apache.org |
mod_vhost_dbd |
1.0.6 | https://sourceforge.net/p/dbd-modules/wiki/mod_vhost_dbd/ |
mod_view |
2.2 | |
mod_watch |
4.3 | https://github.com/pld-linux/apache-mod_watch |
mod_xsendfile |
1.0-P1 | https://tn123.org/mod_xsendfile/ |
The following Nginx modules have been added to the Open Server Panel distribution, which are not available in the original Nginx distribution:
brotli_module
fancyindex_module
http_geoip_module
http_geoip2_module
http_image_filter_module
poll_module
stream_geoip_module
stream_realip_module
stream_ssl_preread_module
Project settings are stored in the <project>\.osp\project.ini
file.
-
Multiple domains/subdomains: If a project contains multiple domains or subdomains, add a separate section for each in the
project.ini
file.
Important:
- Applying changes: Restart Open Server Panel to apply changes. If necessary, clear your browser's DNS cache.
- Switching PHP/Nginx/Node.js versions: Restarting Open Server Panel is not required when changing the PHP, Nginx, or Node.js version through the program menu. All necessary restarts and initializations are performed automatically.
- Chromium-based browsers and IPv6: Chromium-based browsers (Chrome, Edge, Vivaldi, Yandex.Browser, etc.) cannot see local domains with IPv6 addresses without IPv6 internet access. To work with such domains, use Firefox or disable IPv6 for PHP/Nginx modules and domains.
- VPN and proxy: Local domains may be unavailable when using VPN or proxy. Add all local domains to VPN/proxy exceptions.
-
Name conflicts: Do not create domains with names that match the names of modules or add-ons. Your project (domain) cannot be named
auto
. This name is reserved for system commands. -
localhost
: Do not uselocalhost
as a domain name. If this is absolutely necessary, specify127.0.0.1
as the domain'sip
.
This section contains the main project settings. All parameters are optional.
- Internationalized domains: Both regular and Punycode representations are allowed.
- IP addresses as domain names: Using an IP address as a domain name is prohibited. For direct access to a domain by IP, use aliases.
Parameter | Description |
---|---|
aliases |
Domain aliases (space-separated).Other domains: You can use other domains as aliases (for example, when moving a site to a new domain). Important: Aliases of the form *.example.local are not supported by the HOSTS file in Windows. Do not use * as a wildcard without activating a DNS module (Bind or Unbound) and properly configuring the domain zone.Inheritance: If the parameter is not set, the global value from the main Open Server Panel settings is used. Default value: www.{host}
|
category |
Project category in the program menu. Hidden category: A special category hidden is available for service resources - projects in this category are not displayed in the main menu. This is convenient for placing administrative tools such as phpMyAdmin. |
enabled |
Enable/disable the project (on /off ).Inheritance: If the parameter is not set, the global value from the main Open Server Panel settings is used. Default value: on
|
environment |
A list of add-ons and modules (space-separated), whose environments are appended to the project environment when it is activated with the osp project <DOMAIN> command.System : Allows you to use programs installed on the system (for example, git.exe or ssh.exe ).PHP/Nginx/Node.js modules: The environments of these modules are always connected (if set for the domain) and do not need to be specified in this parameter. Inheritance: If the parameter is not set, the global value from the main Open Server Panel settings is used. Default value: (empty) |
http_port |
Port for HTTP protocol. Inheritance: If the parameter is not set, the global value from the main Open Server Panel settings is used. Default value: 80
|
https_port |
Port for HTTPS protocol. Inheritance: If the parameter is not set, the global value from the main Open Server Panel settings is used. Default value: 443
|
ip |
IP address of the domain. Multiple IP addresses: You can specify multiple IP addresses (space-separated) and use IPv6. When updating the HOSTS file, the first specified IP will be assigned to the domain. Important: Do not assign the same IP address to domains with different values for php_engine or nginx_engine .Automatic assignment: Leave the value blank for automatic IP address assignment. Inheritance: If the parameter is not set, the global value from the main Open Server Panel settings is used. Default value: (empty) |
nginx_engine |
The Nginx engine used as a web server for this domain. FCGI: When using nginx_engine , select the FCGI PHP module.Proxy server: Select a regular PHP module (not FCGI) if Nginx is used as a proxy server for Apache. Non-existent module: If the specified Nginx module is not installed, the domain will be ignored. Inheritance: If the parameter is not set, the global value from the main Open Server Panel settings is used. Default value: (empty) |
node_engine |
The Node.js engine used to run Node.js applications for this domain. Node.js installation: First install the required version of Node.js using the NVM add-on. Inheritance: If the parameter is not set, the global value from the main Open Server Panel settings is used. Default value: (empty) |
php_engine |
The PHP engine used to process PHP files for this domain. Non-existent module: If the specified PHP module is not installed, the domain will be ignored. Inheritance: If the parameter is not set, the global value from the main Open Server Panel settings is used. Default value: (empty) |
project_dir |
The project's root directory, used by the osp project <DOMAIN> command. Template variables can be used.Inheritance: If the parameter is not set, the global value from the main Open Server Panel settings is used. Allowed characters: A-Za-z0-9-+_.\: Default value: {base_dir}
|
project_url |
The URL opened when selecting the Open project in browser item in the Open Server Panel menu. Template variables can be used. Admin panel: Use this parameter to specify the URL of the CMS admin panel. Default value: https://{host_decoded}
|
public_dir |
The project's public directory. Template variables can be used. Inheritance: If the parameter is not set, the global value from the main Open Server Panel settings is used. Allowed characters: A-Za-z0-9-+_.\: Default value: {base_dir}
|
ssl |
Enable/disable SSL (on /off ). If SSL is disabled, working with the domain over HTTPS will not be possible.Inheritance: If the parameter is not set, the global value from the main Open Server Panel settings is used. Default value: on
|
ssl_cert_file |
Certificate file. Template variables can be used. Allowed characters: A-Za-z0-9-+_.\: Default value: automatically generated certificate |
ssl_key_file |
Key file. Template variables can be used. Allowed characters: A-Za-z0-9-+_.\: Default value: automatically generated key |
start_command |
Project start command (for example, nodemon app.js ). Template variables can be used.Encoding: By default, encoding 65001 (UTF-8) is used. You can change the encoding with the command chcp <CODEPAGE> .Inheritance: If the parameter is not set, the global value from the main Open Server Panel settings is used. Default value: (empty) |
terminal_codepage |
Console codepage when working with the project environment (for example, 65001 or 1251 ). If the parameter is not set locally and globally, the codepage set for the PHP module environment will be used.Inheritance: If the parameter is not set locally, the global value from the main Open Server Panel settings is used. Default value: (empty) |
Variable | Description |
---|---|
{base_dir} |
Root directory of the project (where the .osp directory is located) |
{host} |
Domain name (Punycode is used for internationalized domains) |
{host_decoded} |
Visible domain name (without Punycode) |
{host_scheme} |
Project request scheme ("http" or "https", depends on the SSL parameter in project settings) |
{http_port} |
HTTP protocol port for project requests |
{https_port} |
HTTPS protocol port for project requests |
{nginx_engine} |
Nginx engine |
{node_engine} |
Node.js engine |
{php_engine} |
PHP engine |
{project_dir} |
Root directory of the project |
{public_dir} |
Public directory of the project |
{scheme_port} |
Project request port (":{http_port}" or ":{https_port}", depends on the SSL parameter in project settings). If {http_port} or {https_port} has the standard value 80 or 443, then {scheme_port} will be empty. |
{root_dir} |
Root directory of Open Server Panel (full path) |
{root_drive} |
Root directory drive |
{root_path} |
Path to the root directory of Open Server Panel |
{terminal_codepage} |
Console encoding |
Open Server Panel uses a universal domain configuration.
-
Apache: Configuration is set using a macro in the
httpd.conf
template. -
Nginx: Configuration is defined in the
virtual_*_host.conf
templates.
To add your own domain configuration inside the automatically configured <VirtualHost>
(Apache) or Server{}
(Nginx) block:
-
Create a directory and a file: Create a
<project>\.osp\Apache
or<project>\.osp\Nginx
directory and a<domain_name>.conf
file in this directory.-
Example:
<project>\.osp\Apache\example.local.conf
- Punycode: Use Punycode for internationalized domains.
-
Example:
- Add configuration: Add the necessary directives to the created file.
- Restart Open Server Panel.
Tip
This method allows you to use your own configuration without having to configure the host parameters in detail. Keep in mind that you are already inside the <VirtualHost>
(Apache) or Server{}
(Nginx) block, and the main host parameters are already set.
To create your own <VirtualHost>
(Apache) or Server{}
(Nginx) block:
-
Create a directory and a file: Create a
<project>\.osp\Apache
or<project>\.osp\Nginx
directory and a<domain_name>.conf
file in this directory.-
Example:
<project>\.osp\Apache\example.local.conf
- Punycode: Use Punycode for internationalized domains.
-
Example:
-
Add the configuration block: Add the
<VirtualHost>
(Apache) orServer{}
(Nginx) block with the full domain configuration to the created file. - Restart Open Server Panel.
Important
This method requires advanced knowledge of Apache/Nginx and Open Server Panel.
-
Directory
.\osp\bin
: Create a.osp\bin
directory in the project directory to store utility scripts. This directory will be added to thePATH
variable when activating the project environment. The project's base and public directories are always added toPATH
. -
Additional menu items and language constants: A project can add items to the Open Server Panel menu and define its own language constants. You can find an example in the
full-example.local
project, available after installing Open Server Panel.
To configure project environment variables, create a .osp\env.ini
file.
Example:
[full-example.local]
ANY_VALUE = SOMETHING
The settings for each module are stored in the .\config\<module_name>\<profile_name>\settings.ini
file.
Configuration templates for each module are stored in the .\config\<module_name>\<profile_name>\templates
directory.
-
Default profile:
default
. - Changing profile: The active profile can be changed through the Open Server Panel menu.
-
Backups:
- Original settings and configuration files:
.\modules\<module_name>\ospanel_data\default
. - Original data files (if any):
.\modules\<module_name>\ospanel_data\default_data
. -
Future functionality: These data will be used to restore the original module configuration in the control panel, so never use or modify the contents of the
.\modules\<module_name>\ospanel_data
directory.
- Original settings and configuration files:
Important:
- Applying settings changes: Restart Open Server Panel.
- Applying changes to templates: Restart or reinitialize the module.
This section contains the main settings of the module. All parameters are optional.
Parameter | Description |
---|---|
additional_ssl_hosts |
A list of additional IP addresses and domain names to be included in the automatically generated SSL certificate. |
ignore_shutdown_all |
When this option is enabled, the module will ignore the shutdown-all command and continue running even after other modules are turned off. The setting does not affect the ability to individually disable a module or the disabling of all modules triggered via the console interface (in this case, all modules will be disabled). |
ip |
IP address of the module. Multiple IP addresses: You can specify multiple IP addresses (space-separated) and use IPv6 if the module supports it. When updating the HOSTS file, the first IP address specified will be used. DNS: This parameter is ignored for DNS modules. |
port |
Port of the module. PHP/Nginx/DNS: This parameter is ignored for PHP, Nginx, and DNS modules. |
clean_directories |
Directories to be cleared before starting the module (space-separated). For example: cache, temporary files, etc. Template variables can be used. |
log_directory |
Directory for storing module logs. Created automatically if it doesn't exist. Template variables can be used. |
log_level_values |
Available logging levels (not supported by all modules). |
log_level |
Logging level (value from log_level_values ). |
query_log_values |
Available query logging levels (not supported by all modules). |
query_log_level |
Query logging level (value from query_log_values ). |
shell_command |
Command to launch the module's shell/cli shell. Template variables can be used. |
ssl_auto_cert |
Automatic generation and use of SSL certificate (on /off ).Disabling: - This parameter is always set to off if the module's IP address is not specified.- When disabling this parameter, you must manually configure the module's SSL settings (disable SSL or specify your own keys and certificates). - Browsers without Windows Certificate Store (e.g., Firefox): Import the Open Server Panel root certificate ( data\ssl\root\cert.crt ) into the browser. Repeat the import after each regeneration of the root certificate with the command osp cacert init . |
start_command |
Command to start the module. Template variables can be used. |
start_directory |
Module start directory (must exist). Template variables can be used. |
work_directories |
Directories required for the module to work (space-separated). Created automatically if they don't exist. Template variables can be used. |
used_addons_environment |
List of add-ons (space-separated) whose environments (if any) are appended to the module's environment. Information indicators in the console do not display these additional environments. Important: Use this option only if you fully understand its purpose. |
allowed_system_env_vars |
List of Windows environment variables (space-separated) passed to the module's environment. Purpose: Filtering the module's working environment from the environment of similar software installed on the system. Important: Only modify this list if you fully understand the consequences. auto value (default): The global value from the main Open Server Panel settings is used. |
log_max_filesize |
Maximum log file size (0 — no limit). File recreation: When the specified size is exceeded, the log file will be recreated on the next module startup. auto value (default): The global value from the main Open Server Panel settings is used.Units: B (bytes), K (kilobytes), M (megabytes), G (gigabytes), T (terabytes).Log cleaning on startup: Set the value to 1 (byte) to clear logs on every module startup. |
log_write_title |
Add a header to the log file each time the module is started (on /off ). Useful for separating work sessions if automatic log cleaning is disabled.auto value (default): The global value from the main Open Server Panel settings is used. |
max_probation_fails |
Maximum number of consecutive (in a row) unsuccessful module starts (see probation ), after which the module will go into the "Error" state.auto value (default): The global value from the main Open Server Panel settings is used. |
max_shutdown_time |
Maximum module shutdown time (0 — no limit). Forced shutdown: If the module does not shut down within the specified time, it will be forcibly terminated. Minimum value: 30 seconds. Important: Do not set this limit without fully understanding the consequences. Premature termination of the module can lead to problems (data corruption, incomplete log writing, etc.). auto value (default): The global value from the main Open Server Panel settings is used.Units: s (seconds), m (minutes), h (hours), d (days). |
probation |
Module health check time (probation period). Countdown start: From the moment the module starts successfully. "Error" state: If the module terminates unexpectedly during the probation period, it will not be restarted and will go into the "Error" state. This state is also set if the module cannot start at the system level. Disabling: A value of 0 disables the probation period. The module will always be restarted on failure. Recommendations: It is not recommended to set a value of 0 or a very short check period (less than 30 seconds). auto value (default): The global value from the main Open Server Panel settings is used.Units: s (seconds), m (minutes), h (hours), d (days). |
silent_mode |
Silent mode (on /off ). This mode disables pop-up error messages from the Windows Error Reporting service and the module itself.Disabling: Only disable this mode to diagnose problems with the module. auto value (default): The global value from the main Open Server Panel settings is used. |
terminal_codepage |
Console codepage when working with the module's environment. Special values: - system : System codepage.- auto : Global value from the main Open Server Panel settings.Empty value: The console codepage will not change when activating the module's environment or its shell/cli shell. |
time_zone |
Time zone in Etc/GMT format (for example, Etc/GMT-3 ).Special values: - system : System time zone.- auto : Global value from the main Open Server Panel settings.Important: The Etc/GMT format differs from UTC in reverse order (for example, Etc/GMT-3 = UTC/GMT+3 = UTC+03:00 = Europe/Moscow ). |
The following template variables can be used in the clean_directories
, log_directory
, shell_command
, start_command
, start_directory
, and work_directories
parameters:
Variable | Description |
---|---|
{module_name} |
Module name |
{parent_module} |
Parent module (specified in the descriptor file) |
{profile_name} |
Name of the current module settings profile |
{root_dir} |
Open Server Panel root directory (full path) |
{root_drive} |
Root directory drive |
{root_path} |
Path to Open Server Panel root directory |
The following variables are also available in the shell_command
and start_command
parameters if the corresponding parameters are set in the same section:
Variable | Description |
---|---|
{ip} |
Module IP address(es) |
{port} |
Module port |
{log_level} |
Logging level |
{query_log_level} |
Query logging level |
{terminal_codepage} |
Console codepage |
{time_zone} |
Time zone in Etc/GMT format |
In addition to template variables, you can use Windows environment variables, for example: %COMSPEC%
, %SYSTEMDRIVE%
, %USERNAME%
, %PATH%
, etc.
In this section, you can set/override the module's environment variables (supported variables depend on the module).
- Deleting a variable: Set an empty value.
Variable | Description |
---|---|
{module_name} |
Module name |
{parent_module} |
Parent module (specified in the descriptor file) |
{profile_name} |
Name of the current module settings profile |
{root_dir} |
Open Server Panel root directory (full path) |
{root_drive} |
Root directory drive |
{root_path} |
Path to Open Server Panel root directory |
The following variables are also available if the corresponding parameters are set in the [main]
section:
Variable | Description |
---|---|
{ip} |
Module IP address(es) |
{port} |
Module port |
{log_level} |
Logging level |
{query_log_level} |
Query logging level |
{terminal_codepage} |
Console codepage |
{time_zone} |
Time zone in Etc/GMT format |
In addition to template variables, you can use Windows environment variables, for example: %COMSPEC%
, %SYSTEMDRIVE%
, %USERNAME%
, %PATH%
, etc.
Sections with this name describe working with configuration file templates and other module service files. The number of such sections is not limited.
-
Location of templates:
.\config\<module_name>\<profile_name>\templates
. - Temporary files: During module initialization, templates are converted into temporary working files.
Parameter | Required | Description |
---|---|---|
comment |
Yes | The comment character used in the configuration file. |
destination |
Yes | Path to the temporary file. This file is recreated every time the module is initialized and cannot be edited. |
enabled |
No | Enable/disable the use of this configuration file (on /off ).off value: The file is temporarily not used.Default value: on
|
encoding |
No | Configuration file encoding. Allowed values: UTF8 , ANSI , ASCII .Default value: UTF8
|
directory_separator |
Yes | The directory separator used in resource paths. |
source_dir |
No | Directory to search for the source template file. Default value: .\config\<module_name>\<profile_name>\templates
|
The following template variables can be used in the destination
and source_dir
parameters:
Variable | Description |
---|---|
{module_name} |
Module name |
{parent_module} |
Parent module (specified in the descriptor file) |
{profile_name} |
Name of the current module settings profile |
{root_dir} |
Open Server Panel root directory (full path) |
{root_drive} |
Root directory drive |
{root_path} |
Path to Open Server Panel root directory |
The following template variables can be used in template files:
Variable | Description |
---|---|
{module_name} |
Module name |
{profile_name} |
Name of the current module settings profile |
{root_dir} |
Open Server Panel root directory (full path) |
{root_drive} |
Root directory drive |
{root_path} |
Path to Open Server Panel root directory |
Special variables | (only if set in the [main] section) |
{ip} |
Module IP address(es) |
{port} |
Module port |
{log_level} |
Logging level |
{query_log_level} |
Query logging level |
{shell_command} |
Command to launch the module's shell/cli shell |
{terminal_codepage} |
Console codepage |
{time_zone} |
Time zone in Etc/GMT format |
Service variables | (for module developers only) |
{apache_hosts} |
Apache hosts configuration block |
{api_domain} |
API domain |
{cmd_api_url} |
API URL for the command line interface |
{environment} |
Module environment formation block (Batch script format) |
{lang_N} |
Text string with number N from the language file (current language) |
{nginx_hosts} |
Nginx hosts configuration block |
{osp_version} |
Open Server Panel version |
{osp_version_datetime} |
Version release date (compilation date) |
{parent_module} |
Parent module (specified in the descriptor file) |
{web_api_url} |
API URL for the web interface |
{web_panel_url} |
Web interface URL |
{windows_environment} |
Windows environment (original, formed when Open Server Panel starts) |
In addition to template variables, you can use Windows environment variables, for example: %COMSPEC%
, %SYSTEMDRIVE%
, %USERNAME%
, %PATH%
, etc.
This section describes the system service configuration required by the module.
- Purpose: Checking the status of Windows services before starting the module.
- Service management: This section does not manage the state of services.
Example:
[services]
Dhcp = on
EMDMgmt = off
SysMain = on
To create a new settings profile:
-
Copy an existing profile: Copy the directory of an existing profile (for example,
.\config\<module_name>\Default
) to a new directory (for example,.\config\<module_name>\MyProfile
). -
Copy data (if any): If the module uses data from the
.\data
directory, copy the data directory of the existing profile (for example,.\data\<module_name>\Default
) to a new directory (for example,.\data\<module_name>\MyProfile
). -
Using original settings and data: Instead of copying an existing profile, you can use the original settings and data of the module from the
.\modules\<module_name>\ospanel_data\default
and.\modules\<module_name>\ospanel_data\default_data
directories, respectively. - Restart Open Server Panel.
-
Allowed characters in the profile name:
A-Za-z0-9-+_.
-
Advantages of additional profiles:
- Testing new configurations
- Experimenting with settings
Each Open Server Panel module has the following minimum file structure:
.
├── data
│ └── <module_name> # Module data directory (optional)
└── modules
└── <module_name> # Main module directory
└── ospanel_data # Service files (source settings and configurations)
├── default # Original profile directory
│ ├── settings.ini # Module settings file
│ └── templates # Templates directory
├── default_data # Original profile data directory (optional)
├── module.dat # Module description file
├── menu.ini # Module menu configuration file (additional items)
└── lang # Language files directory (English.ini, Russian.ini, etc.)
- Create a directory structure: Create directories as shown in the example above.
-
Language files (optional):
-
Location:
.\modules\<module_name>\ospanel_data\lang
-
Content: Module constants in the
[main]
section. -
Unique prefix: Use a unique prefix in the constant names (for example,
mymod_...
).
-
Location:
-
Additional menu (optional):
-
Location:
.\modules\<module_name>\ospanel_data\menu.ini
-
Unique IDs: Use unique IDs for sections that do not match the IDs from the
.\config\menu.ini
file. It is recommended to use a prefix equal to the module name.
-
Location:
-
Settings file:
-
Location:
.\modules\<module_name>\ospanel_data\default\settings.ini
-
Location:
-
Configuration file templates:
-
Location:
.\modules\<module_name>\ospanel_data\default\templates
-
Location:
-
Source data (optional):
-
Location:
.\modules\<module_name>\ospanel_data\default_data
(for example, databases)
-
Location:
-
Description file:
-
Location:
.\modules\<module_name>\ospanel_data\module.dat
-
Format: INI file
-
Section
[main]
with parameters:Parameter Description architecture
Module architecture: x64
orx86
category
Module category (you can use existing categories or create a new one) exclusive
Exclusive launch (only one module in this category can be enabled at a time): yes
orno
fast_start
Fast module start (without waiting for console initialization): yes
orno
fast_stop
Fast module stop (forced process termination): yes
orno
ipv6_support
IPv6 support: yes
orno
ip_separator
IP address separator in the module configuration (if multiple IP addresses are supported) kill_names
List of processes to terminate forcibly if the module cannot stop them on its own (for example, epmd.exe test.exe
)license
Link to the module license license_type
Type of module license min_windows_ver
Minimum supported Windows version (see the table below) timestamp
Module release timestamp version
Module version -
Minimum Windows version:
Version number Windows version 6.1.7601
Windows 7 SP1 6.2.9200
Windows 8 6.3.9600
Windows 8.1 10.0.10240
Windows 10 1507 10.0.10586
Windows 10 1511 10.0.14393
Windows 10 1607 10.0.15063
Windows 10 1703 10.0.16299
Windows 10 1709 10.0.17134
Windows 10 1803 10.0.17763
Windows 10 1809 10.0.18362
Windows 10 1903 10.0.18363
Windows 10 1909 10.0.19041
Windows 10 2004 10.0.19042
Windows 10 20H2 10.0.19043
Windows 10 21H1 10.0.19044
Windows 10 21H2 10.0.19045
Windows 10 22H2 10.0.22000
Windows 11 21H2 10.0.22621
Windows 11 22H2
-
-
Copying settings and data:
-
Settings: Create a directory
.\config\<module_name>\default
and copy the contents of the directory.\modules\<module_name>\ospanel_data\default
into it. -
Data: Create a directory
.\data\<module_name>\default
and copy the contents of the directory.\modules\<module_name>\ospanel_data\default_data
into it (if any).
-
Settings: Create a directory
- Restart Open Server Panel.
Caution
Do not use the directories .\modules\<module_name>\ospanel_data\default
and .\modules\<module_name>\ospanel_data\default_data
to work with the module. These directories store the original profile and are used to restore the module settings.
To enable the XDebug extension, for example, for PHP 8.1, follow these steps:
-
Open the PHP 8.1 Configuration File:
Navigate to the directory with the PHP 8.1 configuration templates:
.\config\PHP-8.1\default\templates\php.ini
-
Edit
php.ini
:Open the
php.ini
file in a text editor (e.g., Notepad++ or VS Code). -
Uncomment the Line to Load XDebug:
Find the line containing
zend_extension
and ensure it is uncommented (without a semicolon at the beginning of the line):zend_extension = xdebug
-
Configure XDebug Settings (Optional):
Here is an example of a basic configuration:
[xdebug] xdebug.mode = debug xdebug.start_with_request = yes xdebug.client_host = "localhost" xdebug.client_port = 9003
You can adjust the settings according to your needs.
-
Restart Open Server Panel:
After making changes to
php.ini
, restart the PHP module to apply the new settings. To do this:- Right-click on the Open Server Panel icon in the system tray.
- Select the required module and click Restart.
-
Verify XDebug is Working:
To ensure XDebug is enabled and working, create a file named
info.php
in the root directory of your web project with the following content:<?php phpinfo(); ?>
Open this file in a browser (e.g.,
http://example.local/info.php
) and look for the XDebug section in the displayed information. If XDebug is enabled and configured correctly, you will see information about XDebug.
After these steps, the XDebug extension should be successfully activated for PHP 8.1 in Open Server Panel.
phpMyAdmin is not included in the Open Server Panel package. Each user can choose which tool to use for database management according to their preferences.
You can install any suitable tool, for example:
-
Adminer
- Supported Databases: MySQL, MariaDB, PostgreSQL, SQLite, MS SQL, Oracle, Elasticsearch, MongoDB.
- Features: Lightweight and fast web interface, multi-database support, extensibility through plugins.
- Download from the official site
-
Another Redis Desktop Manager
- Supported databases: Redis.
- Features: Fast and stable desktop client for Redis, cross-platform (Linux, Windows, Mac).
- Download from the official website
-
Antares SQL
- Supported databases: MySQL, PostgreSQL, SQLite, and others.
- Features: Modern interface, tab support, SQL autocomplete, integration with other tools.
- Download from the official site
-
DB Browser for SQLite
- Supported Databases: SQLite.
- Features: Lightweight interface for working with SQLite databases, creating and editing tables, executing SQL queries.
- Download from the official site
-
DbGate
- Supported databases: MySQL, PostgreSQL, SQL Server, MongoDB, and others.
- Features: Web-oriented interface, tab support, SQL editor, MongoDB support.
- Download from the official site
-
DbVisualizer
- Supported Databases: MySQL, PostgreSQL, Oracle, SQL Server, SQLite, and others via JDBC.
- Features: Cross-platform, user-friendly graphical interface, support for multiple databases via JDBC, data analysis tools.
- Download from the official site
-
DBeaver
- Supported Databases: MySQL, MariaDB, PostgreSQL, SQLite, Oracle, SQL Server, DB2, Apache Family (Cassandra, Hive, etc.), MongoDB, Redis, and more.
- Features: Cross-platform, ER diagrams support, data and SQL editor, data export/import.
- Download from the official site
-
HeidiSQL
- Supported Databases: MariaDB, MySQL, MSSQL, PostgreSQL, SQLite, Interbase/Firebird.
- Features: Lightweight and fast interface, SSH tunnel support, data export/import.
- Download from the official site
-
MySQL Workbench
- Supported Databases: MySQL, MariaDB.
- Features: Database schema design tools (ER diagrams), SQL query editor, visual data modeling, MySQL server administration, user management, data export/import.
- Download from the official site
-
NoSQLBooster for MongoDB (free version)
- Supported Databases: MongoDB.
- Features: Query editor and execution for MongoDB, auto-completion, data visualization, JavaScript support.
- Download from the official site
-
pgAdmin
- Supported Databases: PostgreSQL.
- Features: Comprehensive PostgreSQL management, SQL editing support, user and privilege management, data visualization.
- Download from the official site
-
phpMyAdmin
- Supported Databases: MySQL, MariaDB.
- Features: Web interface, convenient database management through a browser, multi-language support.
- Download from the official site
-
SQL Workbench/J
- Supported Databases: MySQL, PostgreSQL, SQL Server, Oracle, and others via JDBC.
- Features: Cross-platform, support for SQL scripts, data export/import, query editor.
- Download from the official site
-
SQuirreL SQL
- Supported Databases: MySQL, PostgreSQL, Oracle, SQL Server, DB2, SQLite, and others via JDBC.
- Features: Cross-platform, graphical interface, support for multiple databases via JDBC, extensibility through plugins.
- Download from the official site
-
SQLyog Community Edition
- Supported Databases: MySQL, MariaDB.
- Features: Intuitive graphical interface, tools for managing database data and structure, data export/import.
- Download from the official site
These programs offer a wide range of capabilities for database management and are suitable for various tasks—from simple data editing to complex analysis and visualization. We recommend choosing a tool that best meets your requirements and preferences. Installation and setup instructions can be found on the official websites of these tools.
The amount of memory used by Apache is directly dependent on two parameters: ThreadStackSize
and ThreadsPerChild
.
ThreadStackSize
is a configuration directive in the Apache web server that defines the stack size allocated for each thread in a multithreaded mode.
ThreadsPerChild
is a configuration directive in the Apache web server that manages the number of threads each child process can create and handle simultaneously.
In Open Server Panel, the default values are:
-
ThreadStackSize
— 8 MB -
ThreadsPerChild
— 32
Thus, the minimum amount of memory used by Apache is 8 MB * 32 = 256 MB, not including the memory used by enabled PHP extensions. The more extensions are activated, the greater the memory usage per Apache thread.
-
ThreadStackSize: We do not recommend significantly reducing the
ThreadStackSize
value, as this may cause issues with PHP performance. Setting the value of this parameter above 8 MB generally does not have practical significance. - ThreadsPerChild: This parameter can be adjusted according to your needs, but we do not recommend setting the number of threads below 32. An excessively large value for this parameter may lead to the exhaustion of your computer's memory and associated issues.
Properly configuring these parameters will help optimize the memory usage of the Apache server, ensuring stable and efficient operation of your applications.
Let's consider an example of editing the httpd.conf
template for the PHP 8.1 module:
- Navigate to the Open Server Panel installation directory (e.g.,
C:\OSPanel
). - Go to
config\PHP-8.1\default\templates
. - Find the file
httpd.conf
.
- Open
httpd.conf
in a text editor (e.g., Notepad++). - Make the necessary changes.
- Save the file.
- Restart the module using the program menu or the console command
osp restart PHP-8.1
. - Ensure the module starts without errors.
Now you have successfully edited the Apache configuration in Open Server Panel 6.