diff --git a/DEPLOY.md b/DEPLOY.md
new file mode 100644
index 0000000..a291267
--- /dev/null
+++ b/DEPLOY.md
@@ -0,0 +1,286 @@
+# Linux 服务器部署指南
+
+## 快速修复数据库权限问题
+
+如果遇到 `unable to open database file` 错误,执行以下命令:
+
+```bash
+# 进入项目目录
+cd /path/to/php_app_downloader
+
+# 确保 data 目录及子目录存在
+mkdir -p data/apps data/uploads
+
+# 设置 data 目录权限(关键步骤)
+chmod 777 data
+chmod 777 data/apps
+chmod 777 data/uploads
+
+# 如果数据库文件已存在,设置其权限
+chmod 666 data/database.db
+
+# 设置所有者为 Web 服务器用户(可选,推荐)
+# Apache 用户通常是 www-data 或 apache
+# Nginx 用户通常是 www-data 或 nginx
+chown -R www-data:www-data data/
+```
+
+## 完整部署步骤
+
+### 1. 上传文件
+
+将所有项目文件上传到服务器,例如:
+```bash
+/var/www/html/php_app_downloader/
+```
+
+### 2. 创建必要的目录
+
+```bash
+cd /var/www/html/php_app_downloader
+mkdir -p data/apps data/uploads
+```
+
+### 3. 设置权限
+
+**方法一:简单粗暴(适合测试环境)**
+```bash
+chmod -R 777 data/
+```
+
+**方法二:更安全(推荐生产环境)**
+```bash
+# 设置目录所有者为 Web 服务器用户
+chown -R www-data:www-data data/
+
+# 设置目录权限
+chmod 755 data/
+chmod 755 data/apps/
+chmod 755 data/uploads/
+
+# 确保 Web 服务器可以写入
+chmod g+w data/
+chmod g+w data/apps/
+chmod g+w data/uploads/
+```
+
+### 4. 验证权限
+
+```bash
+ls -la data/
+```
+
+应该看到类似输出:
+```
+drwxrwxr-x 4 www-data www-data 4096 Jun 24 17:36 .
+drwxr-xr-x 8 www-data www-data 4096 Jun 24 17:36 ..
+drwxrwxr-x 2 www-data www-data 4096 Jun 24 17:36 apps
+drwxrwxr-x 2 www-data www-data 4096 Jun 24 17:36 uploads
+```
+
+### 5. 配置 Web 服务器
+
+#### Apache (.htaccess)
+
+如果使用 Apache,可以在项目根目录创建 `.htaccess`:
+
+```apache
+# 禁止直接访问 data 目录
+
+ Order Deny,Allow
+ Deny from all
+
+
+# 允许下载 APK 文件
+
+ Order Allow,Deny
+ Allow from all
+
+
+# PHP 配置
+php_value upload_max_filesize 100M
+php_value post_max_size 100M
+php_value max_execution_time 300
+```
+
+#### Nginx (nginx.conf)
+
+```nginx
+server {
+ listen 80;
+ server_name your-domain.com;
+ root /var/www/html/php_app_downloader;
+ index index.php index.html;
+
+ # 上传文件大小限制
+ client_max_body_size 100M;
+
+ location / {
+ try_files $uri $uri/ /index.php?$query_string;
+ }
+
+ # 禁止直接访问 data 目录(除了 APK 文件)
+ location ~ ^/data/(?!apps/.*\.apk$) {
+ deny all;
+ }
+
+ # PHP 处理
+ location ~ \.php$ {
+ fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
+ fastcgi_index index.php;
+ fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
+ include fastcgi_params;
+ }
+}
+```
+
+### 6. PHP 配置检查
+
+确保 PHP 配置允许上传大文件:
+
+```bash
+# 编辑 php.ini
+sudo nano /etc/php/7.4/fpm/php.ini
+
+# 修改以下配置
+upload_max_filesize = 100M
+post_max_size = 100M
+max_execution_time = 300
+memory_limit = 256M
+
+# 重启 PHP-FPM
+sudo systemctl restart php7.4-fpm
+```
+
+### 7. 测试
+
+1. 访问主页:`http://your-domain.com/`
+2. 访问后台:`http://your-domain.com/admin/`
+3. 使用 `admin/admin` 登录
+4. 尝试上传一个 APK 文件
+
+## 常见问题排查
+
+### 问题 1: unable to open database file
+
+**原因:** data 目录不可写
+
+**解决:**
+```bash
+chmod 777 data/
+chown www-data:www-data data/
+```
+
+### 问题 2: 文件上传失败
+
+**原因:** PHP 上传限制或目录权限
+
+**解决:**
+```bash
+# 检查 PHP 配置
+php -i | grep upload_max_filesize
+php -i | grep post_max_size
+
+# 设置目录权限
+chmod 777 data/apps/
+```
+
+### 问题 3: 图片不显示
+
+**原因:** Logo 路径错误或文件权限
+
+**解决:**
+```bash
+# 检查 logo.png 权限
+chmod 644 logo.png
+
+# 检查上传目录权限
+chmod 777 data/uploads/
+```
+
+### 问题 4: Session 问题导致无法登录
+
+**原因:** PHP session 目录不可写
+
+**解决:**
+```bash
+# 检查 session 目录
+ls -la /var/lib/php/sessions/
+
+# 设置权限
+sudo chmod 733 /var/lib/php/sessions/
+sudo chown root:www-data /var/lib/php/sessions/
+```
+
+## 安全加固建议
+
+### 1. 修改默认密码
+
+编辑 `admin/index.php`,找到:
+```php
+if ($username === 'admin' && $password === 'admin') {
+```
+
+修改为:
+```php
+if ($username === 'admin' && $password === 'your_strong_password') {
+```
+
+### 2. 限制后台访问
+
+在 Nginx 中添加 IP 白名单:
+```nginx
+location /admin/ {
+ allow 192.168.1.100; # 你的 IP
+ deny all;
+}
+```
+
+### 3. 启用 HTTPS
+
+使用 Let's Encrypt 免费证书:
+```bash
+sudo apt install certbot python3-certbot-nginx
+sudo certbot --nginx -d your-domain.com
+```
+
+### 4. 定期备份
+
+创建备份脚本:
+```bash
+#!/bin/bash
+# backup.sh
+DATE=$(date +%Y%m%d_%H%M%S)
+tar -czf /backup/app_backup_$DATE.tar.gz /var/www/html/php_app_downloader/data/
+```
+
+## 监控和维护
+
+### 检查磁盘空间
+```bash
+df -h
+du -sh data/apps/
+```
+
+### 清理旧版本
+定期在管理后台删除不需要的旧版本
+
+### 日志监控
+```bash
+# Apache 日志
+tail -f /var/log/apache2/error.log
+
+# Nginx 日志
+tail -f /var/log/nginx/error.log
+
+# PHP 日志
+tail -f /var/log/php7.4-fpm.log
+```
+
+---
+
+如有问题,请检查:
+1. PHP 版本 >= 7.0
+2. SQLite 扩展已启用
+3. data 目录权限正确
+4. Web 服务器用户有写入权限
diff --git a/includes/db.php b/includes/db.php
index e17bc59..c0e5a05 100644
--- a/includes/db.php
+++ b/includes/db.php
@@ -1,9 +1,24 @@
setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
@@ -42,8 +57,11 @@ try {
foreach ($defaults as $config) {
$stmt->execute($config);
}
+
+ // 设置新创建的数据库文件权限
+ @chmod($db_path, 0666);
}
} catch (PDOException $e) {
- die("数据库连接失败: " . $e->getMessage());
+ die("数据库连接失败: " . $e->getMessage() . "
请确保:
1. data 目录存在且可写 (chmod 777 data)
2. Web 服务器用户有权限创建文件");
}