@MaksSmag

Почему после установки сертификата SSL выводится '"if" directive is not allowed here in /etc/nginx/sites-enabled/vst-install.sh:15'?

Следовал инструкции установки: создаём 2 файлика с ключами, с именем домена и расширением (.crt, .key). Отредактировал конфиг сайта nginx, выдаёт:
Failed to start a High perfomance web server and a reverse proxy server

Смотрю логи nginx, пишет, что в файле, которого я не трогал ни разу, ошибка:
"if" directive is not allowed here in /etc/nginx/sites-enabled/vst-install.sh:15

Где искать причину - в nginx конф. или в vst-instakk.sh? Скину оба файлика...
Конфиг сайта:
server {
	listen 443 ssl;
	ssl_certificate /etc/ssl/premsite.ru.crt;
	ssl_certificate_key /etc/ssl/premsite.ru.key;
	root /var/www/sites/projects/Business/public_html;
	set $php_sock unix:/var/run/php/php7.3-fpm.sock;
	index index.html index.htm index.php;

	server_name premsite.ru;

	location / {
		try_files $uri $uri/ =404;
	}
	location ~* ^.+\.(jpg|jpeg|gif|png|ico|tiff|css|js)$ {
		expires 6M;
		add_header Cache-Control public;
	}
	location ~ \.php$ {
        	include snippets/fastcgi-php.conf;
        	fastcgi_pass $php_sock;
        	fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

vst-install.sh:
#!/bin/bash
# Vesta installation wrapper
# http://vestacp.com

#
# Currently Supported Operating Systems:
#
#   RHEL 5, 6, 7
#   CentOS 5, 6, 7
#   Debian 7, 8
#   Ubuntu 12.04 - 18.04
#

# Am I root?
if [ "x$(id -u)" != 'x0' ]; then
    echo 'Error: this script can only be executed by root'
    exit 1
fi

# Check admin user account
if [ ! -z "$(grep ^admin: /etc/passwd)" ] && [ -z "$1" ]; then
    echo "Error: user admin exists"
    echo
    echo 'Please remove admin user before proceeding.'
    echo 'If you want to do it automatically run installer with -f option:'
    echo "Example: bash $0 --force"
    exit 1
fi

# Check admin group
if [ ! -z "$(grep ^admin: /etc/group)" ] && [ -z "$1" ]; then
    echo "Error: group admin exists"
    echo
    echo 'Please remove admin group before proceeding.'
    echo 'If you want to do it automatically run installer with -f option:'
    echo "Example: bash $0 --force"
    exit 1
fi

# Detect OS
case $(head -n1 /etc/issue | cut -f 1 -d ' ') in
    Debian)     type="debian" ;;
    Ubuntu)     type="ubuntu" ;;
    Amazon)     type="amazon" ;;
    *)          type="rhel" ;;
esac

# Check wget
if [ -e '/usr/bin/wget' ]; then
    wget http://vestacp.com/pub/vst-install-$type.sh -O vst-install-$type.sh
    if [ "$?" -eq '0' ]; then
        bash vst-install-$type.sh $*
        exit
    else
        echo "Error: vst-install-$type.sh download failed."
        exit 1
    fi
fi

# Check curl
if [ -e '/usr/bin/curl' ]; then
    curl -O http://vestacp.com/pub/vst-install-$type.sh
    if [ "$?" -eq '0' ]; then
        bash vst-install-$type.sh $*
        exit
    else
        echo "Error: vst-install-$type.sh download failed."
        exit 1
    fi
fi

exit

До SSL всё было хорошо.
  • Вопрос задан
  • 340 просмотров
Решения вопроса 1
smilingcheater
@smilingcheater
Зачем вы положили этот шелл-файл в папку конфига сайтов nginx?
Он его пробует подключить как конфиг-файл, соответственно ожидает, что синтаксис в нём как в конфиг-файле nginx, а не в шелл-файле
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы