Debian 12 MariaDB安装脚本修改
看到错误了!问题是在安装 Composer 时 php 命令找不到。这是因为在 Debian 12 上,安装 PHP 时需要添加 ondrej/php PPA,但脚本中可能没有正确安装 PHP 或者 PHP 命令行工具。
让我修复 PHP 安装部分:
1 | # 安装PHP |
主要修改:
- 在添加 PPA 前先安装
software-properties-common - 添加了 PHP 安装后的验证步骤
- 确保包含了
php8.2-cli包(命令行接口)
另外,你还可以在安装 Composer 前添加一个检查:
1 | # 安装Composer |
这样应该能解决 PHP 命令找不到的问题。
时间: 2025-09-17T21:49:00
👤 用户
通过上述脚本,出现数据库安装错误,我之前用下面的脚本安装就顺利通过,帮我修改下,只输出数据库修改部分。我目前的系统是debian12
安装必要软件
echo “安装必要软件…”
apt install -y curl wget git unzip nginx mariadb-server redis-server php8.2-fpm
php8.2-common php8.2-mysql php8.2-gd php8.2-mbstring php8.2-xml php8.2-curl
php8.2-bcmath php8.2-zip php8.2-intl php8.2-redis
配置MySQL
echo “配置MySQL…”
systemctl start mysql
systemctl enable mysql
时间: 2025-09-17T21:20:03
🤖 DeepSeek (deepseek-chat)
我来修改数据库安装部分,使用 MariaDB 替代 MySQL,并适配 Debian 12。以下是需要修改的部分:
1 | # 安装MariaDB (替代MySQL,支持Debian 12) |
如果您想要更简化的版本,只修改数据库安装部分,可以使用这个精简版:
1 | # 安装MariaDB (替代MySQL,支持Debian 12) |
然后在主函数中将 install_mysql 替换为 install_mariadb。
这样修改后,脚本将在 Debian 12 上使用 MariaDB 而不是 MySQL,避免了 MySQL 官方包在 Debian 12 上的兼容性问题。
时间: 2025-09-17T21:20:03
👤 用户
不是,我之前的安装脚本如下,似乎能顺利通过。
https://github.com/yuebinliu/install_sspanel/raw/refs/heads/main/install_sspanel.sh
时间: 2025-09-17T21:21:03
🤖 DeepSeek (deepseek-chat)
我看到您之前的脚本了。您使用的是 MariaDB 而不是 MySQL,这是正确的做法,因为在 Debian 12 上 MariaDB 的兼容性更好。我来修改数据库安装部分:
1 | # 安装MariaDB (支持Debian 12) |
然后在主函数中将 install_mysql 替换为 install_mariadb:
1 | main() { |
这样修改后,脚本将在 Debian 12 上使用 MariaDB,这与您之前成功的安装方式一致。MariaDB 在 Debian 12 上是默认的 MySQL 替代品,兼容性更好,安装过程也更简单。
时间: 2025-09-17T21:21:03
👤 用户
帮我看看下面的脚本 ,安装的是说明数据库?
#!/bin/bash
SSPanel 安装脚本 for Debian 12
域名: yuebin.uk
set -e
配置变量
DOMAIN=”yuebin.uk”
DB_NAME=”sspanel”
DB_USER=”sspanel_user”
DB_PASSWORD=$(openssl rand -base64 16 | tr -d ‘/+’ | cut -c1-16)
MYSQL_ROOT_PASSWORD=$(openssl rand -base64 16 | tr -d ‘/+’ | cut -c1-16)
PANEL_VERSION=”25.1.0” # 最新稳定版本
echo “==========================================”
echo “SSPanel 安装脚本”
echo “域名: $DOMAIN”
echo “==========================================”
更新系统
echo “更新系统包…”
apt update && apt upgrade -y
安装必要软件
echo “安装必要软件…”
apt install -y curl wget git unzip nginx mariadb-server redis-server php8.2-fpm
php8.2-common php8.2-mysql php8.2-gd php8.2-mbstring php8.2-xml php8.2-curl
php8.2-bcmath php8.2-zip php8.2-intl php8.2-redis
配置MySQL
echo “配置MySQL…”
systemctl start mysql
systemctl enable mysql
安全设置MySQL
mysql -u root <<EOF
ALTER USER ‘root‘@’localhost’ IDENTIFIED BY ‘$MYSQL_ROOT_PASSWORD’;
DELETE FROM mysql.user WHERE User=’’;
DELETE FROM mysql.user WHERE User=’root’ AND Host NOT IN (‘localhost’, ‘127.0.0.1’, ‘::1’);
DROP DATABASE IF EXISTS test;
DELETE FROM mysql.db WHERE Db=’test’ OR Db=’test\_%’;
FLUSH PRIVILEGES;
EOF
创建SSPanel数据库
mysql -u root -p$MYSQL_ROOT_PASSWORD <<EOF
CREATE DATABASE $DB_NAME CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER ‘$DB_USER‘@’localhost’ IDENTIFIED BY ‘$DB_PASSWORD’;
GRANT ALL PRIVILEGES ON $DB_NAME.* TO ‘$DB_USER‘@’localhost’;
FLUSH PRIVILEGES;
EOF
安装Composer
echo “安装Composer…”
curl -sS https://getcomposer.org/installer | php – –install-dir=/usr/local/bin –filename=composer
创建网站目录
echo “创建网站目录…”
mkdir -p /www/wwwroot/$DOMAIN
cd /www/wwwroot/$DOMAIN
下载SSPanel (使用无需认证的方式)
echo “下载SSPanel…”
方法1: 直接下载发布版压缩包
wget https://github.com/Anankke/SSPanel-UIM/archive/refs/tags/$PANEL_VERSION.zip -O sspanel.zip
unzip sspanel.zip
mv SSPanel-UIM-$PANEL_VERSION/* .
mv SSPanel-UIM-$PANEL_VERSION/.* . 2>/dev/null || true
rm -rf SSPanel-UIM-$PANEL_VERSION sspanel.zip
或者方法2: 使用无需认证的git下载(如果上面的方法失败)
git clone https://github.com/Anankke/SSPanel-UIM.git . –depth=1
git checkout $PANEL_VERSION
安装PHP依赖
echo “安装PHP依赖…”
composer install –no-dev –optimize-autoloader –ignore-platform-reqs
设置文件权限
chown -R www-data:www-data /www/wwwroot/$DOMAIN
chmod -R 755 /www/wwwroot/$DOMAIN
chmod -R 777 /www/wwwroot/$DOMAIN/storage
chmod -R 777 /www/wwwroot/$DOMAIN/public
配置Nginx
echo “配置Nginx…”
cat > /etc/nginx/sites-available/$DOMAIN <<EOF
server {
listen 80;
server_name $DOMAIN;
root /www/wwwroot/$DOMAIN/public;
index index.php index.html;
location / {
try_files \$uri \$uri/ /index.php?\$query_string;
}
location ~ \.php\$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.(?!well-known).* {
deny all;
}
}
EOF
ln -sf /etc/nginx/sites-available/$DOMAIN /etc/nginx/sites-enabled/
rm -f /etc/nginx/sites-enabled/default
测试Nginx配置
nginx -t
systemctl reload nginx
配置PHP
echo “配置PHP…”
sed -i ‘s/^;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/‘ /etc/php/8.2/fpm/php.ini
sed -i ‘s/^max_execution_time = ./max_execution_time = 300/‘ /etc/php/8.2/fpm/php.ini
sed -i ‘s/^memory_limit = ./memory_limit = 256M/‘ /etc/php/8.2/fpm/php.ini
sed -i ‘s/^upload_max_filesize = ./upload_max_filesize = 100M/‘ /etc/php/8.2/fpm/php.ini
sed -i ‘s/^post_max_size = ./post_max_size = 100M/‘ /etc/php/8.2/fpm/php.ini
systemctl restart php8.2-fpm
创建环境配置文件
cp config/.config.example.php config/.config.php
cp config/appprofile.example.php config/appprofile.php
生成密钥
APP_KEY=$(php -r “echo ‘base64:’ . base64_encode(random_bytes(32));”)
配置环境文件
sed -i “s|https://your-domain.com|https://$DOMAIN|g“ config/.config.php
sed -i “s|$_ENV[‘db_host’] = ‘127.0.0.1’;|$_ENV[‘db_host’] = ‘localhost’;|g” config/.config.php
sed -i “s|$_ENV[‘db_database’] = ‘sspanel’;|$_ENV[‘db_database’] = ‘$DB_NAME’;|g” config/.config.php
sed -i “s|$_ENV[‘db_username’] = ‘sspanel’;|$_ENV[‘db_username’] = ‘$DB_USER’;|g” config/.config.php
sed -i “s|$_ENV[‘db_password’] = ‘password’;|$_ENV[‘db_password’] = ‘$DB_PASSWORD’;|g” config/.config.php
设置文件权限 - 按照官方最佳实践
echo “设置文件权限…”
设置基础权限
chown -R www-data:www-data /www/wwwroot/$DOMAIN
find /www/wwwroot/$DOMAIN -type d -exec chmod 755 {} ;
find /www/wwwroot/$DOMAIN -type f -exec chmod 644 {} ;
设置需要写权限的目录
chmod -R 777 /www/wwwroot/$DOMAIN/storage
chmod 775 /www/wwwroot/$DOMAIN/public/clients
确保 storage 子目录存在且可写
mkdir -p /www/wwwroot/$DOMAIN/storage/framework/smarty/{cache,compile}
mkdir -p /www/wwwroot/$DOMAIN/storage/framework/twig/cache
chmod -R 777 /www/wwwroot/$DOMAIN/storage/framework
配置文件权限(初次安装需要写权限,安装后可改为只读)
chmod 664 /www/wwwroot/$DOMAIN/config/.config.php
[ -f “/www/wwwroot/$DOMAIN/config/appprofile.php” ] && chmod 664 /www/wwwroot/$DOMAIN/config/appprofile.php
echo “权限设置完成”
echo “==========================================”
echo “安装完成!请继续以下步骤:”
echo “1. 访问 http://$DOMAIN 完成安装”
echo “2. 配置数据库连接”
echo “3. 运行数据库迁移”
echo “==========================================”
输出重要信息
echo “================= 重要信息 =================”
echo “MySQL root 密码: $MYSQL_ROOT_PASSWORD”
echo “SSPanel 数据库名: $DB_NAME”
echo “SSPanel 数据库用户: $DB_USER”
echo “SSPanel 数据库密码: $DB_PASSWORD”
echo “应用密钥: $APP_KEY”
echo “网站根目录: /www/wwwroot/$DOMAIN”
echo “==========================================”
显示后续步骤
echo “”
echo “后续步骤:”
echo “1. 运行数据库迁移:”
echo “ cd /www/wwwroot/$DOMAIN && php xcat Migration latest”
echo “2. 创建管理员账户:”
echo “ cd /www/wwwroot/$DOMAIN && php xcat User createAdmin”
echo “3. 设置定时任务:”
echo “ crontab -u www-data -e”
echo “ 添加:”
echo “ * * * * * php /www/wwwroot/$DOMAIN/xcat Job CheckJob”
echo “ 0 * * * * php /www/wwwroot/$DOMAIN/xcat Job DailyJob”
时间: 2025-09-17T21:23:22
🤖 DeepSeek (deepseek-chat)
这个脚本安装的是 MariaDB 数据库,而不是 MySQL。从以下几个方面可以确认:
证据1:安装命令
1 | apt install -y curl wget git unzip nginx mariadb-server redis-server php8.2-fpm \ |
这里明确使用了 mariadb-server 而不是 mysql-server。
证据2:服务管理
1 | systemctl start mysql |
在 Debian 系统中,MariaDB 的服务名称仍然是 mysql,这是为了保持兼容性。
证据3:PHP扩展
1 | php8.2-mysql |
这个扩展同时支持 MySQL 和 MariaDB。
为什么使用 MariaDB?
在 Debian 12 中:
- MariaDB 是默认的 MySQL 替代品
- 安装更简单,不需要额外的仓库配置
- 完全兼容 MySQL
- 性能通常更好
验证方法
安装完成后,你可以通过以下命令确认:
1 | # 查看数据库版本 |
这会显示类似 mariadb.org binary distribution 的信息,确认安装的是 MariaDB。
这个脚本选择 MariaDB 是正确的,因为在 Debian 12 上安装 MariaDB 比 MySQL 更简单且更稳定。
时间: 2025-09-17T21:23:22
👤 用户
[INFO] 2025-09-17 13:43:53 - 安装Composer…
./install_all.sh: line 221: php: command not found
./install_all.sh: line 222: php: command not found
./install_all.sh: line 223: php: command not found
时间: 2025-09-17T21:49:00
🤖 DeepSeek (deepseek-chat)
看到错误了!问题是在安装 Composer 时 php 命令找不到。这是因为在 Debian 12 上,安装 PHP 时需要添加 ondrej/php PPA,但脚本中可能没有正确安装 PHP 或者 PHP 命令行工具。
让我修复 PHP 安装部分:
1 | # 安装PHP |
主要修改:
- 在添加 PPA 前先安装
software-properties-common - 添加了 PHP 安装后的验证步骤
- 确保包含了
php8.2-cli包(命令行接口)
另外,你还可以在安装 Composer 前添加一个检查:
1 | # 安装Composer |
这样应该能解决 PHP 命令找不到的问题。
时间: 2025-09-17T21:49:00
对话统计
- 消息总数: 8 条
- 处理状态: 成功转换