Поиск по сайту:

Как установить программное обеспечение для управления бизнесом Flectra с Nginx на CentOS 8


На этой странице

  1. Предпосылки
  2. Начало работы
  3. Установка зависимостей Python
  4. Установите PostgreSQL
  5. Установить Флектру
  6. Настройка Flectra
  7. Создание служебного файла Systemd для Flectra
  8. Настройка Nginx для Flectra
  9. Доступ к веб-интерфейсу Flectra
  10. Заключение

Flectra — это программное обеспечение для управления бизнесом нового поколения с открытым исходным кодом, которое объединяет системы CRM и ERP в один пакет. Его цель — дать пользователям возможность изменять систему в соответствии с потребностями своего бизнеса и легко добавлять дополнительные инструменты для масштабирования своего бизнеса. Проще говоря, Flectra предоставляет вам комплексную платформу, которую вы можете легко изменять или настраивать в соответствии с вашими требованиями. Flectra предоставляет множество функций, таких как бухгалтерский учет, электронная коммерция, управление запасами, маркетинг, управление проектами, CRM, отчетность, управление отпусками и многие другие.

В этом руководстве мы покажем вам, как установить Flectra с Nginx на CentOS 8.

Предпосылки

  • Сервер под управлением CentOS 8 с оперативной памятью не менее 4 ГБ.
  • На вашем сервере настроен пароль root.

Начиная

Во-первых, вам нужно будет обновить системные пакеты до последней версии. Вы можете сделать это с помощью следующей команды:

dnf update -y

После обновления всех пакетов рекомендуется отключить SELinux в вашей системе. Вы можете отключить его, отредактировав файл /etc/selinux/config:

nano /etc/selinux/config

Измените следующую строку:

SELINUX=disabled

Сохраните и закройте файл, затем перезапустите сервер, чтобы изменения вступили в силу.

Установите зависимости Python

Далее вам нужно будет установить Python и другие зависимости Flectra в вашей системе. Вы можете установить их все, выполнив следующую команду:

dnf install python36 python36-devel git gcc wget nodejs libxslt-devel bzip2-devel openldap-devel libjpeg-devel freetype-devel -y

После установки всех пакетов выполните следующую команду, чтобы установить модуль Node.js:

npm install -g less

Далее вам также потребуется установить пакет wkhtmltopdf в вашей системе. Вы можете загрузить его с официальной страницы загрузки:

После загрузки установите загруженный файл с помощью следующей команды:

dnf localinstall wkhtmltox-0.12.6-1.centos8.x86_64.rpm

Как только вы закончите, вы можете перейти к следующему шагу.

Установить PostgreSQL

Flectra использует PostgreSQL в качестве базы данных. Поэтому вам нужно будет установить его на свой сервер. Вы можете установить его с помощью следующей команды:

dnf install postgresql-server -y

После установки сервера PostgreSQL инициализируйте базу данных с помощью следующей команды:

postgresql-setup --initdb --unit postgresql

Вы должны получить следующий результат:

 * Initializing database in '/var/lib/pgsql/data'
 * Initialized, logs are in /var/lib/pgsql/initdb_postgresql.log

Затем запустите службу PostgreSQL и включите ее запуск при перезагрузке системы с помощью следующей команды:

systemctl start postgresql
systemctl enable postgresql

Затем проверьте состояние службы PostgreSQL с помощью следующей команды:

systemctl status postgresql-12

Вы должны получить следующий результат:

? postgresql-12.service - PostgreSQL 12 database server
   Loaded: loaded (/usr/lib/systemd/system/postgresql-12.service; disabled; vendor preset: disabled)
   Active: active (running) since Thu 2020-08-13 04:39:31 EDT; 7s ago
     Docs: https://www.postgresql.org/docs/12/static/
  Process: 1176 ExecStartPre=/usr/pgsql-12/bin/postgresql-12-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS)
 Main PID: 1182 (postmaster)
    Tasks: 8 (limit: 12537)
   Memory: 17.3M
   CGroup: /system.slice/postgresql-12.service
           ??1182 /usr/pgsql-12/bin/postmaster -D /var/lib/pgsql/12/data/
           ??1183 postgres: logger   
           ??1185 postgres: checkpointer   
           ??1186 postgres: background writer   
           ??1187 postgres: walwriter   
           ??1188 postgres: autovacuum launcher   
           ??1189 postgres: stats collector   
           ??1190 postgres: logical replication launcher   

Aug 13 04:39:31 centos8 systemd[1]: Starting PostgreSQL 12 database server...
Aug 13 04:39:31 centos8 postmaster[1182]: 2020-08-13 04:39:31.136 EDT [1182] LOG:  starting PostgreSQL 12.3 on x86_64-pc-linux-gnu, compiled b>
Aug 13 04:39:31 centos8 postmaster[1182]: 2020-08-13 04:39:31.137 EDT [1182] LOG:  listening on IPv6 address "::1", port 5432
Aug 13 04:39:31 centos8 postmaster[1182]: 2020-08-13 04:39:31.137 EDT [1182] LOG:  listening on IPv4 address "127.0.0.1", port 5432
Aug 13 04:39:31 centos8 postmaster[1182]: 2020-08-13 04:39:31.139 EDT [1182] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
Aug 13 04:39:31 centos8 postmaster[1182]: 2020-08-13 04:39:31.142 EDT [1182] LOG:  listening on Unix socket "/tmp/.s.PGSQL.5432"
Aug 13 04:39:31 centos8 postmaster[1182]: 2020-08-13 04:39:31.161 EDT [1182] LOG:  redirecting log output to logging collector process
Aug 13 04:39:31 centos8 postmaster[1182]: 2020-08-13 04:39:31.161 EDT [1182] HINT:  Future log output will appear in directory "log".
Aug 13 04:39:31 centos8 systemd[1]: Started PostgreSQL 12 database server.

Далее вам нужно будет создать нового пользователя PostgreSQL для Flectra. Вы можете создать его с помощью следующей команды:

su - postgres -c "createuser -s flectra"

Как только вы закончите, вы можете перейти к следующему шагу.

Установить Флектру

Перед установкой Flectra вам нужно будет создать отдельного пользователя для Flectra. Вы можете создать его с помощью следующей команды:

useradd -m -U -r -d /opt/flectra -s /bin/bash flectra

Примечание. Убедитесь, что имя пользователя должно совпадать с именем пользователя PostgreSQL.

Затем войдите в систему под пользователем Flectra и загрузите Flectra из репозитория Git с помощью следующей команды:

su - flectra
git clone --depth=1 --branch=1.0 https://gitlab.com/flectra-hq/flectra.git flectra

Затем создайте виртуальную среду для Flectra с помощью следующей команды:

python3 -m venv my-flectra

Затем активируйте виртуальную среду с помощью следующей команды:

source my-flectra/bin/activate

Затем установите все модули Python, выполнив следующую команду:

pip3 install -r flectra/requirements.txt

После установки всех модулей деактивируйте виртуальную среду с помощью следующей команды:

deactivate

Далее выйдите из пользователя Flectra с помощью следующей команды:

exit

Настроить Флектру

Во-первых, вам нужно будет создать несколько каталогов для дополнений Flectra, файл конфигурации и журнал. Вы можете создать их с помощью следующей команды:

mkdir /opt/flectra/flectra-custom-addons
mkdir /var/log/flectra
mkdir /etc/flectra
touch /var/log/flectra/flectra.log

Затем измените владельца вышеуказанных каталогов на flectra, используя следующую команду:

chown -R flectra:flectra /opt/flectra/flectra-custom-addons
chown -R flectra:flectra /var/log/flectra/
chown -R flectra:flectra /etc/flectra

Затем создайте файл конфигурации Flectra с помощью следующей команды:

nano /etc/flectra/flectra.conf

Добавьте следующие строки:

[options]
admin_passwd = your-flectra-password
db_host = False
db_port = False
db_user = flectra
db_password = False
logfile = /var/log/flectra/flectra.log
logrotate = True
proxy_mode = True
addons_path = /opt/flectra/flectra/addons, /opt/flectra/flectra-custom-addons

Сохраните и закройте файл, когда закончите.

Создать служебный файл Systemd для Flectra

Далее вам нужно будет создать файл службы systemd для Flectra, чтобы управлять службой Flectra. Вы можете создать его с помощью следующей команды:

nano /etc/systemd/system/flectra.service

Добавьте следующие строки:

[Unit]
Description=flectra
#Requires=postgresql-10.6.service
#After=network.target postgresql-10.6.service

[Service]
Type=simple
SyslogIdentifier=flectra
PermissionsStartOnly=true
User=flectra
Group=flectra
ExecStart=/opt/flectra/my-flectra/bin/python3 /opt/flectra/flectra/flectra-bin -c /etc/flectra/flectra.conf
StandardOutput=journal+console

[Install]
WantedBy=multi-user.target

Сохраните и закройте файл, когда закончите. Затем перезагрузите демон systemd с помощью следующей команды:

systemctl daemon-reload

Затем запустите службу Flectra и включите ее запуск при перезагрузке системы с помощью следующей команды:

systemctl start flectra
systemctl enable flectra

Теперь вы можете проверить статус службы Flectra с помощью следующей команды:

systemctl status flectra

Если все в порядке, вы должны получить следующий вывод:

? flectra.service - flectra
   Loaded: loaded (/etc/systemd/system/flectra.service; disabled; vendor preset: disabled)
   Active: active (running) since Thu 2020-08-13 05:34:15 EDT; 1min 3s ago
 Main PID: 10917 (python3)
    Tasks: 4 (limit: 25028)
   Memory: 57.9M
   CGroup: /system.slice/flectra.service
           ??10917 /opt/flectra/my-flectra/bin/python3 /opt/flectra/flectra/flectra-bin -c /etc/flectra/flectra.conf

Aug 13 05:34:15 centos8 systemd[1]: Started flectra.

Теперь Flectra работает и прослушивает порт 7073. Вы можете проверить это с помощью следующей команды:

netstat -plntu | grep 7073

Вы должны увидеть следующий вывод:

tcp        0      0 0.0.0.0:7073            0.0.0.0:*               LISTEN      10917/python3

Настроить Nginx для Flectra

Далее вам нужно будет настроить Nginx в качестве обратного прокси для Flectra. Таким образом, вы можете получить доступ к Flectra, используя порт 80.

Сначала установите веб-сервер Nginx с помощью следующей команды:

dnf install nginx -y

После установки Nginx запустите службу Nginx и включите ее запуск при перезагрузке системы:

systemctl start nginx
systemctl enable nginx

Затем создайте новый файл конфигурации виртуального хоста Nginx для Flectra:

nano /etc/nginx/conf.d/flectra.conf

Добавьте следующие строки:

#flectra server
upstream flectra {
 server 127.0.0.1:7073;
}

server {
   listen 80;
   server_name flectra.your-domain.com;

proxy_read_timeout 720s;
 proxy_connect_timeout 720s;
 proxy_send_timeout 720s;

 # Add Headers for flectra proxy mode
 proxy_set_header X-Forwarded-Host $host;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 proxy_set_header X-Forwarded-Proto $scheme;
 proxy_set_header X-Real-IP $remote_addr;

 # log
 access_log /var/log/nginx/flectra.access.log;
 error_log /var/log/nginx/flectra.error.log;

 # Redirect requests to flectra backend server
 location / {
   proxy_redirect off;
   proxy_pass http://flectra;
 }

 # common gzip
 gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript;
 gzip on;
}

Сохраните и закройте файл, когда закончите. Затем перезапустите службу Nginx, чтобы применить изменения:

systemctl restart nginx

На данный момент веб-сервер Nginx настроен для обслуживания Flectra. Теперь вы можете перейти к следующему шагу.

Доступ к веб-интерфейсу Flectra

Теперь откройте веб-браузер и введите URL-адрес http://flectra.your-domain.com. Вы будете перенаправлены на следующий экран:

Укажите свой мастер-пароль, который вы определили в файле конфигурации, данные базы данных, адрес электронной почты, пароль и нажмите кнопку «Создать базу данных». Вы должны увидеть приборную панель Flectra, как показано на следующем экране:

Заключение

Поздравляем! вы успешно установили Flectra с Nginx на CentOS 8. Теперь вы можете разместить свою собственную бизнес-информационную систему Flectra и развивать свой бизнес с помощью мощного модульного дизайна Flectras и множества надстроек. Для получения дополнительной информации о Flectra вы можете прочитать официальную документацию Flectra.