Installation script issues (on Ubuntu 20.04)

I have been trying to install CyberPanel on an Ubuntu 20.04 host, with OLS already installed.

This resulted in a lot of errors with a corruption of the /tmp directory. I understand the installation script may fail because it’s not expecting OLS to already be installed. But it should not wreck the system when it fails.

Here are some issues I found in the installation script:

  1. There seems to be a typo somewhere related to debconf as it cites something called ‘Noninteracitve’ (which has an obvious typo):

debconf: unable to initialize frontend: Noninteracitve

  1. The script uses the following command:
    mkfs.ext4 -F /usr/.tempdisk

but the Ubuntu manual states that -F needs to appear twice on the cmd line when used.

  1. The adduser command for docker is missing the ‘-ingroup docker’ option. Without it, it will fail if the docker group already exists.

  2. The script writes to /etc/fstab but does not clean after itself if it fails.

  3. The script keeps going despite numerous errors and does not give a chance for the user to review them.

  4. It’s not clear what the script means by installation memcached/redis and their extensions. What happens if they are both already installed? Will it overwrite them? There should be an option to install just the extensions?

  5. There are no clear requirements stated. What happens if OLS, memcached, Redis, mariadb server… are already installed?

What if I have mariadb 10.15 installed? what will happen?

  1. The script fails eventually on:

The following packages have unmet dependencies:
libmariadbclient-dev : Depends: libmariadb-dev (= 1:10.3.22-1ubuntu1) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

I have not seen any proper resolution anywhere to this issue.

  1. If I work around the issue #8, the script fails on:

apt-get -y install openlitespeed

[09.29.2020_23-29-40] [ERROR] We are not able to run apt-get -y install openlitespeed return code: 100. Fatal error, see /var/log/installLogs.txt for full details.

And installLogs.txt has no additional details.

  1. I would be nice to know if it is possible to install CyberPanel on an existing OLS install. If so, what process should I follow? If not, what is the alternative/better to transition from OLS alone to using OLS with CyberPanel.

Thank you!

It would be great if the installation script detected the presence of OLS/memcached/redis/mariadb/… and shut down the appropriate daemons and executables to ensure the most reliable installation possible.

I read the instructions on this page:
Installing CyberPanel - CyberPanel

I cannot see any mention of a “clean minimal OS”, unless I missed that part. Are there different instructions somewhere? Please kindly point me to them. Thank you.

PS: Still not sure how #2 cannot work based on mkfs.ext4 manual page.

   -F     Force mke2fs to create a filesystem, even if the specified device is not a partition on a block special device, or if other parameters do not make sense.
          In order to force mke2fs to create a filesystem even if the filesystem appears to be in use or is mounted (a truly dangerous thing to  do),  this option
          must be specified twice.

Additionally it would be great to provide instructions on how to migrate from OLS to CyberPanel, even the instructions say that there is no easy way, it’s not supported, and it’s better to start over with a new clean install and then re-do the website setup through CyberPanel.

I was able to install CyperPanel over my existing OpenLiteSpeed install on Ubuntu 20.04. I stopped lsws/mariadb/redis/docker and uninstall mariadb to avoid conflicts. I was then able to run the installation and subsequently run the upgrade script.

A few minor issues I ran into:

  1. I had to manually install the following packages:

apt install libmariadb3=1:10.3.25-0ubuntu0.20.04.1
apt install libmariadb-dev=1:10.3.25-0ubuntu0.20.04.1
apt install libmariadbclient-dev

  1. I was asked to run the following command at some point:

dpkg --configure -a

  1. I ran into an issue with the mariadb mysql root password and had to set it manually to the value expected by Cyperpanel (in /usr/local/CyberCP/CyberCP/

  2. I was using ufw as firewall but Cyberpanel uses firewall-cmd, so I had to re-implement the rules.

  3. I had to copy into /usr/local/lsws/lsphp74/lib/php/20190902/ from another OLS installation. Not sure why it was missing.

Not a super easy process but it is definitely possible and it allowed me to benefit from the OS setup I had already done.

Someone had replied to my post earlier basically saying that I should follow the documentation. It looks like the posts have been deleted.

I wanted to thank the author for responding. I did try my best to follow the documentation I could find. It’s okay to get a bit frustrated with users trying things a bit outside the box. I use to provide user support so I understand. My first post was not meant as a “your script is broken and you’re doing everything wrong”. I am sorry if it came across that way. I was trying to report the issues I ran into when running the script. I was probably a bit frustrated myself at the time.

Thank you to those who work on Cyberpanel and provide it to users like me to use. Thank you to those who work to response to users’ questions and issues, like mine. Your work is seen and appreciated.

I ran into this mariadb issue as well, but found a work around before bumping into this post.

I was actually checking to see if there was a fix for it, as my work around is wiped upon running ./ or the ./ script.

I found that the Ubuntu base install adds its own mariadb repo, blocking access to the files that CyberPanel install is looking for… which happens to be a different version, leading to the file listed as the install snag.

I kept getting a package conflict for:
“libmariadbclient-dev” but it is not available in v10.5

i updated “libmariadbclient-dev” with “mariadb-client-10.5” in the install script, and MariaDB continued to install as expected.

Update and/or (re)install script pulls fresh copy of the file, overwriting my changes.