Добавить 2-install.sh
This commit is contained in:
+408
@@ -0,0 +1,408 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# wget https://git.kosenka.ru/kosenka/ubuntu.22.04/raw/branch/master/2-install.sh -O 2-install.sh && bash 2-install.sh
|
||||||
|
# Адаптировано для Ubuntu 20.04 (Focal Fossa)
|
||||||
|
|
||||||
|
# Устанавливаемая версия PHP
|
||||||
|
FPM_V="8.2"
|
||||||
|
# Значения по умолчанию — будут переопределены интерактивным опросом
|
||||||
|
USERNAME="admin"
|
||||||
|
USERNAME_EMAIL=""
|
||||||
|
USERNAME_PASS=""
|
||||||
|
SITE_NAME="eis"
|
||||||
|
SITE_ROOT="/home/$USERNAME/$SITE_NAME"
|
||||||
|
ANGIE_SITECONF="/etc/angie/sites-available/$SITE_NAME.conf"
|
||||||
|
ANGIE_ENABLED="/etc/angie/sites-enabled/$SITE_NAME"
|
||||||
|
MARIADB_ROOT_PASS=""
|
||||||
|
MARIADB_DB=""
|
||||||
|
MARIADB_USER=""
|
||||||
|
MARIADB_PASS=""
|
||||||
|
FOTOSVIDPASS="rDrh6inT2lYPhzjBEp!"
|
||||||
|
|
||||||
|
# Проверка на запуск от имени root
|
||||||
|
if [[ $EUID -ne 0 ]]; then
|
||||||
|
echo "Этот скрипт должен быть запущен с правами root (sudo)."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Функция проверки результата
|
||||||
|
check_result() {
|
||||||
|
if [ $1 -ne 0 ]; then
|
||||||
|
echo "Ошибка: $2"
|
||||||
|
exit $1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Функция генерации пароля
|
||||||
|
gen_pass() {
|
||||||
|
matrix=$1
|
||||||
|
length=$2
|
||||||
|
if [ -z "$matrix" ]; then
|
||||||
|
matrix="A-Za-z0-9"
|
||||||
|
fi
|
||||||
|
if [ -z "$length" ]; then
|
||||||
|
length=20
|
||||||
|
fi
|
||||||
|
head /dev/urandom | tr -dc $matrix | head -c$length
|
||||||
|
}
|
||||||
|
|
||||||
|
# Функция отображает запрос и ждет ответа
|
||||||
|
function confirm() {
|
||||||
|
while true; do
|
||||||
|
read -p "$1 ? (y/n) " yn
|
||||||
|
case $yn in
|
||||||
|
[Yy]* ) return 0;;
|
||||||
|
[Nn]* ) return 1;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
# Интерактивный опрос параметров установки
|
||||||
|
prompt_settings() {
|
||||||
|
echo ""
|
||||||
|
echo "========================================"
|
||||||
|
echo " Настройка параметров установки"
|
||||||
|
echo "========================================"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# 1. Имя пользователя
|
||||||
|
read -p "1. Имя системного пользователя [${USERNAME}]: " _input
|
||||||
|
USERNAME="${_input:-$USERNAME}"
|
||||||
|
|
||||||
|
# 2. Email пользователя
|
||||||
|
read -p "2. Email пользователя: " _input
|
||||||
|
while [[ -z "$_input" ]]; do
|
||||||
|
read -p " Email не может быть пустым. Email пользователя: " _input
|
||||||
|
done
|
||||||
|
USERNAME_EMAIL="$_input"
|
||||||
|
|
||||||
|
# 3. Пароль пользователя (с предзаполненным сгенерированным значением)
|
||||||
|
_gen_pass=$(gen_pass "A-Za-z0-9!@#%^" 20)
|
||||||
|
read -p "3. Пароль пользователя [${_gen_pass}]: " _input
|
||||||
|
USERNAME_PASS="${_input:-$_gen_pass}"
|
||||||
|
|
||||||
|
# 4. Root-пароль MariaDB (с предзаполненным сгенерированным значением)
|
||||||
|
_gen_dbroot=$(gen_pass "A-Za-z0-9" 20)
|
||||||
|
read -p "4. Root-пароль MariaDB [${_gen_dbroot}]: " _input
|
||||||
|
MARIADB_ROOT_PASS="${_input:-$_gen_dbroot}"
|
||||||
|
|
||||||
|
# 4.1. Имя базы данных
|
||||||
|
_default_db="${USERNAME}_db"
|
||||||
|
read -p "4.1. Имя базы данных MariaDB [${_default_db}]: " _input
|
||||||
|
MARIADB_DB="${_input:-$_default_db}"
|
||||||
|
MARIADB_USER="$MARIADB_DB"
|
||||||
|
# Пароль пользователя БД — генерируем отдельно
|
||||||
|
_gen_dbpass=$(gen_pass "A-Za-z0-9" 20)
|
||||||
|
MARIADB_PASS="$_gen_dbpass"
|
||||||
|
|
||||||
|
# 5. Имя сайта
|
||||||
|
read -p "5. Имя сайта (папка /home/${USERNAME}/<имя>) [${SITE_NAME}]: " _input
|
||||||
|
SITE_NAME="${_input:-$SITE_NAME}"
|
||||||
|
|
||||||
|
# Пересчитываем зависимые переменные
|
||||||
|
SITE_ROOT="/home/$USERNAME/$SITE_NAME"
|
||||||
|
ANGIE_SITECONF="/etc/angie/sites-available/$SITE_NAME.conf"
|
||||||
|
ANGIE_ENABLED="/etc/angie/sites-enabled/$SITE_NAME"
|
||||||
|
|
||||||
|
# Проверка — пользователь не должен существовать
|
||||||
|
if [ -n "$(grep ^${USERNAME}: /etc/passwd /etc/group 2>/dev/null)" ]; then
|
||||||
|
echo "Ошибка: пользователь '$USERNAME' уже существует."
|
||||||
|
echo "Удалите его: userdel -r $USERNAME"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "========================================"
|
||||||
|
echo " Итоговые параметры:"
|
||||||
|
echo "========================================"
|
||||||
|
echo " Пользователь : $USERNAME"
|
||||||
|
echo " Email : $USERNAME_EMAIL"
|
||||||
|
echo " Пароль : $USERNAME_PASS"
|
||||||
|
echo " Сайт : $SITE_NAME ($SITE_ROOT)"
|
||||||
|
echo " MariaDB root : $MARIADB_ROOT_PASS"
|
||||||
|
echo " БД / Юзер БД : $MARIADB_DB"
|
||||||
|
echo " Пароль БД : $MARIADB_PASS"
|
||||||
|
echo "========================================"
|
||||||
|
echo ""
|
||||||
|
confirm "Продолжить установку с этими параметрами"
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo "Установка отменена."
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
install_user() {
|
||||||
|
/usr/sbin/useradd "$USERNAME" -s "/bin/bash" -c "$USERNAME_EMAIL" -m -d "/home/$USERNAME" -U
|
||||||
|
check_result $? "user creation failed"
|
||||||
|
echo "$USERNAME:$USERNAME_PASS" | /usr/sbin/chpasswd
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
/usr/sbin/deluser "$USERNAME" > /dev/null 2>&1
|
||||||
|
check_result 2 "Пароль не соответствует правилам парольной защиты"
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
chmod a+x /home/$USERNAME
|
||||||
|
usermod -aG users "$USERNAME"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Функция для установки Angie (форк Nginx)
|
||||||
|
install_angie() {
|
||||||
|
echo "[ * ] Установка Angie (форк Nginx)..."
|
||||||
|
# https://angie.software/angie/docs/installation/oss_packages/#angie-install-deb-oss
|
||||||
|
mkdir -p /etc/ssl/angie/
|
||||||
|
apt-get -qq install -y curl
|
||||||
|
curl -o /etc/apt/trusted.gpg.d/angie-signing.gpg https://angie.software/keys/angie-signing.gpg
|
||||||
|
# Ubuntu 20.04 = focal
|
||||||
|
echo "deb https://download.angie.software/angie/$(. /etc/os-release && echo "$ID/$VERSION_ID $VERSION_CODENAME") main" | tee /etc/apt/sources.list.d/angie.list > /dev/null
|
||||||
|
apt-get update
|
||||||
|
apt-get install -y angie
|
||||||
|
# Создаём структуру для виртуальных хостов
|
||||||
|
mkdir -p /etc/angie/sites-available /etc/angie/sites-enabled 2>/dev/null || true
|
||||||
|
# Добавляем include в основной конфиг, если ещё нет
|
||||||
|
ANGIE_CONF_FILE="/etc/angie/angie.conf"
|
||||||
|
if ! grep -q "sites-enabled" "$ANGIE_CONF_FILE"; then
|
||||||
|
sed -i '/http {/a \ include /etc/angie/sites-enabled/*;' "$ANGIE_CONF_FILE"
|
||||||
|
echo "Добавлен include для sites-enabled в $ANGIE_CONF_FILE"
|
||||||
|
fi
|
||||||
|
sed -i -e "s/user angie;/user $USERNAME;/g" "$ANGIE_CONF_FILE"
|
||||||
|
systemctl enable angie
|
||||||
|
systemctl start angie
|
||||||
|
}
|
||||||
|
|
||||||
|
# Создание сайта
|
||||||
|
create_site() {
|
||||||
|
echo "[ * ] Создание сайта: $SITE_NAME"
|
||||||
|
mkdir -p "$SITE_ROOT"
|
||||||
|
mkdir -p "$SITE_ROOT/web"
|
||||||
|
chown -R $USERNAME:$USERNAME "$SITE_ROOT"
|
||||||
|
chmod -R 755 "$SITE_ROOT"
|
||||||
|
# Создаём index.php
|
||||||
|
cat << 'EOF' > "$SITE_ROOT/web/index.php"
|
||||||
|
<?php
|
||||||
|
echo "<h1>Привет от Angie + PHP !</h1>";
|
||||||
|
echo "<p>Сайт работает: ".$_SERVER['SERVER_NAME']."</p>";
|
||||||
|
if (extension_loaded('mysqli') || extension_loaded('pdo_mysql')) {
|
||||||
|
echo "<p>✅ Расширение MySQL загружено.</p>";
|
||||||
|
} else {
|
||||||
|
echo "<p>❌ Расширение MySQL НЕ загружено.</p>";
|
||||||
|
}
|
||||||
|
if (function_exists('mssql_connect') || function_exists('sqlsrv_connect')) {
|
||||||
|
echo "<p>✅ Поддержка MSSQL (FreeTDS) доступна.</p>";
|
||||||
|
} else {
|
||||||
|
echo "<p>❌ Поддержка MSSQL недоступна. Установите pdo_dblib или sqlsrv при необходимости.</p>";
|
||||||
|
}
|
||||||
|
phpinfo();
|
||||||
|
?>
|
||||||
|
EOF
|
||||||
|
# Создаём конфиг Angie
|
||||||
|
cat << EOF > "$ANGIE_SITECONF"
|
||||||
|
server {
|
||||||
|
charset utf-8;
|
||||||
|
client_max_body_size 128M;
|
||||||
|
listen 80;
|
||||||
|
server_name eis;
|
||||||
|
root $SITE_ROOT/web;
|
||||||
|
index index.php;
|
||||||
|
access_log /var/log/angie/$SITE_NAME-access.log;
|
||||||
|
error_log /var/log/angie/$SITE_NAME-error.log;
|
||||||
|
location / {
|
||||||
|
try_files \$uri \$uri/ /index.php\$is_args\$args;
|
||||||
|
}
|
||||||
|
location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
|
||||||
|
try_files \$uri =404;
|
||||||
|
}
|
||||||
|
location ~ ^/assets/.*\.php$ {
|
||||||
|
deny all;
|
||||||
|
}
|
||||||
|
location ~ \.php$ {
|
||||||
|
include fastcgi_params;
|
||||||
|
fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name;
|
||||||
|
fastcgi_pass 127.0.0.1:9000;
|
||||||
|
try_files \$uri =404;
|
||||||
|
}
|
||||||
|
location ~* /\. {
|
||||||
|
deny all;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
ln -sf "$ANGIE_SITECONF" "$ANGIE_ENABLED"
|
||||||
|
systemctl reload angie
|
||||||
|
}
|
||||||
|
|
||||||
|
# Установка MariaDB 10.11 (LTS)
|
||||||
|
install_mariadb() {
|
||||||
|
echo "[ * ] Установка MariaDB 10.11..."
|
||||||
|
# Официальный репозиторий MariaDB для Ubuntu 20.04
|
||||||
|
curl -fsSL https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | bash -s -- --mariadb-server-version="mariadb-10.11"
|
||||||
|
apt-get update
|
||||||
|
DEBIAN_FRONTEND=noninteractive apt-get -qq install -y mariadb-server mariadb-client libmariadb-dev
|
||||||
|
systemctl enable mariadb
|
||||||
|
systemctl start mariadb
|
||||||
|
# Задаём пароль root и настраиваем базу
|
||||||
|
mysql -u root << MARIADB_SCRIPT
|
||||||
|
ALTER USER 'root'@'localhost' IDENTIFIED BY '$MARIADB_ROOT_PASS';
|
||||||
|
CREATE DATABASE IF NOT EXISTS \`$MARIADB_DB\` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||||
|
CREATE USER IF NOT EXISTS '$MARIADB_USER'@'localhost' IDENTIFIED BY '$MARIADB_PASS';
|
||||||
|
GRANT ALL PRIVILEGES ON \`$MARIADB_DB\`.* TO '$MARIADB_USER'@'localhost';
|
||||||
|
FLUSH PRIVILEGES;
|
||||||
|
MARIADB_SCRIPT
|
||||||
|
echo "[ * ] MariaDB: база '$MARIADB_DB', пользователь '$MARIADB_USER' — созданы."
|
||||||
|
}
|
||||||
|
|
||||||
|
# Установка fail2ban
|
||||||
|
install_fail2ban() {
|
||||||
|
echo "[ * ] Установка fail2ban..."
|
||||||
|
apt-get -qq install -y fail2ban
|
||||||
|
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local 2>/dev/null || true
|
||||||
|
systemctl enable fail2ban
|
||||||
|
systemctl start fail2ban
|
||||||
|
}
|
||||||
|
|
||||||
|
# Установка PHP-FPM
|
||||||
|
install_php_fpm() {
|
||||||
|
echo "[ * ] Установка PHP-FPM $FPM_V..."
|
||||||
|
apt-get -qq install -y lsb-release ca-certificates software-properties-common
|
||||||
|
# ИЗМЕНЕНО: add-apt-repository корректно работает в Ubuntu 20.04
|
||||||
|
add-apt-repository -y ppa:ondrej/php
|
||||||
|
apt-get -qq update
|
||||||
|
apt-get -qq install -y php$FPM_V-fpm php$FPM_V-cli php$FPM_V-common php$FPM_V-xsl
|
||||||
|
apt-get -qq install -y php$FPM_V-memcached php$FPM_V-odbc
|
||||||
|
apt-get -qq install -y php$FPM_V-readline php$FPM_V-pdo php$FPM_V-smbclient
|
||||||
|
apt-get -qq install -y php$FPM_V-imap php$FPM_V-imagick php$FPM_V-igbinary php$FPM_V-exif php$FPM_V-mbstring php$FPM_V-mysql
|
||||||
|
apt-get -qq install -y php$FPM_V-curl php$FPM_V-zip php$FPM_V-gd php$FPM_V-opcache php$FPM_V-intl php$FPM_V-xml php$FPM_V-xmlrpc
|
||||||
|
apt-get -qq install -y php$FPM_V-ldap php$FPM_V-soap php$FPM_V-fileinfo composer
|
||||||
|
# ИЗМЕНЕНО: убран php$FPM_V-sockets и php$FPM_V-xmlreader (включены в php-common в 20.04)
|
||||||
|
|
||||||
|
# ИЗМЕНЕНО: исправлены ссылки на www.conf (убраны некорректные гиперссылки)
|
||||||
|
WWW_CONF="/etc/php/$FPM_V/fpm/pool.d/www.conf"
|
||||||
|
sed -i -e "s/user = www-data/user = $USERNAME/g" "$WWW_CONF"
|
||||||
|
sed -i -e "s/group = www-data/group = $USERNAME/g" "$WWW_CONF"
|
||||||
|
sed -i -e "s/listen.owner = www-data/listen.owner = $USERNAME/g" "$WWW_CONF"
|
||||||
|
sed -i -e "s|listen = /run/php/php${FPM_V}-fpm.sock|listen = 127.0.0.1:9000|g" "$WWW_CONF"
|
||||||
|
sed -i -e 's/pm = dynamic/pm = ondemand/g' "$WWW_CONF"
|
||||||
|
sed -i -e 's/pm.max_children = 5/pm.max_children = 8/g' "$WWW_CONF"
|
||||||
|
sed -i -e 's/pm.max_requests = 500/pm.max_requests = 4000/g' "$WWW_CONF"
|
||||||
|
sed -i -e 's/;pm.process_idle_timeout/pm.process_idle_timeout/g' "$WWW_CONF"
|
||||||
|
sed -i -e 's/;pm.status_path/pm.status_path/g' "$WWW_CONF"
|
||||||
|
sed -i -e 's/;env/env/g' "$WWW_CONF"
|
||||||
|
|
||||||
|
FPM_INI="/etc/php/$FPM_V/fpm/php.ini"
|
||||||
|
sed -i -e 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g' "$FPM_INI"
|
||||||
|
sed -i -e 's/;session.save_path = "\/tmp"/session.save_path = "\/tmp"/g' "$FPM_INI"
|
||||||
|
sed -i -e 's/short_open_tag = On/short_open_tag = Off/g' "$FPM_INI"
|
||||||
|
sed -i -e 's/post_max_size = 8M/post_max_size = 128M/g' "$FPM_INI"
|
||||||
|
sed -i -e 's/upload_max_filesize = 2M/upload_max_filesize = 128M/g' "$FPM_INI"
|
||||||
|
sed -i -e "s|;open_basedir =|open_basedir =/mnt/FOTOSVID:/home/$USERNAME/$SITE_NAME:/tmp:/bin:/usr/bin:/usr/local/bin:/usr/share:/opt|g" "$FPM_INI"
|
||||||
|
sed -i -e 's/disable_functions =/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,system,passthru,shell_exec,popen/g' "$FPM_INI"
|
||||||
|
|
||||||
|
CLI_INI="/etc/php/$FPM_V/cli/php.ini"
|
||||||
|
sed -i -e 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g' "$CLI_INI"
|
||||||
|
sed -i -e 's/;session.save_path = "\/tmp"/session.save_path = "\/tmp"/g' "$CLI_INI"
|
||||||
|
sed -i -e 's/short_open_tag = On/short_open_tag = Off/g' "$CLI_INI"
|
||||||
|
sed -i -e 's/post_max_size = 8M/post_max_size = 128M/g' "$CLI_INI"
|
||||||
|
sed -i -e 's/upload_max_filesize = 2M/upload_max_filesize = 128M/g' "$CLI_INI"
|
||||||
|
sed -i -e "s|;open_basedir =|open_basedir =/mnt/FOTOSVID:/home/$USERNAME/$SITE_NAME:/home/$USERNAME/.config:/home/$USERNAME/.cache:/home/$USERNAME/.local:/tmp:/bin:/usr/bin:/usr/local/bin:/usr/share:/opt|g" "$CLI_INI"
|
||||||
|
sed -i -e 's/disable_functions =/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,system,passthru,shell_exec,popen/g' "$CLI_INI"
|
||||||
|
|
||||||
|
systemctl enable php$FPM_V-fpm
|
||||||
|
systemctl start php$FPM_V-fpm
|
||||||
|
}
|
||||||
|
|
||||||
|
# Установка FreeTDS (для подключения к MS SQL)
|
||||||
|
install_freetds() {
|
||||||
|
echo "[ * ] Установка FreeTDS..."
|
||||||
|
apt-get -qq install -y freetds-dev freetds-bin freetds-common tdsodbc odbcinst
|
||||||
|
export TDS_FDW_VERSION="2.0.4"
|
||||||
|
wget https://github.com/tds-fdw/tds_fdw/archive/v${TDS_FDW_VERSION}.tar.gz
|
||||||
|
tar -xvzf v${TDS_FDW_VERSION}.tar.gz
|
||||||
|
cd tds_fdw-${TDS_FDW_VERSION}/
|
||||||
|
make USE_PGXS=1
|
||||||
|
make USE_PGXS=1 install
|
||||||
|
cd ..
|
||||||
|
systemctl restart mariadb
|
||||||
|
echo "[FreeTDS]
|
||||||
|
Description=FreeTDS driver
|
||||||
|
Driver=/usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
|
||||||
|
Setup=/usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
|
||||||
|
Threading=2" >> /etc/odbcinst.ini
|
||||||
|
odbcinst -i -d -f /etc/odbcinst.ini
|
||||||
|
}
|
||||||
|
|
||||||
|
# Основная логика установки
|
||||||
|
main() {
|
||||||
|
echo "[ * ] Начинаем установку компонентов..."
|
||||||
|
|
||||||
|
# Интерактивный опрос параметров
|
||||||
|
prompt_settings
|
||||||
|
apt-get -qq update
|
||||||
|
apt-get -qq dist-upgrade -y
|
||||||
|
|
||||||
|
# Установка базовых утилит
|
||||||
|
# ИЗМЕНЕНО: убран 'aptitude' (может отсутствовать), 'control sudowheel' — специфика AltLinux, удалено
|
||||||
|
apt-get -qq install -y memcached cifs-utils pwgen wget curl gnupg lsb-release git htop ca-certificates
|
||||||
|
apt-get -qq install -y apt-utils squashfs-tools tzdata fdisk gdisk mc net-tools locales iproute2 smbclient
|
||||||
|
# ИЗМЕНЕНО: default-jre → default-jre-headless (меньше зависимостей на сервере)
|
||||||
|
apt-get -qq install -y libreoffice-core --no-install-recommends libreoffice-writer default-jre-headless libreoffice-java-common
|
||||||
|
apt-get -qq install -y lsof gnupg2 apt-transport-https software-properties-common gnupg gcc make
|
||||||
|
|
||||||
|
systemctl enable memcached
|
||||||
|
systemctl start memcached
|
||||||
|
|
||||||
|
# ИЗМЕНЕНО: убрана строка "control sudowheel enabled" — это команда AltLinux, не Ubuntu
|
||||||
|
# Для управления sudo в Ubuntu используйте: usermod -aG sudo <user>
|
||||||
|
|
||||||
|
install_fail2ban
|
||||||
|
|
||||||
|
if confirm "Install user"; then
|
||||||
|
install_user
|
||||||
|
fi
|
||||||
|
|
||||||
|
if confirm "Install Angie"; then
|
||||||
|
install_angie
|
||||||
|
create_site
|
||||||
|
fi
|
||||||
|
|
||||||
|
if confirm "Install MariaDB"; then
|
||||||
|
install_mariadb
|
||||||
|
fi
|
||||||
|
|
||||||
|
if confirm "Install PHP"; then
|
||||||
|
install_php_fpm
|
||||||
|
fi
|
||||||
|
|
||||||
|
if confirm "Install FreeTDS"; then
|
||||||
|
install_freetds
|
||||||
|
fi
|
||||||
|
|
||||||
|
if confirm "Install FOTOSVID"; then
|
||||||
|
mkdir -p /mnt/FOTOSVID
|
||||||
|
cat > /etc/systemd/system/mnt-fotosvid.service << EOF
|
||||||
|
[Unit]
|
||||||
|
Description=Mount SMB share FOTOSVID
|
||||||
|
After=network.target
|
||||||
|
Wants=network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=oneshot
|
||||||
|
ExecStartPre=/bin/sleep 15
|
||||||
|
ExecStart=/bin/mount -t cifs //10.77.1.250/FOTOSVID /mnt/FOTOSVID -o username=fotosvid,password=$FOTOSVIDPASS,rw,file_mode=0666,dir_mode=0777
|
||||||
|
RemainAfterExit=yes
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
EOF
|
||||||
|
systemctl daemon-reload
|
||||||
|
systemctl enable mnt-fotosvid.service
|
||||||
|
systemctl start mnt-fotosvid.service
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "[ * ] Установка завершена!"
|
||||||
|
echo "Проверьте службы:"
|
||||||
|
echo " systemctl status angie"
|
||||||
|
echo " systemctl status mariadb"
|
||||||
|
echo " systemctl status php$FPM_V-fpm"
|
||||||
|
echo " systemctl status fail2ban"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Запуск
|
||||||
|
main
|
||||||
Reference in New Issue
Block a user