Skip to content

Commit

Permalink
2.1.1
Browse files Browse the repository at this point in the history
* added tmp directory for php
* update process of updating RISH
  • Loading branch information
progreccor committed Sep 10, 2024
1 parent 234e303 commit 62a2e0c
Show file tree
Hide file tree
Showing 5 changed files with 114 additions and 51 deletions.
5 changes: 5 additions & 0 deletions create_site.sh
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,10 @@ function create_site() {
else
php_mode="dynamic"
fi
if [ ! -d "/var/www/${username}/tmp" ]; then
echo "Папка /var/www/${username}/tmp не существует, создаём..."
mkdir -p "/var/www/${username}/tmp"
fi
{
echo "[${username}]"
echo "listen = /var/opt/remi/${selected_php}/run/php-fpm/${username}.sock"
Expand All @@ -166,6 +170,7 @@ function create_site() {
echo "php_value[session.save_handler] = files"
echo "php_value[session.save_path] = /var/www/${username}/session"
echo "php_value[soap.wsdl_cache_dir] = /var/www/${username}/wsdlcache"
echo "php_value[upload_tmp_dir] = /var/www/${username}/tmp"
} >"/etc/opt/remi/${selected_php}/php-fpm.d/${username}.conf"

if [[ -f "/etc/opt/remi/${selected_php}/php-fpm.d/www.conf" ]]; then
Expand Down
54 changes: 4 additions & 50 deletions mc.menu
Original file line number Diff line number Diff line change
Expand Up @@ -690,53 +690,9 @@ O Обновление RISH
cd /root
clear
rm -f rish2.tar.gz > /dev/null
#Вспомогательное внутри сценария
LOG_FILE="/root/rish/logfile_rish_install.log"
# Путь к конфигурационному файлу
config_file="/root/rish/rish_config.sh"
# Проверка на существование файла лога
if [ ! -f "$LOG_FILE" ]; then
echo "Отсутствует лог файл установки RISH. Установка была выполнена неверно."
echo "Обновление невозможно."
exit 1
fi
# Функция для проверки, был ли шаг выполнен
check_step() {
local step=$1
grep -Fxq "$step" "$LOG_FILE"
}
# Функция для записи выполненного шага
mark_step_completed() {
local step=$1
echo "$step" >> "$LOG_FILE"
}
source $config_file
# Функция для сравнения версий (%%s нужен для макроподстановки mc.menu)
version_gt() {
test "$(printf '%%s\n' "$@" | sort -V | head -n 1)" != "$1"
}
Install() {
if ! rpm -q $@ >/dev/null 2>&1; then
echo -e "Ставим ${GREEN}$@${WHITE}"
if yum -y install $@; then
echo -e "${GREEN}$@${WHITE} установлен"
else
echo -e "Установить ${RED}$@${WHITE} не удалось, очищаем кэш и пытаемся снова"
# Очистка кэша yum и повторная попытка установки
yum clean all
yum makecache
if yum -y install $@; then
echo -e "${GREEN}$@${WHITE} установлен после очистки кэша"
else
echo -e "Установить ${RED}$@${WHITE} не удалось даже после очистки кэша"
exit 1
fi
fi
echo
else
echo -e "${GREEN}$@${WHITE} уже установлен"
fi
}
Update(){
# Извлекаем файл версии из архива
if tar -xzf "rish2.tar.gz" --strip-components=1 "rish/version"
Expand All @@ -751,6 +707,7 @@ O Обновление RISH
fi
archive_version=$(cat "/root/version")
rm -f "/root/version" > /dev/null
def=""
if version_gt "${archive_version}" "${folder_version}"; then
echo -e "Доступна более новая версия RISH для обновления – ${GREEN}${archive_version}${WHITE}"
echo "Рекомендуем обновиться до этой версии."
Expand All @@ -759,9 +716,10 @@ O Обновление RISH
echo "Ваша версия RISH актуальна - обновление не требуется."
echo "Но если нужно - вы можете переустановить RISH."
echo
def="default=1"
fi
echo -e "Установить версию ${GREEN}${archive_version}${WHITE}?"
if vertical_menu "current" 2 0 5 "Да" "Нет"
if vertical_menu "current" 2 0 5 "Да" "Нет" ${def}
then
#обновляем версию RISH
if tar -tzf rish2.tar.gz > /dev/null 2>&1
Expand All @@ -777,11 +735,7 @@ O Обновление RISH
chmod u+x ri.sh
chmod u+x clonesite.sh
chmod u+x backup.sh
STEP="Установка dnf-utils"
if ! check_step "$STEP"; then
Install dnf-utils
mark_step_completed "$STEP"
fi
bash postupdate.sh
else
echo "Скачанный архив поврежден"
vertical_menu "current" 2 0 5 "Нажмите Enter"
Expand Down
94 changes: 94 additions & 0 deletions postupdate.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
#!/usr/bin/env bash

version_gt() {
test "$(printf '%s\n' "$@" | sort -V | head -n 1)" != "$1"
}
#Вспомогательное внутри сценария
LOG_FILE="/root/rish/logfile_rish_install.log"
# Путь к конфигурационному файлу
config_file="/root/rish/rish_config.sh"
# Проверка на существование файла лога
if [ ! -f "$LOG_FILE" ]; then
echo "Отсутствует лог файл установки RISH. Установка была выполнена неверно."
echo "Обновление невозможно."
exit 1
fi
# Функция для проверки, был ли шаг выполнен
check_step() {
local step=$1
grep -Fxq "$step" "$LOG_FILE"
}
# Функция для записи выполненного шага
mark_step_completed() {
local step=$1
echo "$step" >>"$LOG_FILE"
}
source $config_file
# Функция для сравнения версий (%%s нужен для макроподстановки mc.menu)

Install() {
if ! rpm -q $@ >/dev/null 2>&1; then
echo -e "Ставим ${GREEN}$@${WHITE}"
if yum -y install $@; then
echo -e "${GREEN}$@${WHITE} установлен"
else
echo -e "Установить ${RED}$@${WHITE} не удалось, очищаем кэш и пытаемся снова"
# Очистка кэша yum и повторная попытка установки
yum clean all
yum makecache
if yum -y install $@; then
echo -e "${GREEN}$@${WHITE} установлен после очистки кэша"
else
echo -e "Установить ${RED}$@${WHITE} не удалось даже после очистки кэша"
exit 1
fi
fi
echo
else
echo -e "${GREEN}$@${WHITE} уже установлен"
fi
}

STEP="Установка dnf-utils"
if ! check_step "$STEP"; then
Install dnf-utils
mark_step_completed "$STEP"
fi

STEP="Добавление папки tmp всем пользователям"
if ! check_step "$STEP"; then
for dir in /var/www/*; do
# Проверяем, что это директория
if [ -d "$dir" ]; then
# Создаем папку tmp в каждой найденной директории
mkdir -p "$dir/tmp"
echo "Папка tmp создана в $dir"
fi
done
# Проходим по каждой версии PHP в /etc/opt/remi/
for php_version_dir in /etc/opt/remi/*; do
# Проверяем, что это директория
if [ -d "$php_version_dir" ]; then
# Ищем все конфиги php-fpm.d/ для каждого пользователя, кроме www.conf
for conf_file in "$php_version_dir/php-fpm.d"/*.conf; do
# Пропускаем файл www.conf
if [[ $(basename "$conf_file") == "www.conf" ]]; then
continue
fi

# Извлекаем имя пользователя из имени файла
username=$(basename "$conf_file" .conf)

# Проверяем, существует ли параметр php_value[upload_tmp_dir]
if ! grep -q "php_value\[upload_tmp_dir\]" "$conf_file"; then
# Если параметра нет, добавляем его в конец файла
echo "php_value[upload_tmp_dir] = /var/www/$username/tmp" >> "$conf_file"
echo "Добавлен параметр php_value[upload_tmp_dir] в $conf_file"
else
echo "Параметр php_value[upload_tmp_dir] уже существует в $conf_file"
fi
done
fi
done
mark_step_completed "$STEP"
fi
10 changes: 10 additions & 0 deletions ri.sh
Original file line number Diff line number Diff line change
Expand Up @@ -327,10 +327,12 @@ CreateUser() {
mkdir /var/www/${NAME}/session
mkdir /var/www/${NAME}/wsdlcache
mkdir /var/www/${NAME}/slowlog
mkdir /var/www/${NAME}/tmp

chown ${NAME}:${NAME} /var/www/${NAME}/session
chown ${NAME}:${NAME} /var/www/${NAME}/wsdlcache
chown ${NAME}:${NAME} /var/www/${NAME}/slowlog
chown ${NAME}:${NAME} /var/www/${NAME}/tmp

# Удаляем конфигурацию php по умолчанию (это файлы типа php74-php.conf)
find /etc/httpd/conf.d -type f -name 'php[0-9][0-9]-php.conf' -exec rm -f {} +
Expand Down Expand Up @@ -1055,6 +1057,14 @@ EOF
mark_step_completed "$STEP"
fi

STEP="Добавление папки tmp всем пользователям"
if ! check_step "$STEP"; then
#Это пустой шаг, чтобы добавить выполненный пункт в лог файл
#чтобы при обновлении скрипт обновления не пытался опять создавать папки tmp каждому пользователю
mark_step_completed "$STEP"
fi


process_ssh_config_file() {
local config_file=$1

Expand Down
2 changes: 1 addition & 1 deletion version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2.1.0
2.1.1

0 comments on commit 62a2e0c

Please sign in to comment.