AdminsForum
Create a Website in aaPanel Free Edition Posted by: DEV - 10-10-2026, 06:11 PM - Forum: aaPanel Websites & Web Servers Guides - No Replies

Quick answer
In aaPanel Free Edition, open Website > Add site, enter your domain names one per line, check the website directory and PHP version, then Confirm. Point those domains to the VPS first. Verify the default website page before uploading your application.

Before you start

  • aaPanel Free Edition installed and accessible.
  • A running web server. This lab uses Nginx.
  • An installed PHP version if your application needs PHP. This example selects PHP 8.4; use a version your application supports.
  • DNS A records for the hostnames you want to use, pointing to the VPS IPv4 address.
  • Port 80 reachable for the initial HTTP test, and port 443 for HTTPS later.
Our lab domain is adminslab.com. Its root and www DNS records point to the lab VPS and are DNS only during initial setup.
Set up the domain in Cloudflare first.

1. Open Add site
Sign in to aaPanel, select Website from the left menu, and click Add site under PHP Project. Use the Create site tab.

2. Enter your domains
Enter each hostname on its own line, without https:// or a directory path:
Code:
adminslab.com www.adminslab.com
Use your own domain. Adding www in DNS alone is not enough: include it in the website's domain list too.

3. Check the directory and PHP version
The website path in this example is:
Code:
/www/wwwroot/adminslab.com
Keep a separate directory for each website. Check the automatically generated path before creating the site. We used the description AdminsForum Tutorial Lab so the test site is easy to identify.
Select the PHP version your intended application supports. Our installed option appears as PHP-84, meaning PHP 8.4.

[Image: attachment.php?aid=14]

4. Choose the remaining options
  • FTP: Not create. We will cover file access separately; a website does not require an FTP account to exist.
  • Database: Not create. We will create a database and application user in a separate guide. A static page does not require one.
  • Apply for SSL: unchecked for this step. This walkthrough first verifies HTTP. A separate tutorial will issue the website certificate. Keep private data and login forms off the site until HTTPS is configured.
  • Create html file: enabled. This generates the default page for our first connection test.
Click Confirm once and wait for aaPanel to finish creating the site.

5. Verify the site
The Website list should now contain your domain, its description, and the selected PHP version. Our row shows adminslab.com, AdminsForum Tutorial Lab and 8.4. SSL shows Not Set at this stage, which is expected for this HTTP-only test.
Open both hostnames using HTTP:
Code:
http://adminslab.com http://www.adminslab.com
They should display the default website page. In our lab, both URLs returned HTTP 200 after creation. This verifies that DNS and the web server can serve the site; it does not yet verify a PHP application, database connection or HTTPS certificate.

Troubleshooting
Domain does not resolve: Check the A record and nameserver activation. Allow cached DNS answers to expire.
Wrong website appears: Check that the hostname is included in this site's domain list and points to this VPS.
Connection times out: Check the web server and the server/provider firewall for port 80.
SSL error on HTTPS: We have not issued the website certificate in this guide. Complete the SSL tutorial before using HTTPS for the application.
PHP application fails: Check application compatibility and required PHP extensions; a successful default HTML page alone does not prove PHP is working.

Related guides
aaPanel Free Edition website hosting requirements
Install PHP 8.4 in aaPanel Free Edition

Tested: 10 October 2026, aaPanel Free Edition 8.0.6 on Ubuntu 22.04, Nginx and PHP 8.4. Original AdminsForum lab screenshot. Database creation and website SSL will be separate guides.

Attached Files

Thumbnail(s)
   
Add a Domain to Cloudflare Free: DNS and Nameservers Posted by: DEV - 10-10-2026, 05:54 PM - Forum: Cloudflare - No Replies

Quick answer
To add a domain to Cloudflare Free, connect the registered domain, choose the Free plan, review or add its DNS records, and replace the domain's nameservers at your registrar with the two assigned by Cloudflare. Wait for Cloudflare to confirm activation before treating the migration as complete.

Before you start

  • A registered domain and access to its registrar account.
  • A Cloudflare account.
  • Your website server's public IP address.
  • For an existing website, a copy of all current DNS records, including email records.
This guide uses our new lab domain, adminslab.com. Adding it to Cloudflare does not transfer its registration. These DNS steps apply to any hosting panel, not only aaPanel.

1. Connect your domain
In the Cloudflare dashboard, open Domains and choose Add domain, then Connect a domain. Enter the registered root domain, such as adminslab.com, without https://, a path, or www. Continue and select the Free plan.

2. Review the DNS scan
Cloudflare can scan for existing DNS records. Compare its results with your current DNS provider before changing nameservers. Keep required A, AAAA, CNAME, MX and TXT records, including SPF, DKIM and DMARC if you use email. A scan is not a complete backup.
Our new lab domain had no records to import, so we added the records manually.

3. Add website DNS records
Open DNS > Records > Add record. For the root domain, choose Type A, enter @ as the Name and your server's IPv4 address as the Content. Save it. Repeat for www if your website will use that hostname.

Our lab records are:
Code:
Type Name IPv4 address Proxy status TTL A @ 217.217.235.82 DNS only Auto A www 217.217.235.82 DNS only Auto A aapanel 217.217.235.82 DNS only Auto
Use your own server's address, not the example IP. The aapanel record is an optional lab subdomain; adding DNS does not create a website or bind the panel to that hostname.

We chose DNS only while preparing the lab website and its origin certificate. DNS-only traffic goes directly to the server and does not receive Cloudflare's proxy caching or web security features. We will cover proxying and HTTPS separately after the website works.

4. Update nameservers at your registrar
Cloudflare assigns two nameservers to your domain. Open the nameserver settings at the company where you registered the domain, replace the existing nameservers with your assigned pair, and save.

[Image: attachment.php?aid=13]

The highlighted nameservers belong to this lab domain. Use the pair shown in your own Cloudflare dashboard. Change nameservers in the registrar's nameserver settings, rather than adding them as ordinary DNS records.
If the domain already uses DNSSEC, follow Cloudflare's migration instructions for the existing DNSSEC/DS configuration before switching, then configure DNSSEC again after activation.

5. Confirm activation
After saving the nameservers at the registrar, return to Cloudflare and request a nameserver check if offered. Allow time for the delegation change to be detected. The domain should show Active when Cloudflare confirms the change.
Update, 10 October 2026: Cloudflare has confirmed activation for our lab domain. The DNS-only website records resolve to 217.217.235.82. Proxying is still intentionally off while we configure the website and origin HTTPS.

Common questions
Do I need to buy the domain again?
No. Connect the domain you already own. Its registration stays with your existing registrar.

Why does Cloudflare show a proxy warning?
Our lab records are DNS only. This is intentional for initial setup; it does not mean Cloudflare's proxy protections are enabled.

Does a DNS record make the website ready?
No. Create the website on the server, add the matching domain, and configure HTTPS. DNS only tells visitors where to connect.

What if activation stays pending?
Check that the registrar has the exact assigned pair, that old nameservers were replaced, and that an old DNSSEC DS record is not interfering. Do not repeatedly change unrelated DNS settings.

Official reference
Cloudflare full DNS setup instructions

Tested: Cloudflare Free dashboard, 10 October 2026. Original lab walkthrough and AdminsForum screenshot. Website hosting and SSL will be covered separately.

Attached Files

Thumbnail(s)
   
aaPanel Free Edition: Basic Settings After Installation Posted by: DEV - 10-10-2026, 04:12 PM - Forum: aaPanel Guides & Tutorials - No Replies

After installing aaPanel Free Edition, review its Global settings before creating websites. Change one item at a time and verify access afterwards. This guide explains the settings visible in our aaPanel Free 8.0.6 lab on Ubuntu 22.04.5, inspected on 10 October 2026.

1. Open Settings → Global
Use Search settings to find a specific item. The current interface groups network/access, HTTPS, authentication and interface preferences. Other tabs include Service, Alarm and Backup Restore. Older screenshots may group these options differently.

2. Set useful display preferences
Choose the Language you prefer and an Alias that identifies the server. Alias changes the panel title; it does not create a DNS record or rename a website. Theme and hidden-menu preferences affect how you use the panel. Keep essential sections visible while learning.

3. Check time and timezone
Confirm the server clock and selected timezone. Our lab uses UTC, which makes server logs easier to compare. Choose a timezone deliberately and remember it when reading logs or scheduling backups. The Sync control is for server time; changing the display language does not correct a wrong clock.

4. Understand default folders
The lab shows /www/wwwroot as the default site folder and /www/backup as the default backup folder. Each website belongs in its own site subdirectory. These defaults are not an instruction to put every site directly into /www. Changing a default is not a migration of existing website files. Check ownership, disk space and application paths before relocating data.

5. Panel backup is not a full website backup
Our Auto Backup Panel setting is enabled with 30 retained backups. The interface explicitly says its automatic backup does not include website data or MySQL data. Keep separate backups of website files and databases, store a copy off the VPS, and test restoration. A local backup folder will not protect you from losing the entire server. Do not use One-click clear backup while establishing your recovery plan.

6. Review session and access settings
Timeout controls idle-session logout; choose an appropriate duration for your working environment. Changing Panel port, Security Entrance, Domain or Authorized IP can interrupt access. Prepare working SSH/provider recovery access and test a fresh login after each change. Domain binding restricts which hostname can access the panel; wait until its DNS and HTTPS work. A management-IP allowlist requires a stable address.

7. Keep panel HTTPS enabled
Check certificate trust, expiry and renewal instead of assuming an HTTPS switch guarantees a valid certificate. The screenshot below shows the lab certificate status captured for our security walkthrough. A panel certificate does not enable HTTPS for your websites.
[Image: attachment.php?aid=5]

8. Leave unused features disabled
Developer mode and API access are unnecessary for a basic manual hosting setup. Do not expose API keys in screenshots. Offline mode affects internet-dependent functions; it is not a normal security setting for an online hosting panel. Close panel stops panel access and should not be used while following setup steps.

Final check
Verify the saved panel URL, a fresh login, accurate time, available disk space and required running services. Record your changes privately. This is a settings review, not a claim that every security or backup feature has been configured.

Change the panel password
Secure aaPanel Free Edition: HTTPS, SSH Keys & Panel Port
Official aaPanel settings reference

Change Your aaPanel Free Edition Password Posted by: DEV - 10-10-2026, 04:11 PM - Forum: aaPanel Security Guides - No Replies

Change your aaPanel login password under Settings → Global → Panel password → Modify. This changes the panel account password, not your VPS SSH password or a website database password.

Before you begin
Keep working SSH access and your server provider’s recovery console available. Save the full panel address privately, including its port and security entrance. Use a password manager to generate and store a long, unique password. Do not reuse your forum, email or SSH password.

1. Open the password settings
Log in to your panel, open Settings and select Global. Find Panel password under Authentication & Security, then click Modify. You can use Search settings to locate it.

2. Complete the change-password form
The current aaPanel Free Edition 8.0.6 form has three fields: Old Password, New Password and Repeat. Enter your current panel password, your chosen new password and the same new password again. Check that the confirmation matches before clicking Confirm. The screenshot below has its values hidden.
[Image: attachment.php?aid=12]

3. Verify the new login
After the panel reports success, open its saved HTTPS address in a separate private browser window and sign in using the new password. Retain recovery access until this fresh login works. Update the password-manager entry and close any session you no longer need.

Forgot the current password?
The normal form requires the old password. If you own the server and have authorized root SSH access, aaPanel’s official Quick Start documents

Code:
bt 5
as the password-reset command. Follow the interactive prompt privately, then test the panel login. Never paste the resulting password or complete panel login output into a forum post.

Common problems
If Old Password is rejected, check that you are entering the panel password rather than the Linux root password. If Repeat does not match, re-enter both new-password fields. If the page returns 404 before a login form appears, verify the saved security entrance; that is a different problem from an incorrect password.

Verification note
The settings route and three-field form were inspected on our Ubuntu 22.04.5 / aaPanel Free 8.0.6 lab on 10 October 2026. We cancelled the form to preserve the tutorial lab login; a completed password change is not claimed.

Install aaPanel Free Edition on Ubuntu 22.04
Web stack setup and tutorial series
Secure aaPanel Free Edition
Official aaPanel Quick Start and password recovery

Attached Files

Thumbnail(s)
   
aaPanel Free Edition: Website Hosting Requirements Posted by: DEV - 10-10-2026, 03:55 PM - Forum: aaPanel Guides & Tutorials - No Replies

To host a website in aaPanel Free Edition, install a web server first. PHP and a database are needed only when your application requires them. This guide explains what each component does before you create your first site.

Choose the stack for your website

  • Static HTML/CSS/JavaScript website: Nginx or Apache serves the files. PHP and MySQL are not required for a site made entirely of static files.
  • PHP website without a database: a web server plus a compatible PHP version. Check the script’s extension requirements.
  • WordPress or another database-backed PHP application: a web server, a supported PHP version and MySQL or MariaDB. Follow the application’s current compatibility requirements.

1. Nginx or Apache: the web server
The web server receives HTTP/HTTPS requests and returns your website’s content. Choose one for the beginner setup. Our Ubuntu 22.04 lab uses Nginx; Apache is an alternative, especially when an application depends on Apache configuration such as .htaccess. Nginx does not process .htaccess files, so rewrite rules must be configured for Nginx.

Do not independently install two services that both try to use ports 80 and 443. Multi-webserver hosting has its own routing and configuration and will be covered separately.
Install Nginx in aaPanel Free Edition

2. PHP: the application runtime
PHP runs server-side application code. Install a release your application supports, then select it in that website’s settings. Multiple PHP versions can serve different websites. Website PHP and command-line PHP can differ. Install required extensions for the exact version used by the site.
Install PHP 8.4 in aaPanel Free Edition

3. MySQL or MariaDB: the database
A database stores application data such as posts, users and settings. Choose an engine/version compatible with your application. Our lab uses MariaDB. Create a separate database and database user for each application; avoid using the database root account in a website’s configuration. A website on the same VPS normally does not need public access to database port 3306.
Install MariaDB in aaPanel Free Edition

4. Domain, DNS and HTTPS
For normal public access, use a domain or subdomain you control. Its DNS records must point to the server hosting the site. Add only hostnames you will actually use. A website SSL certificate enables HTTPS for those hostnames; the panel’s HTTPS certificate is separate from the website’s certificate.

A domain is not required simply to install aaPanel or its software. It becomes useful when publishing and testing the actual website. An incorrect AAAA record can send IPv6 visitors to a different server even when the A record is correct.

5. Optional tools
  • phpMyAdmin: a database administration interface, not the database server. It is optional.
  • FTP server: optional for FTP workflows. SFTP uses SSH and does not require Pure-FTPd. Prefer encrypted file transfer.
  • Mail server: not needed just to host a website. An application can use a separate email provider.
  • Redis and other services: add them only when your application needs them.

Our tested starter stack
Ubuntu 22.04.5, aaPanel Free Edition 8.0.6, Nginx, PHP 8.4 and MariaDB on a 2-vCPU/4-GB lab VPS. The screenshot shows the installed components checked on 10 October 2026. It includes optional phpMyAdmin and Pure-FTPd; these are not compulsory website requirements.
[Image: attachment.php?aid=4]

Before creating the website
  • Confirm the web server and required PHP/database services are running.
  • Secure panel access and keep recovery access available.
  • Prepare the domain, application requirements and a backup plan.
  • Keep panel, SSH and database credentials private.

Follow the series:
Install and verify the web stack
Secure aaPanel Free Edition after installation
Then create the website, create its database/user, select PHP/extensions, connect DNS, enable website HTTPS and test the application.

Official aaPanel Quick Start

Install FTP Server in aaPanel Free Edition Posted by: DEV - 10-10-2026, 03:30 PM - Forum: aaPanel FTP, SFTP & File Transfer Guides - No Replies

aaPanel Free Edition offers Pure-FTPd for applications or workflows that need FTP accounts. It is optional: you can use the panel File Manager or SSH-based SFTP without installing an FTP server. This guide covers Pure-FTPd installation and its service controls.

Tested environment
Ubuntu 22.04.5 and aaPanel Free Edition 8.0.6. Pure-FTPd 1.0.49 was installed with our initial stack. On 10 October 2026 its panel management screen showed a running service. We have not yet created a dedicated FTP user or verified a file transfer/TLS session, so those results are not claimed.

1. Install Pure-FTPd
Open App Store, search for Pure-Ftpd and choose Install if it is absent. Follow the installation dialog and wait for the task to complete. Then open Installed → Pure-Ftpd → Setting. If you already installed FTP with the first-login stack, continue to verification.

2. Check the service controls
In our screenshot, 1 marks the service state, 2 marks Stop/Restart/Reload and 3 marks User management. The private lab address is hidden. A running server is only the first check; it does not prove that an account can connect or transfer files.
[Image: attachment.php?aid=11]

3. Plan a limited account
When setting up transfers, use the panel's FTP section or User management. Give each account a strong unique password and restrict its home directory to the intended website files. Avoid sharing root or panel credentials with another person's FTP client. Account creation and a complete transfer test will be a separate guide.

FTP, FTPS and SFTP
Plain FTP does not encrypt its connection. FTPS adds TLS to FTP; SFTP is a different protocol provided through SSH. Installing Pure-FTPd does not turn SSH into FTP or establish that FTPS is configured correctly. For an existing SSH account, SFTP is often the simpler choice; verify the SSH host key before connecting.

Troubleshooting a future transfer
A login failure requires checking the FTP user and password. A successful login followed by a directory-listing timeout can involve passive-mode ports and firewall rules. Configure only the necessary ranges after confirming the server/client settings; do not disable the firewall to make a transfer work. Permission errors require checking the account's allowed directory and file ownership.

Next step
Decide whether you need FTP at all. Before relying on it, verify an encrypted connection and upload/download a harmless test file using a dedicated account. Keep installation and transfer verification as separate checks.

Install aaPanel Free Edition on Ubuntu 22.04
Web stack setup and tutorial series
Secure aaPanel Free Edition

Official aaPanel App Store documentation

Attached Files

Thumbnail(s)
   
Install phpMyAdmin in aaPanel Free Edition Posted by: DEV - 10-10-2026, 03:29 PM - Forum: aaPanel Databases & phpMyAdmin Guides - No Replies

phpMyAdmin is a browser tool for working with MySQL or MariaDB databases. In this beginner guide, you will learn how to find its aaPanel installation, check its PHP runtime, understand its access settings, and prepare the correct database login.

Lab verification: Ubuntu 22.04.5, aaPanel Free Edition 8.0.6, phpMyAdmin 5.2 and MariaDB. Installation was completed with our original stack; management screens were checked again on 11 October 2026. phpMyAdmin uses PHP-84 while our website uses PHP 8.5. The panel's private launch currently requests an aaPanel vendor account login. Database browsing, import and export are not yet verified through that browser route.

Before you start: understand the three components

  • MariaDB/MySQL: The database server that stores your site's data.
  • PHP: The runtime that executes phpMyAdmin and PHP applications.
  • phpMyAdmin: A graphical tool that connects to the database server. It does not replace that server.
A website can use its database without phpMyAdmin being installed. Installing phpMyAdmin also does not create a WordPress database or a database user automatically.

You need: Access to your aaPanel, an installed database server, a compatible installed PHP runtime, and a database/user if you want to administer application data. Use a test database for practice. Back up an existing database before changing its contents.

Step 1 — Find phpMyAdmin in the App Store
1. Sign in to your own aaPanel.
2. Click App Store in the left menu.
3. Enter phpMyAdmin in the app search field and submit the search.
4. Locate the official phpMyAdmin row.

What you should see: Our lab shows phpMyAdmin 5.2, price Free, and Setting and Uninstall actions. These actions indicate that it is already installed. Do not uninstall it just to follow an installation guide.

AdminsForum lab screenshot — the installed app entry
[Image: phpmyadmin-app-entry-branded-20261011.png]

Step 2 — Install only if the app is missing
If your row offers Install, select it, follow the panel's installation dialog, and wait until the task reports completion. Do not close or repeat the installation while its task is still running. Return to the app search and confirm that Setting is available.

Why this check matters: Starting a task is not the same as completing it. If installation fails, record the actual message and inspect the task log before trying again. The screenshot above shows the completed installation state; it does not show a fresh installation dialog.

Step 3 — Check the PHP runtime used by phpMyAdmin
1. Click Setting on the phpMyAdmin row.
2. Select PHP version in the management window.
3. Read the currently selected runtime.
4. If it is already a suitable installed PHP version, leave it unchanged.

What you should see: Our selection is PHP-84, meaning PHP 8.4. The screenshot also offers PHP-85. This guide does not switch phpMyAdmin to 8.5 or claim that this switch was tested.

AdminsForum lab screenshot — phpMyAdmin's own PHP selection
[Image: phpmyadmin-runtime-detail-branded-20261011.png]

Why this matters: The website PHP selection and phpMyAdmin PHP selection are separate. Changing your website to PHP 8.5 does not mean phpMyAdmin must use 8.5. Static is not an appropriate runtime for a PHP application. If you deliberately change this selection, choose an installed compatible runtime, click Save, and test opening phpMyAdmin afterwards. Keep the previous working selection recorded so you can restore it.

Step 4 — Understand public access before enabling anything
1. In the same management window, open Service.
2. Find Enable public access.
3. Read the panel's explanation before changing the checkbox.

Our verified state: The checkbox is unchecked. In this version, the panel explains that authenticated panel access is separate from the public phpMyAdmin service. The numbered screenshot highlights the checkbox and explanation; the private access address has been hidden.

[Image: attachment.php?aid=10]

Why leave it off? You do not need an additional publicly reachable database-administration page just to learn the panel workflow. Do not enable public access or open its firewall port merely because an older tutorial uses a public URL. This guide does not change firewall rules or enable that service.

Step 5 — Locate the database you intend to manage
1. Close the phpMyAdmin settings window.
2. Open Databases from the left menu.
3. Find the application database by its name and remark.
4. Note the database name and associated username privately.
5. Use the row's phpMyAdmin action for the intended database.

If no application database exists, create it first using our database and user guide. Do not select a database just because it appears first in the list.

Step 6 — Try authenticated panel access
The database access dialog in our lab offers Password-free access and Public access. Choose Password-free access first while logged into the panel.

What happened in our test: aaPanel opened an aaPanel account registration/login prompt. This is the vendor account prompt, not a MySQL login. Until that account step is completed, we cannot demonstrate the database browsing screen through this route. If you encounter the same prompt, use your own account and follow its verification process. Do not paste account credentials into support posts.

If nothing opens, check whether the browser blocked a popup and retry the same authenticated action. If the vendor account step is completed but access still fails, record the exact response rather than switching to public access as an automatic workaround.

Step 7 — Know which password belongs where
  • aaPanel server login: Signs into the control panel installed on your VPS.
  • aaPanel vendor account: Signs into aaPanel's account service when a feature requests it.
  • MySQL/MariaDB user: Identifies the database account used by phpMyAdmin or your application.
If you reach a phpMyAdmin database-login form, it expects valid database credentials. The aaPanel server password is not a replacement for the database password. Prefer a user assigned to the application database for routine work rather than a database root account.

Troubleshooting: decide from the actual symptom
  • App does not appear installed: Check the installation task result and app list. Do not assume a clicked Install button completed successfully.
  • 502 or blank page: Check phpMyAdmin's selected PHP runtime, the corresponding PHP service and relevant error logs. Check this runtime independently of the website's PHP version.
  • Vendor login prompt: Complete the account step. It does not mean the database password is wrong.
  • Database access denied: Check the database username, password, host and grants. Copy the error number after removing secrets.
  • Expected database missing: Confirm that it exists in aaPanel and that the database user has access to it. Stop before importing into another database.

Practice and completion checklist
Without changing any data, practise finding phpMyAdmin in the App Store, identifying its selected PHP runtime, locating your application's database, and explaining the difference between the three account types above.

You have completed setup preparation when the app is installed, its runtime is identified, the intended database/user exists, and the access route is understood. You have completed database access verification only after the intended database actually opens. Our browser access verification is still pending; screenshots of browsing, export and import will be added after successful tests.

Next lessons: References: phpMyAdmin introduction and database user explanation; aaPanel App Store documentation. This walkthrough uses original AdminsForum lab captures and does not claim a completed video recording.

Attached Files

Thumbnail(s)
   
Install MariaDB in aaPanel Free Edition Posted by: DEV - 10-10-2026, 03:27 PM - Forum: aaPanel Databases & phpMyAdmin Guides - No Replies

Install MariaDB in aaPanel Free Edition to provide a database server for applications that support it. Verify the service before creating an application database. A running database server and a database/user created for a website are different steps.

Tested environment
Ubuntu 22.04.5 and aaPanel Free Edition 8.0.6. MariaDB was selected during our first-login stack installation. On 10 October 2026, the server reported MariaDB 10.11.10 and its database service was active. Some panel labels still use “MySQL” because this screen manages the compatible database server.

1. Select MariaDB
On a fresh panel, choose MariaDB in the database selector of the recommended stack dialog. If that dialog has already been dismissed, open App Store, locate the database server and use Install to choose an available MariaDB version. Follow the task until completion. If MariaDB is already installed, proceed to its settings.

Use one database server for this beginner setup. Do not uninstall an existing MySQL/MariaDB instance or replace its data directory to follow a fresh-install tutorial. Changing database engines on a populated server requires a separate backup and migration plan.

2. Verify the running service
Open App Store → Installed → MariaDB → Setting. Our service window is titled MySQL. In the screenshot, 1 marks the running state, 2 the service controls and 3 the Error log.
[Image: attachment.php?aid=9]

Use SSH to confirm the binary version and service status:

Code:
/www/server/mysql/bin/mysql --version /etc/init.d/mysqld status
These checks do not require publishing or changing the database root password. We verified an active service on the lab. The version command alone only proves that the client binary is present.

3. Prepare for your application
Open Databases in aaPanel. Create a separate database and user for each application when you deploy it, and keep that user's permissions limited to its own database. Store the credentials privately in the application's configuration. Panel login credentials are not database credentials.

For a website on the same server, keep database access local. Opening port 3306 to the entire internet is unnecessary. Our lab firewall does not allow public access to that port.

Troubleshooting
If the service will not start, read the Error log and check available disk space. For an application's “access denied” error, check its database name, user, password and host. Do not reset the database root password or reinstall the server as the first response.

Install aaPanel Free Edition on Ubuntu 22.04
Web stack setup and tutorial series
Secure aaPanel Free Edition

Official aaPanel App Store documentation

Attached Files

Thumbnail(s)
   
Install PHP 8.4 in aaPanel Free Edition Posted by: DEV - 10-10-2026, 03:26 PM - Forum: aaPanel PHP & Extensions Guides - No Replies

aaPanel Free Edition can install PHP alongside your web server. Choose a PHP release supported by your website application, verify PHP-FPM is running, then assign that version to the website. Installing PHP does not automatically change every site's PHP version.

Tested environment
Ubuntu 22.04.5 and aaPanel Free Edition 8.0.6. PHP was installed with our first-login stack, then its service and CLI were checked on 10 October 2026. The lab binary reported PHP 8.4.26. This guide covers installation and service verification; website compatibility depends on the application.

1. Install the required PHP version
Open App Store, find PHP-8.4 and choose Install if it is not already present. Follow the version's installation dialog and wait for the task to finish. Open Installed and then PHP-8.4's Setting screen. If your application requires another supported version, install that version instead.

2. Check PHP-FPM and extensions
In the screenshot, 1 shows the service is On, 2 marks Stop/Restart/Reload and 3 marks Install extensions. The panel also displays the exact CLI binary path.
[Image: attachment.php?aid=8]

Open Install extensions and compare the available modules with your application's requirements. Install only required modules; an installed PHP version is not proof that every extension your application needs is enabled.

3. Verify the correct binary
For PHP 8.4, run:

Code:
/www/server/php/84/bin/php -v /www/server/php/84/bin/php -m /etc/init.d/php-fpm-84 status
The first shows the version, the second lists CLI modules and the third checks the FPM service. Our PHP 8.4 CLI and FPM checks passed. A plain php -v can use a different system/default version, so use the explicit path when diagnosing a mismatch.

4. Assign PHP to your website
After creating a site, open its settings under Website and select its PHP version. The website's version and command-line PHP selection are separate. Verify the application's own requirements before switching an existing site.

Troubleshooting
For a 502 error, check PHP-FPM status and the website's selected version. For a missing-extension error, confirm the extension is installed for that same PHP version. Inspect PHP/FPM logs before changing upload limits or disabled functions. Do not remove security restrictions as a general fix.

Install aaPanel Free Edition on Ubuntu 22.04
Web stack setup and tutorial series
Secure aaPanel Free Edition

Official aaPanel PHP website documentation

Attached Files

Thumbnail(s)
   
Install Nginx in aaPanel Free Edition Posted by: DEV - 10-10-2026, 03:24 PM - Forum: aaPanel Websites & Web Servers Guides - No Replies

Install Nginx from aaPanel's App Store, wait for the installation task to finish, and check its service status before adding a website. Nginx handles incoming HTTP and HTTPS requests; PHP and a database are separate components.

Tested environment
Ubuntu 22.04.5, aaPanel Free Edition 8.0.6, 2 vCPU and 4 GB RAM. Our first-login stack installation installed Nginx; the service screen and command checks below were verified on 10 October 2026. The lab reported Nginx 1.30.5. Your available version may differ.

1. Install Nginx
Start with a working aaPanel installation. Open App Store, search for Nginx and choose Install if it is not installed. Select the version offered for your server and follow the installation dialog. Wait until the task completes, then open Installed. If you already selected Nginx in the first-login stack installer, continue to verification; installing it again is unnecessary.

Do not install a second web server through Ubuntu's package manager on the same ports. A fresh server avoids conflicting Apache or Nginx services.

2. Check the service
Open Nginx's Setting screen. In the screenshot, 1 marks the running state, 2 the service controls and 3 the error log. Our interface displays “Start” while the Stop button is available.
[Image: attachment.php?aid=7]

3. Verify through SSH
Run these read-only checks:

Code:
/www/server/nginx/sbin/nginx -v /www/server/nginx/sbin/nginx -t
The first prints the installed version. The second should report a successful configuration test. Our lab passed both checks. Test configuration before using Reload after an edit; an invalid file can prevent the service from starting.

If installation or startup fails
Open the installation task's output first. For a startup failure, inspect Nginx's Error log and the result of nginx -t. If it reports an address already in use, identify the service listening on port 80 or 443 before stopping anything. A working panel login alone does not prove that the website's Nginx service is working.

Next step
Install the PHP version required by your application, then create the website and configure DNS and HTTPS. A domain is not needed just to install Nginx.

Install aaPanel Free Edition on Ubuntu 22.04
Web stack setup and tutorial series
Secure aaPanel Free Edition

Official aaPanel App Store documentation

Attached Files

Thumbnail(s)