Устанавливать веб-панель в системный каталог
Этот коммит содержится в:
@@ -40,6 +40,8 @@ cd xlx
|
||||
sudo bash scripts/install-system.sh
|
||||
```
|
||||
|
||||
Web-панель устанавливается в `/opt/xlx-server`, поэтому Apache не зависит от папки, где был выполнен `git clone`.
|
||||
|
||||
Установщик сам выберет адрес сервера:
|
||||
|
||||
1. `XLX_PUBLIC_HOST`, если переменная задана;
|
||||
|
||||
@@ -11,6 +11,8 @@
|
||||
- systemd service для reflector;
|
||||
- `/etc/xlx/xlxd.env`.
|
||||
|
||||
Web-приложение копируется в `/opt/xlx-server`, чтобы Apache не зависел от того, где был сделан `git clone`. Это важно, если репозиторий лежит в `/root`: Apache не может читать такие родительские каталоги и отвечает `403 Forbidden`.
|
||||
|
||||
## Без домена
|
||||
|
||||
На чистом Ubuntu/Debian сервере:
|
||||
@@ -21,6 +23,12 @@ cd xlx
|
||||
sudo bash scripts/install-system.sh
|
||||
```
|
||||
|
||||
Если нужен другой путь установки web-приложения:
|
||||
|
||||
```bash
|
||||
sudo XLX_APP_DIR=/srv/xlx-server bash scripts/install-system.sh
|
||||
```
|
||||
|
||||
Установщик сам выберет адрес:
|
||||
|
||||
1. `XLX_PUBLIC_HOST`, если переменная задана;
|
||||
|
||||
@@ -6,7 +6,25 @@ if [[ "${EUID}" -ne 0 ]]; then
|
||||
exit 1
|
||||
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"
|
||||
|
||||
detect_host() {
|
||||
@@ -88,10 +106,15 @@ DB_PASSWORD_SQL="$(sql_escape "$DB_PASSWORD")"
|
||||
|
||||
echo "Installing XLX system for host: $PUBLIC_HOST"
|
||||
echo "Panel port: $PANEL_PORT"
|
||||
echo "Application directory: $APP_DIR"
|
||||
|
||||
apt-get update
|
||||
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
|
||||
|
||||
mysql <<SQL
|
||||
|
||||
Ссылка в новой задаче
Block a user