@@ -21,3 +21,140 @@ verify_installation_completion
2121# Start Main Script
2222
2323# Upgrade Scripts will be found below:
24+
25+ # ----------------------------------------------------------------------------------
26+ # Migration: Admin Tools Directory Structure (2025-12-31)
27+ #
28+ # Migrates admin tools from old /var/www/admin/enginescript/ structure
29+ # to new separated structure:
30+ # - Control Panel: /var/www/admin/control-panel/
31+ # - Tools: /var/www/admin/tools/
32+ #
33+ # This ensures phpMyAdmin and other tools survive EngineScript updates.
34+ # ----------------------------------------------------------------------------------
35+
36+ migrate_admin_tools () {
37+ local OLD_ADMIN_DIR=" /var/www/admin/enginescript"
38+ local NEW_TOOLS_DIR=" /var/www/admin/tools"
39+ local NEW_PANEL_DIR=" /var/www/admin/control-panel"
40+ local MIGRATION_NEEDED=0
41+
42+ # Check if old directory structure exists
43+ if [[ -d " $OLD_ADMIN_DIR " ]]; then
44+ echo " ============================================================="
45+ echo " Admin Tools Migration: Detected old directory structure"
46+ echo " ============================================================="
47+
48+ # Create new directories
49+ mkdir -p " $NEW_TOOLS_DIR "
50+ mkdir -p " $NEW_PANEL_DIR "
51+
52+ # Migrate phpMyAdmin (preserve config!)
53+ if [[ -d " $OLD_ADMIN_DIR /phpmyadmin" ]]; then
54+ echo " Migrating phpMyAdmin..."
55+ if [[ ! -d " $NEW_TOOLS_DIR /phpmyadmin" ]]; then
56+ mv " $OLD_ADMIN_DIR /phpmyadmin" " $NEW_TOOLS_DIR /phpmyadmin"
57+ echo " ✓ phpMyAdmin migrated to $NEW_TOOLS_DIR /phpmyadmin"
58+ MIGRATION_NEEDED=1
59+ else
60+ echo " ℹ phpMyAdmin already exists in new location, skipping"
61+ fi
62+ fi
63+
64+ # Migrate Adminer
65+ if [[ -d " $OLD_ADMIN_DIR /adminer" ]]; then
66+ echo " Migrating Adminer..."
67+ if [[ ! -d " $NEW_TOOLS_DIR /adminer" ]]; then
68+ mv " $OLD_ADMIN_DIR /adminer" " $NEW_TOOLS_DIR /adminer"
69+ echo " ✓ Adminer migrated to $NEW_TOOLS_DIR /adminer"
70+ MIGRATION_NEEDED=1
71+ else
72+ echo " ℹ Adminer already exists in new location, skipping"
73+ fi
74+ fi
75+
76+ # Migrate TinyFileManager (preserve config!)
77+ if [[ -d " $OLD_ADMIN_DIR /tinyfilemanager" ]]; then
78+ echo " Migrating TinyFileManager..."
79+ if [[ ! -d " $NEW_TOOLS_DIR /tinyfilemanager" ]]; then
80+ mv " $OLD_ADMIN_DIR /tinyfilemanager" " $NEW_TOOLS_DIR /tinyfilemanager"
81+ echo " ✓ TinyFileManager migrated to $NEW_TOOLS_DIR /tinyfilemanager"
82+ MIGRATION_NEEDED=1
83+ else
84+ echo " ℹ TinyFileManager already exists in new location, skipping"
85+ fi
86+ fi
87+
88+ # Migrate phpSysInfo
89+ if [[ -d " $OLD_ADMIN_DIR /phpsysinfo" ]]; then
90+ echo " Migrating phpSysInfo..."
91+ if [[ ! -d " $NEW_TOOLS_DIR /phpsysinfo" ]]; then
92+ mv " $OLD_ADMIN_DIR /phpsysinfo" " $NEW_TOOLS_DIR /phpsysinfo"
93+ echo " ✓ phpSysInfo migrated to $NEW_TOOLS_DIR /phpsysinfo"
94+ MIGRATION_NEEDED=1
95+ else
96+ echo " ℹ phpSysInfo already exists in new location, skipping"
97+ fi
98+ fi
99+
100+ # Migrate phpinfo
101+ if [[ -d " $OLD_ADMIN_DIR /phpinfo" ]]; then
102+ echo " Migrating phpinfo..."
103+ if [[ ! -d " $NEW_TOOLS_DIR /phpinfo" ]]; then
104+ mv " $OLD_ADMIN_DIR /phpinfo" " $NEW_TOOLS_DIR /phpinfo"
105+ echo " ✓ phpinfo migrated to $NEW_TOOLS_DIR /phpinfo"
106+ MIGRATION_NEEDED=1
107+ else
108+ echo " ℹ phpinfo already exists in new location, skipping"
109+ fi
110+ fi
111+
112+ # Migrate OpCache-GUI
113+ if [[ -d " $OLD_ADMIN_DIR /opcache-gui" ]]; then
114+ echo " Migrating OpCache-GUI..."
115+ if [[ ! -d " $NEW_TOOLS_DIR /opcache-gui" ]]; then
116+ mv " $OLD_ADMIN_DIR /opcache-gui" " $NEW_TOOLS_DIR /opcache-gui"
117+ echo " ✓ OpCache-GUI migrated to $NEW_TOOLS_DIR /opcache-gui"
118+ MIGRATION_NEEDED=1
119+ else
120+ echo " ℹ OpCache-GUI already exists in new location, skipping"
121+ fi
122+ fi
123+
124+ # Set permissions on migrated tools
125+ if [[ " $MIGRATION_NEEDED " -eq 1 ]]; then
126+ echo " Setting permissions on migrated tools..."
127+ chown -R www-data:www-data " $NEW_TOOLS_DIR "
128+ find " $NEW_TOOLS_DIR " -type d -exec chmod 755 {} \;
129+ find " $NEW_TOOLS_DIR " -type f -exec chmod 644 {} \;
130+
131+ echo " "
132+ echo " ============================================================="
133+ echo " Admin Tools Migration Complete!"
134+ echo " ============================================================="
135+ echo " "
136+ echo " Tools are now stored in: $NEW_TOOLS_DIR "
137+ echo " Control panel is now in: $NEW_PANEL_DIR "
138+ echo " "
139+ echo " This separation ensures your tool configurations"
140+ echo " (especially phpMyAdmin) survive future EngineScript updates."
141+ echo " ============================================================="
142+ echo " "
143+ fi
144+
145+ # Clean up old directory if empty
146+ if [[ -d " $OLD_ADMIN_DIR " ]]; then
147+ # Check if directory is empty (only contains . and ..)
148+ if [[ -z " $( ls -A " $OLD_ADMIN_DIR " 2> /dev/null) " ]]; then
149+ rmdir " $OLD_ADMIN_DIR " 2> /dev/null || true
150+ echo " Removed empty old admin directory: $OLD_ADMIN_DIR "
151+ else
152+ echo " Note: Old admin directory still contains files: $OLD_ADMIN_DIR "
153+ echo " Please review and remove manually if no longer needed."
154+ fi
155+ fi
156+ fi
157+ }
158+
159+ # Run migration check
160+ migrate_admin_tools
0 commit comments