Устанавливать веб-панель в системный каталог
Этот коммит содержится в:
@@ -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`, если переменная задана;
|
||||||
|
|||||||
@@ -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`, если переменная задана;
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user