在Linux系统的宝塔面板环境中搭建Scratch在线编程系统,需要结合宝塔的图形化管理优势,配置前端环境和后端服务。以下是详细步骤: ### **一、准备工作** 1. **服务器要求**: - 至少2GB内存(推荐4GB以上) - 已安装宝塔面板(Linux版) - 域名(可选,用于正式部署) 2. **需要安装的软件**: - Nginx(Web服务器) - PHP 7.4+(后端API) - MySQL 5.7+(数据库,存储用户和项目数据) - Node.js 14.x+(运行Scratch前端项目) ### **二、通过宝塔面板安装基础环境** 1. 登录宝塔面板 → 进入「软件商店」: - 安装 **Nginx**(推荐最新稳定版) - 安装 **PHP 7.4** 及以上版本(勾选必要扩展:fileinfo、mysqli、openssl) - 安装 **MySQL 5.7** 或 **MariaDB 10.5** - 安装 **Node.js**(通过「软件商店」→「运行环境」找到Node.js,选择14.x版本) ### **三、部署Scratch前端(scratch-www + scratch-gui)** #### 1. 创建网站目录 - 宝塔面板 → 「文件」→ 进入`/www/wwwroot/` → 创建`scratch`目录 - 进入`scratch`目录,再创建`frontend`(前端)和`backend`(后端)子目录 #### 2. 安装scratch-www和scratch-gui - 宝塔面板 → 「终端」→ 执行以下命令:
```bash # 进入前端目录 cd /www/wwwroot/scratch/frontend # 克隆代码 git clone https://github.com/scratchfoundation/scratch-www.git git clone https://github.com/scratchfoundation/scratch-gui.git # 安装scratch-gui依赖并启动 cd scratch-gui npm install npm run build # 构建生产版本 npm link # 链接到全局 # 安装scratch-www依赖并关联scratch-gui cd ../scratch-www npm install npm link scratch-gui # 关联本地scratch-gui # 创建环境配置文件 cat > .env << EOF API_URL=http://你的服务器IP或域名/backend/api PORT=8080 NODE_ENV=production SCRATCH_GUI_URL=/scratch-gui/build EOF # 构建scratch-www npm run build ```
### **四、配置PHP后端(基础示例)** 1. 在`/www/wwwroot/scratch/backend`目录下创建`api`文件夹,用于存放PHP接口文件。 2. 创建数据库: - 宝塔面板 → 「数据库」→ 「添加数据库」 - 数据库名:`scratch_db`,用户名:`scratch_user`,设置密码并记录 3. 创建基础用户认证接口示例(`/www/wwwroot/scratch/backend/api/user.php`):
```php
<?php
// 数据库连接
$servername = "localhost";
$username = "scratch_user";
$password = "你的数据库密码";
$dbname = "scratch_db";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
// 设置跨域
header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json");
// 简单的用户登录示例
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$data = json_decode(file_get_contents('php://input'), true);
$username = $data['username'];
$password = $data['password'];
// 实际应用中需添加密码加密验证
$sql = "SELECT * FROM users WHERE username='$username'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
echo json_encode(["status" => "success", "message" => "登录成功"]);
} else {
echo json_encode(["status" => "error", "message" => "用户不存在"]);
}
}
$conn->close();
?>
```### **五、配置Nginx反向代理** 1. 宝塔面板 → 「网站」→ 「添加站点」: - 域名:输入你的域名(若无域名,可填服务器IP) - 根目录:`/www/wwwroot/scratch/frontend/scratch-www/build` - PHP版本:选择已安装的PHP版本 2. 配置Nginx: - 进入站点设置 → 「配置文件」→ 在`server`块中添加:
```nginx
# 代理API请求到PHP后端
location /backend/ {
root /www/wwwroot/scratch/;
try_files $uri $uri/ /index.php?$query_string;
fastcgi_pass unix:/tmp/php-cgi-74.sock; # 注意对应你的PHP版本
fastcgi_index index.php;
include fastcgi.conf;
}
# 代理scratch-gui
location /scratch-gui/ {
alias /www/wwwroot/scratch/frontend/scratch-gui/build/;
}
# 解决单页应用刷新404问题
location / {
try_files $uri $uri/ /index.html;
}
```### **六、设置启动服务** 为了让Scratch服务在服务器重启后自动运行,需要配置进程管理: 1. 宝塔面板 → 「软件商店」→ 安装「PM2管理器」 2. 进入PM2管理器 → 「添加项目」:
- 项目名称:`scratch-www` - 启动文件:`/www/wwwroot/scratch/frontend/scratch-www/server.js` - 项目路径:`/www/wwwroot/scratch/frontend/scratch-www` - 点击「添加」,启动服务
### **七、访问与测试**
1. 打开浏览器,访问你的域名或服务器IP
2. 若一切正常,会显示Scratch的在线界面
3. 测试核心功能:
- 创建新项目
- 拖拽积木块
- 运行项目
- 保存项目(需要后端接口支持)
### **常见问题解决**
1. **页面白屏**:
- 检查Nginx配置是否正确
- 查看浏览器控制台(F12)的报错信息
- 确保scratch-www和scratch-gui已成功构建
2. **接口调用失败**:
- 检查PHP后端是否正常运行
- 确认跨域设置是否正确
- 查看宝塔面板的「日志」→「错误日志」排查问题
3. **内存不足**:
- 若服务器内存较小,可关闭不必要的进程
- 调整Node.js的内存限制:`export NODE_OPTIONS=--max-old-space-size=1024`
通过以上步骤,你可以在宝塔环境中搭建一个基础的Scratch在线编程系统。实际生产环境中,还需要完善用户系统、项目存储、权限管理等功能,并做好安全加固(如HTTPS配置、防SQL注入等)。


- 上一篇:没有了
- 下一篇:windows搭建scratch
- 文章导航