CyberPanel是个好东西,界面好看又简洁,稳定又好用,可以让我很方便的安装和使用OpenLiteSpeed。
但也有麻烦的地方,比如它自带Mariadb服务器。。。
虽然安装时提供远程数据库服务器选项,但就是个摆设,几年了,死活连不上的BUG一直没修好过,苦苦等待安装到一半还还要提示错误,不得不重新安装,心中总有一万只草泥马路过想问候CyberPanel开发团队。
(╯°Д°)╯︵ /(.□ . \)
今天想了个折中方案并测试成功了,所以,来万事屋记录分享下。
先确定远程数据库设置好并测试链接成功:
假设远程数据库服务器地址:192.168.1.101
我用的是内网,外网的话建议搞SSL,万事屋教程(https://www.rei3.com/forum-post/63411.html)。
数据库地址:192.168.1.101
数据库名:cyberpanel // 这个建议不要改,怕万一出错就麻烦了
数据库用户名:aaa //这个可以自定义
数据库用户密码:bbb //这个也可以自定义
数据库端口:3306 //这个根据服务器实际情况来,默认3306
先放着,到需要安装CyberPanel的服务器上,SSH登陆。
cd /usr/local/src
sh <(curl https://cyberpanel.net/install.sh || wget -O - https://cyberpanel.net/install.sh)
不要选择全部安装,其他一律“Y”or“N”即可,MySQL默认选择“N”,低配服务器不要安装“看门狗”,要不起的。
安装完毕后,登陆
https://你的IP地址:8090
要记录和修改三个文件:
- /usr/local/CyberCP/CyberCP/settings.py
- /etc/cyberpanel/mysqlPassword
- /usr/local/CyberCP/public/phpmyadmin/config.inc.php
现在,先导出cyberpanel的本地数据库,密码和用户在“settings.py”文件里能找到:
mysqldump -u root -p cyberpanel > /home/backup/cyberpanel_backup_$(date +%Y%m%d).sql
然后SSH登陆远程数据库服务器,将上面的sql数据备份导入远程数据库服务器的“cyberpanel”数据库中:
mysql -u root -p cyberpanel < cyberpanel_backup_$(date +%Y%m%d).sql
开始转移数据链接:
先对settings.py做个备份,然后编辑:
cp /usr/local/CyberCP/CyberCP/settings.py /usr/local/CyberCP/CyberCP/settings.py.bak
nano /usr/local/CyberCP/CyberCP/settings.py
在第110行左右会看到数据库所有详细,包括“mysql”和“cyberpaenl”的,都记得保存下来后,修改成自己的远程服务器的数据库信息,root那栏随意,我没写正确居然可以正常用,那就不管了。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'cyberpanel',
'USER': 'aaa',
'PASSWORD': 'bbb',
'HOST': '192.168.1.101',
'PORT':'3306'
},
'rootdb': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'mysql',
'USER': 'root',
'PASSWORD': 'YourROOTpassword',
'HOST': '192.168.1.101',
'PORT': '3306',
},
}
然后是mysqlPassword,这里存储了root的数据库密码,你需要cyberpanel来管理数据库这个就是必须了
cp /etc/cyberpanel/mysqlPassword /etc/cyberpanel/mysqlPassword.bak
nano /etc/cyberpanel/mysqlPassword
对了,记得给这两文件加个buff,否则万一更新什么的就麻烦了:
sudo chattr +i /etc/cyberpanel/mysqlPassword
sudo chattr +i /usr/local/CyberCP/CyberCP/settings.py
最后这个是phpmyadmin链接远程数据库,我不用它不带表别人不用是吧?一起改了
cp /usr/local/CyberCP/public/phpmyadmin/config.inc.php /usr/local/CyberCP/public/phpmyadmin/config.inc.php.bak
nano /usr/local/CyberCP/public/phpmyadmin/config.inc.php
找这两个,一个后面输入地址,一个输入用户名
$cfg['Servers'][$i]['controlhost'] = '192.168.1.101';
$cfg['Servers'][$i]['controlport'] = '3306';
$cfg['Servers'][$i]['controluser'] = 'root';
$cfg['Servers'][$i]['controlpass'] = 'YourROOTpassword';
做完以上工作后先别急,登陆到cyberpanel web页面:
https://你的IP地址:8090
左侧烂找“Security”,选“Furewall”
新建端口:
192.168.1.101:3306
PS:如果是国内云服务器用户,可以利用安全组来设置端口,CyberPanel自带的Firewall完全可以关闭禁止开机启动甚至卸载:
systemctl status firewalld
# 停止当前运行的防火墙服务
sudo systemctl stop firewalld
# 禁止防火墙开机自启动
sudo systemctl disable firewalld
# 确认防火墙已被禁用
sudo systemctl is-enabled firewalld
最后,记得卸载CyberPanel自带的Mariadb数据库,这样本地服务器就可以省下许多资源专心做前端服务器了。
sudo systemctl stop mariadb
# 卸载主程序及相关组件
sudo apt purge -y mariadb-server mariadb-client mariadb-common mariadb-server-core-* mariadb-client-core-*
# 清理无用依赖
sudo apt autoremove -y
sudo apt autoclean
# 删除数据库数据目录(包含所有数据库文件,确认无需备份后执行)
sudo rm -rf /var/lib/mysql/
# 删除配置文件残留
sudo rm -rf /etc/mysql/
sudo rm -rf /var/log/mysql/
好了,到这里,CyberPanel就成功使用上了远程数据库,再也不用担心数据库在本地的各种麻烦了!
没有回复内容