разделы:

Не устанавливается PureFTPd в aaPanel на Debian 12

После установки aaPanel (FREE 6.8.32) на чистый Debian 12 и перехода во вкладку FTP в панели управления, столкнулся с сообщением о том, что PureFTPd не установлен. По инструкции, я нажал на предложенную ссылку для установки. В открывшемся окне «Message box» начался процесс подключения к серверу, загрузки пакетов и т.д. Однако, после некоторого времени установка PureFTPd не завершилась, и в «Message box» по-прежнему отображалось сообщение об установке.

При переходе во вкладку «Message list» в «Message box» обнаружил только запись о начале установки, но без явных признаков завершения. Дополнительно, при просмотре «Execution log», заметил, что подключение прошло успешно, необходимые файлы были скачаны, однако в процессе выполнения скрипта «public.sh» возникла неустранимая ошибка.

Определенная проблема была выявлена в строке #68 скрипта «public.sh». Поиск решения на официальном форуме не дал конкретного ответа, и проблемы, упомянутые другими пользователями, казались несвязанными. Однако аналогичная проблема возникла у другого пользователя, который просто добавлял новые сайты.Обобщив информацию с форума, было найдено решение, которое, в конечном итоге, позволило успешно установить PureFTPd.

Необходимо через вкладку в панели Files (или через терминал или ssh, как вам удобнее) перейти в директорию, где размещен искомый файл:

/www/server/panel/install/

Нас интересует конкретный файл: public.sh

То есть полный путь к файлу будет следующий:

/www/server/panel/install/public.sh

Открываем данный файл для редактирования и находим 68 строку.

Перед нами будет следующий блок:

GetCpuStat(){
time1=$(cat /proc/stat |grep 'cpu ')
sleep 1
time2=$(cat /proc/stat |grep 'cpu ')
cpuTime1=$(echo ${time1}|awk '{print $2+$3+$4+$5+$6+$7+$8}')
cpuTime2=$(echo ${time2}|awk '{print $2+$3+$4+$5+$6+$7+$8}')
runTime=$((${cpuTime2}-${cpuTime1}))
idelTime1=$(echo ${time1}|awk '{print $5}')
idelTime2=$(echo ${time2}|awk '{print $5}')
idelTime=$((${idelTime2}-${idelTime1}))
useTime=$(((${runTime}-${idelTime})*3))
[ ${useTime} -gt ${runTime} ] && cpuBusy="true"
if [ "${cpuBusy}" == "true" ]; then
cpuCore=$((${cpuInfo}/2))
else
cpuCore=$((${cpuInfo}-1))
fi
}

68 строка будет иметь такое содержимое:
runTime=$((${cpuTime2}-${cpuTime1}))

Необходимо закомментировать данную строку, добавив символ # в начале.
Должно получиться так:

#runTime=$((${cpuTime2}-${cpuTime1}))

Полный код данного куска теперь должен выглядеть так:

GetCpuStat(){
time1=$(cat /proc/stat |grep 'cpu ')
sleep 1
time2=$(cat /proc/stat |grep 'cpu ')
cpuTime1=$(echo ${time1}|awk '{print $2+$3+$4+$5+$6+$7+$8}')
cpuTime2=$(echo ${time2}|awk '{print $2+$3+$4+$5+$6+$7+$8}')
#runTime=$((${cpuTime2}-${cpuTime1}))
idelTime1=$(echo ${time1}|awk '{print $5}')
idelTime2=$(echo ${time2}|awk '{print $5}')
idelTime=$((${idelTime2}-${idelTime1}))
useTime=$(((${runTime}-${idelTime})*3))
[ ${useTime} -gt ${runTime} ] && cpuBusy="true"
if [ "${cpuBusy}" == "true" ]; then
cpuCore=$((${cpuInfo}/2))
else
cpuCore=$((${cpuInfo}-1))
fi
}

После внесения изменений, сохраняем файл и начинаем повторную установку PureFTPd, что в случае успеха, займет некоторое время.

В моем случае, этого оказалось достаточно. Установка была успешно выполнена, можно было начинать работать дальше.

Однако, в качестве еще одного решения, предлагалось так же закомментировать и строку 72, по аналогии со строкой 68. Возможна ситуация, когда для решения вашей проблемы, необходимо это сделать. Без особой нужны, не советую этого делать.

useTime=$(((${runTime}-${idelTime})*3))

Тогда кусок блока будет выглядеть так:

GetCpuStat(){
time1=$(cat /proc/stat |grep 'cpu ')
sleep 1
time2=$(cat /proc/stat |grep 'cpu ')
cpuTime1=$(echo ${time1}|awk '{print $2+$3+$4+$5+$6+$7+$8}')
cpuTime2=$(echo ${time2}|awk '{print $2+$3+$4+$5+$6+$7+$8}')
#runTime=$((${cpuTime2}-${cpuTime1}))
idelTime1=$(echo ${time1}|awk '{print $5}')
idelTime2=$(echo ${time2}|awk '{print $5}')
idelTime=$((${idelTime2}-${idelTime1}))
#useTime=$(((${runTime}-${idelTime})*3))
[ ${useTime} -gt ${runTime} ] && cpuBusy="true"
if [ "${cpuBusy}" == "true" ]; then
cpuCore=$((${cpuInfo}/2))
else
cpuCore=$((${cpuInfo}-1))
fi
}