Устанавливать веб-панель в системный каталог

Этот коммит содержится в:
2026-05-18 06:56:44 +09:00
родитель 6e062bb250
Коммит 2f80c4322c
3 изменённых файлов: 34 добавлений и 1 удалений
+2
Просмотреть файл
@@ -40,6 +40,8 @@ cd xlx
sudo bash scripts/install-system.sh sudo bash scripts/install-system.sh
``` ```
Web-панель устанавливается в `/opt/xlx-server`, поэтому Apache не зависит от папки, где был выполнен `git clone`.
Установщик сам выберет адрес сервера: Установщик сам выберет адрес сервера:
1. `XLX_PUBLIC_HOST`, если переменная задана; 1. `XLX_PUBLIC_HOST`, если переменная задана;
+8
Просмотреть файл
@@ -11,6 +11,8 @@
- systemd service для reflector; - systemd service для reflector;
- `/etc/xlx/xlxd.env`. - `/etc/xlx/xlxd.env`.
Web-приложение копируется в `/opt/xlx-server`, чтобы Apache не зависел от того, где был сделан `git clone`. Это важно, если репозиторий лежит в `/root`: Apache не может читать такие родительские каталоги и отвечает `403 Forbidden`.
## Без домена ## Без домена
На чистом Ubuntu/Debian сервере: На чистом Ubuntu/Debian сервере:
@@ -21,6 +23,12 @@ cd xlx
sudo bash scripts/install-system.sh sudo bash scripts/install-system.sh
``` ```
Если нужен другой путь установки web-приложения:
```bash
sudo XLX_APP_DIR=/srv/xlx-server bash scripts/install-system.sh
```
Установщик сам выберет адрес: Установщик сам выберет адрес:
1. `XLX_PUBLIC_HOST`, если переменная задана; 1. `XLX_PUBLIC_HOST`, если переменная задана;
+24 -1
Просмотреть файл
@@ -6,7 +6,25 @@ if [[ "${EUID}" -ne 0 ]]; then
exit 1 exit 1
fi fi
REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" SOURCE_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
APP_DIR="${XLX_APP_DIR:-/opt/xlx-server}"
install_app_files() {
local source_real target_real
mkdir -p "$APP_DIR"
source_real="$(realpath "$SOURCE_ROOT")"
target_real="$(realpath "$APP_DIR")"
if [[ "$source_real" != "$target_real" ]]; then
tar --exclude='.git' -C "$SOURCE_ROOT" -cf - . | tar -C "$APP_DIR" -xf -
fi
chown -R root:www-data "$APP_DIR"
find "$APP_DIR" -type d -exec chmod 755 {} \;
find "$APP_DIR" -type f -exec chmod 644 {} \;
}
REPO_ROOT="$SOURCE_ROOT"
PUBLIC_DIR="$REPO_ROOT/public" PUBLIC_DIR="$REPO_ROOT/public"
detect_host() { detect_host() {
@@ -88,10 +106,15 @@ DB_PASSWORD_SQL="$(sql_escape "$DB_PASSWORD")"
echo "Installing XLX system for host: $PUBLIC_HOST" echo "Installing XLX system for host: $PUBLIC_HOST"
echo "Panel port: $PANEL_PORT" echo "Panel port: $PANEL_PORT"
echo "Application directory: $APP_DIR"
apt-get update apt-get update
apt-get install -y apache2 libapache2-mod-php php php-mysql mariadb-server git ca-certificates curl apt-get install -y apache2 libapache2-mod-php php php-mysql mariadb-server git ca-certificates curl
install_app_files
REPO_ROOT="$APP_DIR"
PUBLIC_DIR="$REPO_ROOT/public"
systemctl enable --now mariadb systemctl enable --now mariadb
mysql <<SQL mysql <<SQL