Установка: различия между версиями

Материал из WiKi - UserSide
(не показано 39 промежуточных версий 2 участников)
Строка 3: Строка 3:
== Подготовительные работы ==
== Подготовительные работы ==


* рекомендуется выполнять установку на FreeBSD/Linux-системы. Установка на Windows также возможна, но практика показала, что на *nix-системах производительность программы гораздо выше при тех же технических характеристиках сервера.
* рекомендуется выполнять установку на любые Unix-системы. Рекомендуем использовать дистрибутивы Linux попроще и понадежнее, вроде Debian, CentOS или Ubuntu Server (FreeBSD тоже подойдет, если вы знаете, с чем имеете дело). Установка на Windows также возможна, но практика показала, что на *nix-системах производительность программы гораздо выше при тех же технических характеристиках сервера. Далее рассматривается пример установки на Linux Debian 9 Stretch с web-сервером nginx


* убедитесь, что ваша система соответствует необходимым [[Технические требования|техническим требованиям]]
* убедитесь, что ваша система соответствует необходимым [[Технические требования|техническим требованиям]]


* настроить веб-сервер и добавить в него доменное имя/проект для UserSide
* установите postgresql, postgis, php, все необходимые расширения и веб-сервер. Для версии USERSIDE 3.13 мы рекомендуем использовать php7.2, для 3.11 - php7.1. Также рекомендуем использовать web-сервер nginx. Пример для Debian 9 (Stretch):


* опционально настроить виртуальный хост следующим образом ''(пример для Apache24 Debian/Ubuntu)''
sudo apt update
sudo apt install -y apt-transport-https lsb-release ca-certificates
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -sc)-pgdg main" | sudo tee -a /etc/apt/sources.list.d/pgdg.list
wget --quiet -O - http://nginx.org/keys/nginx_signing.key | sudo apt-key add -
echo "deb http://nginx.org/packages/mainline/debian/ $(lsb_release -sc) nginx" | sudo tee -a /etc/apt/sources.list.d/nginx.list
echo "deb-src http://nginx.org/packages/mainline/debian/ $(lsb_release -sc) nginx" | sudo tee -a /etc/apt/sources.list.d/nginx.list
sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee -a /etc/apt/sources.list.d/php.list
sudo apt update
sudo apt remove -y nginx-common apache2
sudo apt autoremove -y
sudo apt install -y snmp-mibs-downloader postgresql-11 postgresql-11-postgis-2.5 nginx
sudo apt install -y php7.2-fpm php7.2-cli php7.2-common php7.2-curl php7.2-intl php7.2-json php7.2-mbstring php7.2-opcache php7.2-pgsql php7.2-readline php7.2-xml php7.2-zip php7.2-snmp php7.2-gd php7.2-soap
sudo download-mibs
 
* выполните настройку PHP: укажите свой часовой пояс, желаемый объем POST-данных (если 50 Мб мало - укажите ваше предпочитаемое значение) и максимальное время выполнения (если в будущем будет мало, сможете изменить); и базовую настройку nginx, выполнив следующие команды:


  Исходные данные следующие:
  sudo sed -i "s@^;*date.timezone.*@date.timezone = Europe/Zaporozhye@" "/etc/php/7.2/fpm/php.ini"
  а) файлы и каталоги приложения USERSIDE расположены в каталоге /var/www/userside/
  sudo sed -i "s@^;*date.timezone.*@date.timezone = Europe/Zaporozhye@" "/etc/php/7.2/cli/php.ini"
  б) адрес сайта виртуального хоста userside.mydomain.com
  sudo sed -i "s@;cgi.fix_pathinfo=1@cgi.fix_pathinfo=0@" "/etc/php/7.2/fpm/php.ini"
   
  sudo sed -i "s@post_max_size = 8M@post_max_size = 50M@" "/etc/php/7.2/fpm/php.ini"
  <VirtualHost *:80>
  sudo sed -i "s@upload_max_filesize = 2M@upload_max_filesize = 50M@" "/etc/php/7.2/fpm/php.ini"
    ServerAdmin webmaster@yourdomain.name
sudo sed -i "s@^user.*;@user www-data www-data;@" "/etc/nginx/nginx.conf"
    DocumentRoot "/var/www/userside/userside3"
sudo sed -i "s@max_execution_time.*@max_execution_time = 120@" "/etc/php/7.2/fpm/php.ini"
    ServerName userside.mydomain.com
sudo sed -i "s@max_input_time.*@max_input_time = 120@" "/etc/php/7.2/fpm/php.ini"
    ErrorLog "/var/log/apache2/userside-main-error.log"
sudo sed -i 's@;*request_terminate_timeout.*@request_terminate_timeout = 120@' /etc/php/7.2/fpm/pool.d/www.conf
    CustomLog "/var/log/apache2/userside-main-access.log" common
 
    <Directory "/var/www/userside/userside3">
* создайте каталог, который будет является корнем web-сервера (root). При этом обратите внимание на то, что корнем самого приложения будет каталог '''/var/www/userside'''.
        Options -Indexes
 
        AllowOverride All
  sudo mkdir -p /var/www/userside/userside3
        Require all granted
 
    </Directory>
* создайте сайт для nginx (или отредактируйте имеющийся сайт по умолчанию). Для этого создайте файл /etc/nginx/conf.d/userside.conf и поместите в него текст:
</VirtualHost>


* в MySQL-сервере переменную ''max_allowed_packet'' нужно увеличить до "10M" ''(файл my.cnf/my.ini)''
server {
    listen              80;
    server_name          userside.mycompany.com;  # ИЗМЕНИТЕ ЭТО ИМЯ
    charset              utf-8;
    client_max_body_size 50M;
    access_log  /var/log/nginx/userside-access.log;
    error_log  /var/log/nginx/userside-error.log;
    root  /var/www/userside/userside3;
    index  index.php;
    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }
    location / {
        try_files $uri $uri/ =404;
    }
    location ~* ^.+\.(css|js|ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ {
        access_log    off;
        log_not_found off;
        expires      max;
        add_header    Pragma public;
        add_header    Cache-Control "public";
    }
    location ~ \.php$ {
        try_files    $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass  unix:/run/php/php7.2-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_read_timeout 600;
        include      fastcgi_params;
    }
    location ~ /\.ht { deny  all; }
    error_page 404 /404.php?type=404;
    error_page 403 /404.php?type=403;
    error_page 500 /404.php?type=500;
    location = /404.php {
        root /var/www/userside/userside3/main/error/;
        internal;
    }
}


* создать базу данных на сервере MySQL с названием '''userside''' и кодировкой '''utf8'''
* выполните [[Установка PostgreSQL|установку и/или настройку PostgreSQL и расширения Postgis]]


* выполнить [[Установка PostgreSQL|установку и/или настройку PostgreSQL]]
* выполните [[Установка Redis|установку и/или настройку Redis]]


* установить PostGIS ''(apt-get install postgis)'' (http://postgis.net/install/)
* перезапустите стек


* выделить отдельный каталог ''(напр. /var/www/userside/)''
sudo systemctl restart postgresql.service
sudo systemctl restart nginx.service
sudo systemctl restart php7.2-fpm.service


== Инсталлятор ==
== Инсталлятор ==
Строка 42: Строка 97:
См. также: [[Инсталлятор]]
См. также: [[Инсталлятор]]


[[Файл:20170702_4.PNG|thumb|800px|center]]
[[Файл:Interactive-Install.png|center]]


1) перейти в каталог системы ''(/var/www/userside)''
1) перейти в каталог системы ''(/var/www/userside)''
Строка 48: Строка 103:
2) запустить команду  
2) запустить команду  


  php -r "copy('http://my.userside.eu/install', 'userside_install.phar');"  
  php -r "copy('https://my.userside.eu/install', 'userside_install.phar');"  


ЛИБО
ЛИБО


скачать инсталлятор с личного кабинета http://my.userside.eu и положить его в каталог системы
скачать инсталлятор с личного кабинета https://my.userside.eu и положить его в каталог системы
   
   
3) запускаем инсталлятор
3) запустить инсталлятор от имени пользователя, под которым работает web-сервер (www-data, но может быть и другим)


  php userside_install.phar
  sudo -u www-data php userside_install.phar install


В процессе работы он проверяет соответствие техническим требованиям и задаёт сопутствующие установке вопросы
В процессе работы он проверяет соответствие техническим требованиям и задаёт сопутствующие установке вопросы


[[Файл:20170702_2.png|thumb|800px|center]]
По окончанию работы инсталлятора будет выведено сообщение об успешной установке.


По окончанию работы инсталлятора будет выведено сообщение об успешной установке.
Если вы произвели установку не от имени пользователя веб-сервера, то обязательно после окончания установки сделайте его владельцем всех файлов userside рекурсивно!


== Настройка системы ==
== Настройка системы ==


* открыть страницу системы '''<nowiki>http://userside.mydomain.com/oper/</nowiki>''' и убедиться в работоспособности системы ''(имя пользователя: Admin, пароль: 1234)''
* открыть страницу системы '''<nowiki>http://userside.mydomain.com/oper/</nowiki>''' и убедиться в работоспособности системы ''(имя пользователя: Admin, пароль: 1234)''
* на уровне файла .htaccess запретить просмотр листинга каталогов


* доступ к файлу [[API]] "'''/userside/userside3/api.php'''" рекомендуется ограничить на уровне веб-сервера для доступа лишь с разрешённых IP-адресов
* доступ к файлу [[API]] "'''/userside/userside3/api.php'''" рекомендуется ограничить на уровне веб-сервера для доступа лишь с разрешённых IP-адресов
Строка 74: Строка 127:
* прописать планировщик UserSide в cron.
* прописать планировщик UserSide в cron.


cat << EOF > /etc/cron.d/userside
  * * * * *  www-data  php /var/www/userside/userside cron > /dev/null 2>&1
  * * * * *  www-data  php /var/www/userside/userside cron > /dev/null 2>&1
EOF


* настроить взаимодействие с [[Поддерживаемые биллинги|биллингом]] в соответствии с [[Настройка взаимодействия с биллингом|инструкциями]]
* настроить взаимодействие с [[Поддерживаемые биллинги|биллингом]] в соответствии с [[Настройка взаимодействия с биллингом|инструкциями]]
Строка 80: Строка 135:
* в разделе "[[Настройка - Основная|Настройка - Основная]]" изучите основные разделы, параметры и настройте систему под себя.
* в разделе "[[Настройка - Основная|Настройка - Основная]]" изучите основные разделы, параметры и настройте систему под себя.


'''Крайне рекомендуется после установки системы установить периодическое ''(лучше - ежедневное)'' создание резервной копии штатными средствами MySQL и PostgeSQL и её хранение НА ДРУГОМ КОМПЬЮТЕРЕ.
== Резервное копирование, восстановление, клонирование ==
Например:'''
 
  mysqldump -uroot -pPASS userside > /var/www/userside.sql
'''Крайне рекомендуется после установки системы установить периодическое ''(лучше - ежедневное)'' создание резервной копии штатными средствами PostgeSQL и её хранение НА ДРУГОМ узле.
  pg_dump userside > /var/www/userside_pg.sql
Например:'''
  sudo -u postgres pg_dump --no-acl --no-owner -Fc userside > /backup/userside.dump
 
Восстановить сделанную таким образом резервную копию можно различными способами. Обратите внимание, что дампы могут быть несовместимы между разными минорными версиями PostgreSQL. По крайней мере разработчики PostgreSQL предостерегают от использования таких дампов. Выполняйте развертывание дампа на сервер с той же минорной версией (например, 11.4), как и у сервера, на котором был получен дамп.
 
Перед восстановлением базы данных необходимо обязательно очистить кеш Redis ''(только для версии 3.13 и новее)''
php userside cache/flush-all
 
Если необходимо восстановить базу данных из резервной копии '''поверх существующей базы данных''' (все объекты базы данных будут заменены новыми), выполните:
  sudo -u postgres pg_restore --clean --if-exists --dbname=userside /backup/userside.dump
В этом случае явно указывается база данных, в которую необходимо восстановить содержимое базы данных.
 
Если после восстановления базы данных отсутствуют права на таблицы из схемы public (такое может быть на некоторых отдельных версиях postgresql), назначьте привилегии для схемы public вручную:
GRANT ALL ON SCHEMA public TO postgres;
GRANT ALL ON SCHEMA public TO PUBLIC;
 
Если необходимо восстановить базу данных из резервной копии '''с автоматическим созданием базы данных''', выполните (обратите внимание, имя базы данных в данном случае указывается postgres):
sudo -u postgres pg_restore --clean --if-exists --create --dbname=postgres /backup/userside.dump
База данных будет создана автоматически (вся необходимая информация для этого находится в резервной копии). Если база данных уже существует - она будет сначала удалена, а затем создана автоматически.
 
Если вам необходимо скопировать существующую базу данных для тестирования новых версий или других целей, то используйте для этого команду создания базы данных:
sudo -u postgres createdb -e --encoding="UTF-8" --locale="ru_RU.UTF-8" --owner=userside --template=userside userside_new
В этом случае просто создается новая база данных, в качестве шаблона которой используется существующая база данных. Используйте именно такой способ, если нужно сделать копию базы данных.


Если вы планируете восстановить базу данных из резервной копии таким образом, чтобы у новой базы данных был другой владелец (userside_new_user), то вам нужно будет сделать следующее:
sudo -u postgres createuser userside_new_user -P
sudo -u postgres createdb -e -E "UTF-8" -l "ru_RU.UTF-8" -O userside_new_user -T template0 userside_new_db
sudo -u postgres psql -d userside_new_db -c "CREATE EXTENSION postgis"
sudo -u postgres pg_restore --no-owner --role=userside_new_user --dbname=userside_new_db /backup/userside.dump
Во время выполнения последней команды вы получите сообщения об ошибках перезаписи объектов postgis внутри базы данных (порядка 5 сообщений), так как при восстановлении была явно указана новая роль, которая не может быть применена к системным объектам postigs. Внимательно просмотрите сообщения об ошибках, чтобы они не относились к каким либо другим объектам базы данных.


'''Рекомендуется ознакомиться с инструкциями на странице: [[С чего начать?]]'''
'''Рекомендуется ознакомиться с инструкциями на странице: [[С чего начать?]]'''


== Дополнительные данные ==
Отдельно стоит отметить резервное копирование прикрепленных файлов в системе. С течением времени объем прикреплённых файлов будет расти и достигать больших величин. Поэтому резервное копирование будет долгим и избыточным, хотя и необходимым. Обдумайте как настроить периодический бэкап файлов из директории /userside/ ''(возможно следует настроить бэкап только обновлённых файлов)''


* мы постоянно усовершенствуем систему и выпускаем [[Обновление|обновления]]. Они представляют собой архив с обновленными файлами и инструкцией по обновлению. Следите за новостями системы UserSide, скачивайте в [[Файловый архив|файловом архиве]] обновления и следуйте прилагаемой инструкции.
== Частозадаваемые вопросы (FAQ) ==


* после выпуска обновлений мы иногда можем выкладывать в файловом архиве "[[HotFix|хотфиксы]]" с текущим исправлением ошибок и небольшими усовершенствованиями. Они представляют собой архив с файлами, которые нужно перенести к себе в рабочую систему (заменяя существующие файлы). Рекомендуем периодически заходить в файловый архив и проверять наличие «хотфиксов».
'''Ошибка 404 при проверке URL.''' Вероятней всего неверно настроен WEB-сервер. root (DocumentRoot) WEB-сервера должен указывать на каталог /var/www/userside/'''userside3'''

Версия от 19:26, 27 августа 2019

ВНИМАНИЕ: Данная инструкция актуальна для версий ERP "UserSide" 3.11 и выше. Для версии ниже 3.11 - используйте отдельную инструкцию по установке.

Подготовительные работы

  • рекомендуется выполнять установку на любые Unix-системы. Рекомендуем использовать дистрибутивы Linux попроще и понадежнее, вроде Debian, CentOS или Ubuntu Server (FreeBSD тоже подойдет, если вы знаете, с чем имеете дело). Установка на Windows также возможна, но практика показала, что на *nix-системах производительность программы гораздо выше при тех же технических характеристиках сервера. Далее рассматривается пример установки на Linux Debian 9 Stretch с web-сервером nginx
  • установите postgresql, postgis, php, все необходимые расширения и веб-сервер. Для версии USERSIDE 3.13 мы рекомендуем использовать php7.2, для 3.11 - php7.1. Также рекомендуем использовать web-сервер nginx. Пример для Debian 9 (Stretch):
sudo apt update
sudo apt install -y apt-transport-https lsb-release ca-certificates
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -sc)-pgdg main" | sudo tee -a /etc/apt/sources.list.d/pgdg.list
wget --quiet -O - http://nginx.org/keys/nginx_signing.key | sudo apt-key add -
echo "deb http://nginx.org/packages/mainline/debian/ $(lsb_release -sc) nginx" | sudo tee -a /etc/apt/sources.list.d/nginx.list
echo "deb-src http://nginx.org/packages/mainline/debian/ $(lsb_release -sc) nginx" | sudo tee -a /etc/apt/sources.list.d/nginx.list
sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee -a /etc/apt/sources.list.d/php.list
sudo apt update
sudo apt remove -y nginx-common apache2
sudo apt autoremove -y
sudo apt install -y snmp-mibs-downloader postgresql-11 postgresql-11-postgis-2.5 nginx
sudo apt install -y php7.2-fpm php7.2-cli php7.2-common php7.2-curl php7.2-intl php7.2-json php7.2-mbstring php7.2-opcache php7.2-pgsql php7.2-readline php7.2-xml php7.2-zip php7.2-snmp php7.2-gd php7.2-soap
sudo download-mibs
 
  • выполните настройку PHP: укажите свой часовой пояс, желаемый объем POST-данных (если 50 Мб мало - укажите ваше предпочитаемое значение) и максимальное время выполнения (если в будущем будет мало, сможете изменить); и базовую настройку nginx, выполнив следующие команды:
sudo sed -i "s@^;*date.timezone.*@date.timezone = Europe/Zaporozhye@" "/etc/php/7.2/fpm/php.ini"
sudo sed -i "s@^;*date.timezone.*@date.timezone = Europe/Zaporozhye@" "/etc/php/7.2/cli/php.ini"
sudo sed -i "s@;cgi.fix_pathinfo=1@cgi.fix_pathinfo=0@" "/etc/php/7.2/fpm/php.ini"
sudo sed -i "s@post_max_size = 8M@post_max_size = 50M@" "/etc/php/7.2/fpm/php.ini"
sudo sed -i "s@upload_max_filesize = 2M@upload_max_filesize = 50M@" "/etc/php/7.2/fpm/php.ini"
sudo sed -i "s@^user.*;@user www-data www-data;@" "/etc/nginx/nginx.conf"
sudo sed -i "s@max_execution_time.*@max_execution_time = 120@" "/etc/php/7.2/fpm/php.ini"
sudo sed -i "s@max_input_time.*@max_input_time = 120@" "/etc/php/7.2/fpm/php.ini"
sudo sed -i 's@;*request_terminate_timeout.*@request_terminate_timeout = 120@' /etc/php/7.2/fpm/pool.d/www.conf
  • создайте каталог, который будет является корнем web-сервера (root). При этом обратите внимание на то, что корнем самого приложения будет каталог /var/www/userside.
 sudo mkdir -p /var/www/userside/userside3
  • создайте сайт для nginx (или отредактируйте имеющийся сайт по умолчанию). Для этого создайте файл /etc/nginx/conf.d/userside.conf и поместите в него текст:
server {
    listen               80;
    server_name          userside.mycompany.com;  # ИЗМЕНИТЕ ЭТО ИМЯ
    charset              utf-8;
    client_max_body_size 50M;
    access_log  /var/log/nginx/userside-access.log;
    error_log   /var/log/nginx/userside-error.log;
    root   /var/www/userside/userside3;
    index  index.php;
    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }
    location / {
        try_files $uri $uri/ =404;
    }
    location ~* ^.+\.(css|js|ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ {
        access_log    off;
        log_not_found off;
        expires       max;
        add_header    Pragma public;
        add_header    Cache-Control "public";
    }
    location ~ \.php$ {
        try_files     $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass  unix:/run/php/php7.2-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_read_timeout 600;
        include       fastcgi_params;
    }
    location ~ /\.ht { deny  all; }
    error_page 404 /404.php?type=404;
    error_page 403 /404.php?type=403;
    error_page 500 /404.php?type=500;
    location = /404.php {
        root /var/www/userside/userside3/main/error/;
        internal;
    }
}
  • перезапустите стек
sudo systemctl restart postgresql.service
sudo systemctl restart nginx.service
sudo systemctl restart php7.2-fpm.service

Инсталлятор

См. также: Инсталлятор

1) перейти в каталог системы (/var/www/userside)

2) запустить команду

php -r "copy('https://my.userside.eu/install', 'userside_install.phar');" 

ЛИБО

скачать инсталлятор с личного кабинета https://my.userside.eu и положить его в каталог системы

3) запустить инсталлятор от имени пользователя, под которым работает web-сервер (www-data, но может быть и другим)

sudo -u www-data php userside_install.phar install

В процессе работы он проверяет соответствие техническим требованиям и задаёт сопутствующие установке вопросы

По окончанию работы инсталлятора будет выведено сообщение об успешной установке.

Если вы произвели установку не от имени пользователя веб-сервера, то обязательно после окончания установки сделайте его владельцем всех файлов userside рекурсивно!

Настройка системы

  • открыть страницу системы http://userside.mydomain.com/oper/ и убедиться в работоспособности системы (имя пользователя: Admin, пароль: 1234)
  • доступ к файлу API "/userside/userside3/api.php" рекомендуется ограничить на уровне веб-сервера для доступа лишь с разрешённых IP-адресов
  • прописать планировщик UserSide в cron.
cat << EOF > /etc/cron.d/userside
* * * * *   www-data   php /var/www/userside/userside cron > /dev/null 2>&1
EOF

Резервное копирование, восстановление, клонирование

Крайне рекомендуется после установки системы установить периодическое (лучше - ежедневное) создание резервной копии штатными средствами PostgeSQL и её хранение НА ДРУГОМ узле. Например:

sudo -u postgres pg_dump --no-acl --no-owner -Fc userside > /backup/userside.dump

Восстановить сделанную таким образом резервную копию можно различными способами. Обратите внимание, что дампы могут быть несовместимы между разными минорными версиями PostgreSQL. По крайней мере разработчики PostgreSQL предостерегают от использования таких дампов. Выполняйте развертывание дампа на сервер с той же минорной версией (например, 11.4), как и у сервера, на котором был получен дамп.

Перед восстановлением базы данных необходимо обязательно очистить кеш Redis (только для версии 3.13 и новее)

php userside cache/flush-all

Если необходимо восстановить базу данных из резервной копии поверх существующей базы данных (все объекты базы данных будут заменены новыми), выполните:

sudo -u postgres pg_restore --clean --if-exists --dbname=userside /backup/userside.dump

В этом случае явно указывается база данных, в которую необходимо восстановить содержимое базы данных.

Если после восстановления базы данных отсутствуют права на таблицы из схемы public (такое может быть на некоторых отдельных версиях postgresql), назначьте привилегии для схемы public вручную:

GRANT ALL ON SCHEMA public TO postgres;
GRANT ALL ON SCHEMA public TO PUBLIC;

Если необходимо восстановить базу данных из резервной копии с автоматическим созданием базы данных, выполните (обратите внимание, имя базы данных в данном случае указывается postgres):

sudo -u postgres pg_restore --clean --if-exists --create --dbname=postgres /backup/userside.dump

База данных будет создана автоматически (вся необходимая информация для этого находится в резервной копии). Если база данных уже существует - она будет сначала удалена, а затем создана автоматически.

Если вам необходимо скопировать существующую базу данных для тестирования новых версий или других целей, то используйте для этого команду создания базы данных:

sudo -u postgres createdb -e --encoding="UTF-8" --locale="ru_RU.UTF-8" --owner=userside --template=userside userside_new

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

Если вы планируете восстановить базу данных из резервной копии таким образом, чтобы у новой базы данных был другой владелец (userside_new_user), то вам нужно будет сделать следующее:

sudo -u postgres createuser userside_new_user -P
sudo -u postgres createdb -e -E "UTF-8" -l "ru_RU.UTF-8" -O userside_new_user -T template0 userside_new_db
sudo -u postgres psql -d userside_new_db -c "CREATE EXTENSION postgis"
sudo -u postgres pg_restore --no-owner --role=userside_new_user --dbname=userside_new_db /backup/userside.dump

Во время выполнения последней команды вы получите сообщения об ошибках перезаписи объектов postgis внутри базы данных (порядка 5 сообщений), так как при восстановлении была явно указана новая роль, которая не может быть применена к системным объектам postigs. Внимательно просмотрите сообщения об ошибках, чтобы они не относились к каким либо другим объектам базы данных.

Рекомендуется ознакомиться с инструкциями на странице: С чего начать?

Отдельно стоит отметить резервное копирование прикрепленных файлов в системе. С течением времени объем прикреплённых файлов будет расти и достигать больших величин. Поэтому резервное копирование будет долгим и избыточным, хотя и необходимым. Обдумайте как настроить периодический бэкап файлов из директории /userside/ (возможно следует настроить бэкап только обновлённых файлов)

Частозадаваемые вопросы (FAQ)

Ошибка 404 при проверке URL. Вероятней всего неверно настроен WEB-сервер. root (DocumentRoot) WEB-сервера должен указывать на каталог /var/www/userside/userside3