Migration Guide
Overview
Section titled “Overview”LLStack provides migration paths from the most common server panels and web servers. Each migration follows the same general pattern: export data from the source, prepare LLStack, and import.
From BT Panel (宝塔)
Section titled “From BT Panel (宝塔)”BT Panel stores site data in /www/wwwroot/ and databases in standard MariaDB/MySQL locations.
-
Export site files from BT Panel
On the source server, create a tar archive of each site:
Terminal window cd /www/wwwroottar czf /tmp/example.com.tar.gz example.com/ -
Export databases
Use BT Panel’s database backup feature or
mysqldumpdirectly:Terminal window mysqldump -u root -p dbname > /tmp/dbname.sql -
Install LLStack on the target server
Terminal window curl -fsSL https://raw.githubusercontent.com/web-casa/LLStack/main/scripts/install.sh | sudo bash -
Create the site in LLStack
Use the LLStack panel UI to create a new site with the same domain name. Configure the PHP version to match the source.
-
Import site files
Transfer and extract the archive to the new document root:
Terminal window scp /tmp/example.com.tar.gz target-server:/tmp/# On target server:tar xzf /tmp/example.com.tar.gz -C /home/llstack/example.com/html/chown -R llstack:llstack /home/llstack/example.com/ -
Import the database
Create the database in LLStack panel, then import:
Terminal window mysql -u dbuser -p dbname < /tmp/dbname.sql -
Update wp-config.php or application config
Update database credentials, paths, and any hardcoded URLs to match the new server.
-
Configure SSL
Issue a new Let’s Encrypt certificate through the LLStack panel.
-
Update DNS
Point your domain’s DNS records to the new server IP. Once propagated, verify the site works correctly.
From CyberPanel
Section titled “From CyberPanel”CyberPanel uses OpenLiteSpeed and stores sites under /home/<domain>/. The migration is similar to BT Panel.
-
Export site files
Terminal window cd /hometar czf /tmp/example.com.tar.gz example.com/public_html/ -
Export databases
Terminal window mysqldump -u root -p dbname > /tmp/dbname.sql -
Export email accounts (if applicable)
CyberPanel uses MailServer (Postfix + Dovecot). Export mailbox data from
/home/vmail/if you need to preserve emails. -
Install LLStack and create site
Install LLStack on the target server, create the site, and select the matching PHP version.
-
Import files and database
Transfer files to the new document root and import the database as shown in the BT Panel section above.
-
Migrate .htaccess rules
CyberPanel often has minimal .htaccess usage since it runs OLS natively. If you have custom rewrite rules in the OLS vhost config, LiteHttpd’s .htaccess support means you can place them directly in
.htaccessfiles instead. -
Issue SSL and update DNS
Configure SSL through LLStack panel and update your DNS records.
From cPanel / WHM
Section titled “From cPanel / WHM”cPanel provides built-in backup tools that package sites, databases, and email together.
-
Generate a cPanel backup
In cPanel, go to Backup and create a full account backup, or use the CLI:
Terminal window /scripts/pkgacct usernameThis creates a
cpmove-username.tar.gzarchive. -
Extract the backup
Terminal window tar xzf cpmove-username.tar.gzcd cpmove-usernameKey directories inside:
homedir/public_html/— site filesmysql/— database dumpsssl/— SSL certificates (optional to migrate)
-
Install LLStack and create sites
Create each domain/subdomain as a separate site in LLStack.
-
Import site files
Copy
public_html/contents to the corresponding LLStack document root:Terminal window cp -a cpmove-username/homedir/public_html/* /home/llstack/example.com/html/chown -R llstack:llstack /home/llstack/example.com/ -
Import databases
Create databases in LLStack, then import each SQL dump:
Terminal window mysql -u dbuser -p dbname < cpmove-username/mysql/dbname.sql -
Migrate cron jobs
Review cron jobs from
cpmove-username/cron/and recreate them in LLStack’s cron manager. -
Configure PHP and .htaccess
LiteHttpd supports the same .htaccess directives, so most rules work as-is. Verify PHP version compatibility and adjust
php.inisettings through the panel. -
Issue SSL and update DNS
From Apache (Direct)
Section titled “From Apache (Direct)”If you are running a standalone Apache server (without a panel), LiteHttpd’s built-in config converter handles most of the migration automatically.
-
Analyze the existing Apache configuration
Run the compatibility checker on the source server:
Terminal window litehttpd-readapacheconf /etc/httpd/conf/httpd.confReview the output for any unsupported directives.
-
Convert the configuration
Terminal window litehttpd-confconv \--input /etc/httpd/conf/httpd.conf \--include-dir /etc/httpd/conf.d/ \--output /tmp/litehttpd-conf/This generates equivalent LiteHttpd virtual host configurations.
-
Install LLStack
Install LLStack on the target server (or the same server after stopping Apache).
-
Copy site files
Transfer document roots to the LLStack directory structure:
Terminal window cp -a /var/www/html/example.com/* /home/llstack/example.com/html/chown -R llstack:llstack /home/llstack/example.com/ -
Apply the converted configuration
Review the generated configs in
/tmp/litehttpd-conf/and copy them to the LiteHttpd vhost directory. Alternatively, create sites through the panel and let it generate configs automatically. -
Verify .htaccess files
Existing
.htaccessfiles should work without changes. LiteHttpd supports 80+ Apache directives includingmod_rewrite,mod_headers,mod_expires, andmod_auth_basic. -
Switch from php-fpm to LSAPI
LLStack uses PHP-LiteSpeed SAPI instead of php-fpm. Install the matching PHP version through the panel and update any php-fpm-specific configurations.
-
Test and cutover
Test all sites, then stop Apache and start LiteHttpd:
Terminal window systemctl stop httpdsystemctl enable --now litehttpd
Common Post-Migration Checklist
Section titled “Common Post-Migration Checklist”After any migration, verify the following:
- All sites load correctly over HTTPS
- WordPress admin dashboard is accessible
- Database connections work (check
wp-config.phpor equivalent) - File permissions are correct (
llstack:llstackownership) - Cron jobs are recreated in LLStack
- Email delivery works (if applicable)
- SSL certificates are valid and auto-renewal is configured
- DNS TTL is lowered before migration, restored after verification
- Old server backups are retained for at least 30 days