Skip to content

Commit b5a3351

Browse files
authored
Control Panel Directory Structure
Moved control panel and tools to separate directories for better organization and to fix errors.
1 parent 2144a03 commit b5a3351

19 files changed

Lines changed: 187 additions & 73 deletions

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
"EngineScript\\": "src/"
4949
},
5050
"files": [
51-
"config/var/www/admin/enginescript/api.php"
51+
"config/var/www/admin/control-panel/api.php"
5252
]
5353
},
5454
"autoload-dev": {

config/etc/nginx/admin/admin.localhost.conf

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,8 @@ server {
4343
ssl_session_tickets on;
4444
ssl_session_timeout 1h;
4545

46+
# Root directory - Control panel is in /var/www/admin/control-panel/
47+
# Tools are in /var/www/admin/tools/
4648
root /var/www/admin;
4749

4850
# FastCGI_Cache Disable

config/etc/nginx/admin/admin.your-domain.conf

Lines changed: 85 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,10 @@ server {
2222
# SSL Settings
2323
include /etc/nginx/ssl/sslshared.conf;
2424

25-
root /var/www/admin/enginescript;
25+
# Root directory for EngineScript Control Panel
26+
# Tools (phpMyAdmin, TinyFileManager, etc.) are in /var/www/admin/tools/
27+
# and accessed via location blocks below
28+
root /var/www/admin/control-panel;
2629

2730
# Admin Control Panel Protection
2831
# Adds a basic authentication prompt to the admin control panel.
@@ -38,7 +41,7 @@ server {
3841
fastcgi_cache off;
3942
set $skip_cache 1;
4043

41-
# EngineScript Control Panel - Default Location
44+
# EngineScript Control Panel - Default Location (Landing Page)
4245
location / {
4346
try_files $uri $uri/ /index.html =404;
4447
}
@@ -53,6 +56,85 @@ server {
5356
rewrite ^/services/(.*)$ /api.php?endpoint=services/$1 last;
5457
}
5558

59+
# ============================================================
60+
# Admin Tools - Separate directory from control panel
61+
# Tools are stored in /var/www/admin/tools/ to prevent
62+
# EngineScript updates from overwriting tool configurations
63+
# ============================================================
64+
65+
# phpMyAdmin - Database management tool
66+
location /phpmyadmin {
67+
alias /var/www/admin/tools/phpmyadmin;
68+
index index.php;
69+
70+
location ~ \.php$ {
71+
fastcgi_split_path_info ^(.+\.php)(/.+)$;
72+
fastcgi_param SCRIPT_FILENAME $request_filename;
73+
include /etc/nginx/globals/php-fpm.conf;
74+
}
75+
}
76+
77+
# TinyFileManager - File management tool
78+
location /tinyfilemanager {
79+
alias /var/www/admin/tools/tinyfilemanager;
80+
index tinyfilemanager.php;
81+
82+
location ~ \.php$ {
83+
fastcgi_split_path_info ^(.+\.php)(/.+)$;
84+
fastcgi_param SCRIPT_FILENAME $request_filename;
85+
include /etc/nginx/globals/php-fpm.conf;
86+
}
87+
}
88+
89+
# phpSysInfo - System information tool
90+
location /phpsysinfo {
91+
alias /var/www/admin/tools/phpsysinfo;
92+
index index.php;
93+
94+
location ~ \.php$ {
95+
fastcgi_split_path_info ^(.+\.php)(/.+)$;
96+
fastcgi_param SCRIPT_FILENAME $request_filename;
97+
include /etc/nginx/globals/php-fpm.conf;
98+
}
99+
}
100+
101+
# phpinfo - PHP information page
102+
location /phpinfo {
103+
alias /var/www/admin/tools/phpinfo;
104+
index index.php;
105+
106+
location ~ \.php$ {
107+
fastcgi_split_path_info ^(.+\.php)(/.+)$;
108+
fastcgi_param SCRIPT_FILENAME $request_filename;
109+
include /etc/nginx/globals/php-fpm.conf;
110+
}
111+
}
112+
113+
# Adminer - Lightweight database management tool
114+
location /adminer {
115+
alias /var/www/admin/tools/adminer;
116+
index index.php;
117+
118+
location ~ \.php$ {
119+
fastcgi_split_path_info ^(.+\.php)(/.+)$;
120+
fastcgi_param SCRIPT_FILENAME $request_filename;
121+
include /etc/nginx/globals/php-fpm.conf;
122+
}
123+
}
124+
125+
# OpCache GUI - PHP OpCache status and management
126+
location /opcache-gui {
127+
alias /var/www/admin/tools/opcache-gui;
128+
index index.php;
129+
130+
location ~ \.php$ {
131+
fastcgi_split_path_info ^(.+\.php)(/.+)$;
132+
fastcgi_param SCRIPT_FILENAME $request_filename;
133+
include /etc/nginx/globals/php-fpm.conf;
134+
}
135+
}
136+
137+
# PHP processing for control panel root
56138
location ~ \.php$ {
57139
# Regex to split $uri to $fastcgi_script_name and $fastcgi_path
58140
fastcgi_split_path_info ^(.+\.php)(/.+)$;
@@ -64,4 +146,4 @@ server {
64146
# Access log is enabled just for the admin subdomain for security auditing purposes.
65147
access_log /var/log/domains/admin.YOURDOMAIN-nginx-access.log main buffer=128k flush=5m;
66148
error_log /var/log/domains/admin.YOURDOMAIN-nginx-error.log error;
67-
}
149+
}

config/var/www/admin/control-panel/controllers/FileManagerController.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ class FileManagerController extends BaseController
2525
/**
2626
* TinyFileManager file paths
2727
*/
28-
private const TFM_FILE = '/var/www/admin/enginescript/tinyfilemanager/tinyfilemanager.php';
29-
private const TFM_CONFIG = '/var/www/admin/enginescript/tinyfilemanager/config.php';
28+
private const TFM_FILE = '/var/www/admin/tools/tinyfilemanager/tinyfilemanager.php';
29+
private const TFM_CONFIG = '/var/www/admin/tools/tinyfilemanager/config.php';
3030
private const VARIABLES_FILE = '/usr/local/bin/enginescript/enginescript-variables.txt';
3131

3232
/**

scripts/functions/alias/alias-help.sh

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ ${BOLD}EngineScript Locations:${NORMAL}
5757
/usr/local/bin/enginescript - EngineScript source
5858
/var/lib/mysql - MySQL database
5959
/var/log - Server logs
60-
/var/www/admin/enginescript - Tools accessible via server IP address or admin.YOURDOMAIN subdomain
60+
/var/www/admin/control-panel - EngineScript Admin Dashboard
61+
/var/www/admin/tools - Admin tools (phpMyAdmin, TinyFileManager, etc.)
6162
/var/www/sites/YOURDOMAIN/html - Root directory for your WordPress installation
6263
"

scripts/functions/shared/enginescript-common.sh

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -453,10 +453,19 @@ function validate_url() {
453453
# ----------------------------------------------------------------
454454
# Set permissions for EngineScript frontend directories and files
455455
function set_enginescript_frontend_permissions() {
456-
# Set permissions for /var/www/admin/enginescript
457-
find /var/www/admin/enginescript -type d -print0 | sudo xargs -0 chmod 0755
458-
find /var/www/admin/enginescript -type f -print0 | sudo xargs -0 chmod 0644
459-
chown -R www-data:www-data /var/www/admin/enginescript
456+
# Set permissions for /var/www/admin/control-panel (dashboard)
457+
if [ -d "/var/www/admin/control-panel" ]; then
458+
find /var/www/admin/control-panel -type d -print0 | sudo xargs -0 chmod 0755
459+
find /var/www/admin/control-panel -type f -print0 | sudo xargs -0 chmod 0644
460+
chown -R www-data:www-data /var/www/admin/control-panel
461+
fi
462+
463+
# Set permissions for /var/www/admin/tools (phpMyAdmin, TinyFileManager, etc.)
464+
if [ -d "/var/www/admin/tools" ]; then
465+
find /var/www/admin/tools -type d -print0 | sudo xargs -0 chmod 0755
466+
find /var/www/admin/tools -type f -print0 | sudo xargs -0 chmod 0644
467+
chown -R www-data:www-data /var/www/admin/tools
468+
fi
460469

461470
# Set permissions for /etc/enginescript
462471
find /etc/enginescript -type d -print0 | sudo xargs -0 chmod 0755

scripts/functions/shared/reset-filemanager-password.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ echo "3. Restart web server: sudo systemctl reload nginx"
1919
echo ""
2020
echo "Current configuration:"
2121
echo " - Credentials file: /home/EngineScript/enginescript-install-options.txt"
22-
echo " - Configuration: /var/www/admin/enginescript/tinyfilemanager/config.php"
22+
echo " - Configuration: /var/www/admin/tools/tinyfilemanager/config.php"
2323
echo " - Access URL: /tinyfilemanager/tinyfilemanager.php"
2424
echo ""
2525
echo "Note: Passwords are automatically hashed using PHP password_hash() function."

scripts/install/nginx/nginx-create-directories.sh

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,8 @@ DIRS=(
3737
"/var/lib/nginx/proxy"
3838
"/var/log/domains"
3939
"/var/log/nginx"
40-
"/var/www/admin/enginescript"
40+
"/var/www/admin/control-panel"
41+
"/var/www/admin/tools"
4142
"/var/www/sites"
4243
)
4344

scripts/install/tools/frontend/admin-control-panel-install.sh

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,16 +21,19 @@ source /usr/local/bin/enginescript/scripts/functions/shared/enginescript-common.
2121
# Return to /usr/src
2222
cd /usr/src
2323

24+
# Create control-panel directory if it doesn't exist
25+
mkdir -p /var/www/admin/control-panel
26+
2427
# Copy Admin Control Panel
25-
cp -a /usr/local/bin/enginescript/config/var/www/admin/control-panel/. /var/www/admin/enginescript/
28+
cp -a /usr/local/bin/enginescript/config/var/www/admin/control-panel/. /var/www/admin/control-panel/
2629

2730
# Substitute frontend dependency versions
28-
sed -i "s|{FONTAWESOME_VER}|${FONTAWESOME_VER}|g" /var/www/admin/enginescript/index.html
31+
sed -i "s|{FONTAWESOME_VER}|${FONTAWESOME_VER}|g" /var/www/admin/control-panel/index.html
2932

3033
# Remove Adminer tool card if INSTALL_ADMINER=0
3134
if [[ "${INSTALL_ADMINER}" -eq 0 ]]; then
3235
# More robust removal: match any <div> with id="adminer-tool" regardless of attribute order/whitespace
33-
sed -i '/<div[^>]*id="adminer-tool"[^>]*>/,/<\/div>/d' "/var/www/admin/enginescript/index.html"
36+
sed -i '/<div[^>]*id="adminer-tool"[^>]*>/,/<\/div>/d' "/var/www/admin/control-panel/index.html"
3437
fi
3538

3639
# Set permissions for the EngineScript frontend

scripts/install/tools/frontend/phpinfo-install.sh

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,17 @@ source /usr/local/bin/enginescript/scripts/functions/shared/enginescript-common.
1818
#----------------------------------------------------------------------------------
1919
# Start Main Script
2020

21+
# Create tools directory if it doesn't exist
22+
mkdir -p /var/www/admin/tools
23+
2124
# Remove existing phpinfo directory if it exists
22-
if [[ -d "/var/www/admin/enginescript/phpinfo" ]]; then
23-
rm -rf "/var/www/admin/enginescript/phpinfo"
25+
if [[ -d "/var/www/admin/tools/phpinfo" ]]; then
26+
rm -rf "/var/www/admin/tools/phpinfo"
2427
fi
2528

2629
# Create phpinfo directory and file
27-
mkdir -p "/var/www/admin/enginescript/phpinfo"
28-
echo "<?php phpinfo(); ?>" > /var/www/admin/enginescript/phpinfo/index.php
30+
mkdir -p "/var/www/admin/tools/phpinfo"
31+
echo "<?php phpinfo(); ?>" > /var/www/admin/tools/phpinfo/index.php
2932

3033
# Set permissions for the EngineScript frontend
3134
set_enginescript_frontend_permissions

0 commit comments

Comments
 (0)