This commit is contained in:
root
2025-06-24 11:28:52 +02:00
parent 1b3cf16d55
commit fea7c03bfb

View File

@@ -460,6 +460,28 @@ create_databases() {
if [ -f "/var/www/moduleair_pro_4g/sqlite/create_db.py" ]; then if [ -f "/var/www/moduleair_pro_4g/sqlite/create_db.py" ]; then
if sudo /usr/bin/python3 "/var/www/moduleair_pro_4g/sqlite/create_db.py"; then if sudo /usr/bin/python3 "/var/www/moduleair_pro_4g/sqlite/create_db.py"; then
print_success "Databases created successfully" print_success "Databases created successfully"
# Set proper permissions on database files
print_status "Setting database permissions..."
# Find all .db files in the sqlite directory and parent directory
if [ -d "/var/www/moduleair_pro_4g/sqlite" ]; then
# Set ownership and permissions for all database files
sudo find /var/www/moduleair_pro_4g -name "*.db" -type f -exec chown www-data:www-data {} \;
sudo find /var/www/moduleair_pro_4g -name "*.db" -type f -exec chmod 664 {} \;
# Set permissions on the sqlite directory itself
sudo chown -R www-data:www-data /var/www/moduleair_pro_4g/sqlite
sudo chmod 775 /var/www/moduleair_pro_4g/sqlite
# Also set permissions on any db-journal or db-wal files (SQLite temporary files)
sudo find /var/www/moduleair_pro_4g -name "*.db-journal" -type f -exec chown www-data:www-data {} \;
sudo find /var/www/moduleair_pro_4g -name "*.db-journal" -type f -exec chmod 664 {} \;
sudo find /var/www/moduleair_pro_4g -name "*.db-wal" -type f -exec chown www-data:www-data {} \;
sudo find /var/www/moduleair_pro_4g -name "*.db-wal" -type f -exec chmod 664 {} \;
print_success "Database permissions set"
fi
else else
print_error "Failed to create databases" print_error "Failed to create databases"
return 1 return 1
@@ -469,6 +491,50 @@ create_databases() {
fi fi
} }
# Fix database permissions
fix_database_permissions() {
print_step "Fixing database permissions..."
# Set proper ownership and permissions for all database files
if [ -d "/var/www/moduleair_pro_4g" ]; then
# Find and fix all .db files
local db_count=$(sudo find /var/www/moduleair_pro_4g -name "*.db" -type f | wc -l)
if [ "$db_count" -gt 0 ]; then
print_status "Found $db_count database file(s)"
# Set ownership to www-data
sudo find /var/www/moduleair_pro_4g -name "*.db" -type f -exec chown www-data:www-data {} \;
sudo find /var/www/moduleair_pro_4g -name "*.db-*" -type f -exec chown www-data:www-data {} \;
# Set read/write permissions for owner and group
sudo find /var/www/moduleair_pro_4g -name "*.db" -type f -exec chmod 664 {} \;
sudo find /var/www/moduleair_pro_4g -name "*.db-*" -type f -exec chmod 664 {} \;
# Ensure directories containing databases are writable
sudo find /var/www/moduleair_pro_4g -name "*.db" -type f -exec dirname {} \; | sort -u | while read dir; do
sudo chown www-data:www-data "$dir"
sudo chmod 775 "$dir"
print_status "Fixed permissions for: $dir"
done
print_success "Database permissions fixed"
else
print_warning "No database files found"
fi
# Also ensure logs directory is writable
if [ -d "/var/www/moduleair_pro_4g/logs" ]; then
sudo chown -R www-data:www-data /var/www/moduleair_pro_4g/logs
sudo chmod -R 775 /var/www/moduleair_pro_4g/logs
print_success "Log directory permissions fixed"
fi
else
print_error "ModuleAir directory not found"
return 1
fi
}
# Set configuration # Set configuration
set_configuration() { set_configuration() {
print_step "Setting configuration..." print_step "Setting configuration..."
@@ -638,6 +704,7 @@ main() {
# Database and configuration setup # Database and configuration setup
create_databases create_databases
set_configuration set_configuration
fix_database_permissions # Fix permissions after database creation
setup_cron_jobs setup_cron_jobs
setup_services setup_services