Как да инсталирате ERPNext Open Source ERP на CentOS 7

ERP или Enterprise Resource Planning е пакет корпоративни приложения, използван за управление на основните бизнес процеси. ERPNext е безплатно и самостоятелно хоствано ERP приложение с отворен код, написано на Python. Той използва Node.js за предния край и MariaDB за съхраняване на своите данни. ERPNext предоставя лесен за използване уеб интерфейс, който позволява на бизнеса да управлява ежедневните задачи. Съдържа модули за счетоводство, CRM, HRM, производство, POS, управление на проекти, покупки, управление на продажбите, управление на складове и др. ERPNext може да се използва за управление на различни индустрии като доставчици на услуги, производство, търговия на дребно и училища.

В този урок ще инсталираме ERPNext на CentOS 7.

Предпоставки

За този урок ще използваме erp.example.comкато име на домейн, насочено към сървъра. Моля, не забравяйте да замените всички поява на erp.example.comс действителното ви име на домейн.

Актуализирайте базовата си система, като използвате ръководството " Как да актуализирате CentOS 7 ". След като вашата система бъде актуализирана, продължете да инсталирате Python.

Инсталирайте инструменти за разработка

ERPNext се нуждае от Python версия 2.7, за да работи. Python 2.7 е инсталиран по подразбиране във всички сървърни инстанции на CentOS. Можете да проверите дали е инсталирана версия на Python, като изпълните:

python -V

Трябва да получите подобен изход.

[user@vultr ~]$ python -V
Python 2.7.5

Въпреки че инсталираната версия на Python не е най-новата, тя работи безпроблемно. Промяната на версията по подразбиране на Python може да наруши YUM.

Инсталирайте пакетите в Development toolsгрупата, които са необходими за компилиране на инсталационните файлове.

sudo yum groupinstall -y "Development tools"

Инсталирайте още няколко зависимости:

sudo yum install -y redhat-lsb-core git python-setuptools python-devel openssl-devel libffi-devel

Инсталирайте pipинструмента на Python . Pip е мениджърът на зависимости за пакетите на Python.

wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py

Горната команда ще инсталира Pip във вашата система. За да сте сигурни, че имате най-новата версия на pipи setuptools, стартирайте:

sudo pip install --upgrade pip setuptools

Инсталирайте Ansible с помощта на Pip. Ansible автоматизира предоставянето на софтуер, управлението на конфигурацията и внедряването на приложения.

sudo pip install ansible

Инсталирайте сървъра MariaDB

MariaDB е разклонение на MySQL сървър на база данни. Инсталирайте MariaDB, като стартирате.

sudo yum -y install mariadb mariadb-server mysql-devel

Двигателят за съхранение на Barracuda е необходим за създаването на бази данни ERPNext, следователно ще трябва да конфигурирате MariaDB да използва механизма за съхранение на Barracuda. Редактирайте конфигурационния файл на MariaDB по подразбиране my.cnf.

sudo nano /etc/my.cnf

Добавете следните редове под symbolic-links=0реда.

innodb-file-format=barracuda
innodb-file-per-table=1
innodb-large-prefix=1
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci

[mysql]
default-character-set = utf8mb4

Стартирайте MariaDB и го активирайте да стартира автоматично при стартиране.

sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service

Преди да конфигурирате базата данни, ще трябва да защитите MariaDB. Можете да го защитите, като стартирате mysql_secure_installationскрипта:

sudo mysql_secure_installation

Ще бъдете помолени за текущата парола за root на MariaDB. По подразбиране няма зададена root парола в MariaDB. Натиснете клавиша "Enter", за да продължите. Задайте силна парола за root потребител на вашия MariaDB сървър и отговорете с "Y" на всички други въпроси, които се задават. Зададените въпроси се разбират сами.

Инсталирайте Nginx, Nodejs и Redis

Тъй като EPEL хранилището е инсталирано по подразбиране във всички екземпляри на Vultr CentOS 7, можете директно да инсталирате Redis и Nginx. Но за да инсталирате най-новата версия на Node.js, ще трябва да добавите хранилището на Nodesource във вашата система.

Добавете хранилището на Nodesource за Node.js 8.x.

sudo curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -

Инсталирайте Nginx, Nodejs и Redis:

sudo yum -y install nginx nodejs redis

Стартирайте Nginx и го активирайте да стартира при стартиране, като изпълните:

sudo systemctl start nginx
sudo systemctl enable nginx

Стартирайте Redis и го активирайте да стартира при стартиране, като изпълните:

sudo systemctl start redis
sudo systemctl enable redis

Инсталирайте PDF Converter

В wkhtmltopdfпрограмата е онлайн инструмент от командния че новопокръстените HTML в PDF с помощта на QT Webkit модул за визуализация на. Инсталирайте необходимите зависимости:

sudo yum -y install libXrender libXext xorg-x11-fonts-75dpi xorg-x11-fonts-Type1

Изтеглете най-новата версия на wkhtmltopdf.

wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz

Извлечете архива, като изпълните:

sudo tar -xf wkhtmltox-0.12.4_linux-generic-amd64.tar.xz -C /opt

Горната команда ще извлече архива в /opt/wkhtmltox. Създайте мека връзка, така че wkhtmltopdfи wkhtmltoimageда може да се изпълнява глобално като команда.

sudo ln -s /opt/wkhtmltox/bin/wkhtmltopdf /usr/bin/wkhtmltopdf
sudo ln -s /opt/wkhtmltox/bin/wkhtmltoimage /usr/bin/wkhtmltoimage

Вече можете да изпълните wkhtmltopdf -Vкоманда, за да проверите дали работи, ще видите:

[user@vultr ~]$ wkhtmltopdf -V
wkhtmltopdf 0.12.4 (with patched qt)

В този момент имаме инсталирани всички необходими зависимости. Сега можете да продължите с инсталирането на Bench.

Инсталирайте Bench

Benchе помощна програма за команден ред, предоставена от Frappe за инсталиране и управление на приложението ERPNext на Unix-базирана система както за целите на разработката, така и за производството. Bench може също да създава и управлява конфигурация на Nginx и супервайзор.

Създайте нов потребител за стартиране на Bench процеси в изолирана среда.

sudo adduser bench -d /opt/bench

Променете паролата на потребителя.

sudo passwd bench

Предоставяне на sudoразрешения на benchпотребителя.

sudo usermod -aG wheel bench

Влезте като новосъздадения benchпотребител:

sudo su - bench

Клонирайте хранилището на Bench в /opt/bench:

cd /opt/bench
git clone https://github.com/frappe/bench bench-repo

Инсталирайте Bench с помощта на pip.

sudo pip install -e bench-repo

След като Bench бъде инсталиран, продължете по-нататък, за да инсталирате ERPNext с помощта на Bench.

Инсталирайте ERPNext с помощта на Bench

Инициализирайте бенч директория с инсталиран фреймворк. За да поддържаме всичко подредено, ще работим под /opt/benchдиректория. Bench също така ще настройва редовни архиви и автоматични актуализации веднъж на ден.

cd /opt/bench
bench init erpnext && cd erpnext

Създайте нов сайт на Frappe:

bench new-site erp.example.com

Горната команда ще ви подкани за MySQL root парола. Предоставете паролата, която сте задали за root потребителя на MySQL по-рано. Той също така ще ви помоли да зададете нова парола за администраторския акаунт. Тази парола ще ви е необходима по-късно, за да влезете в таблото за управление на администратора.

Изтеглете инсталационните файлове на ERPNext от отдалеченото хранилище на git с помощта на Bench.

bench get-app erpnext https://github.com/frappe/erpnext

Инсталирайте ERPNext на новосъздадения си сайт:

bench --site erp.example.com install-app erpnext

ERPNext е инсталиран на вашия сървър. Можете да стартирате приложението незабавно, за да проверите дали приложението е стартирано успешно:

bench start

Въпреки това, трябва да спрете изпълнението и да продължите по-нататък, за да настроите приложението за производствена употреба.

Надзорник за настройка и Nginx

По подразбиране приложението ERPNext слуша на порт 8000, а не на стандартния HTTP порт 80. Също така не се препоръчва стартирането на вградения уеб сървър за производствена употреба, тъй като ще изложим сървъра на света. Следователно, трябва да използвате производствен уеб сървър като обратен прокси като Apache или Nginx. В този урок ще използваме Nginx като обратен прокси, тъй като може да се конфигурира автоматично с помощта на Bench. Bench може автоматично да генерира и инсталира конфигурацията според настройката на ERPNext.

Въпреки че можем да стартираме приложението с помощта на горната команда, изпълнението на ERPNext ще спре веднага след като затворите терминала. За да се преодолее този проблем, препоръчвам да използвате Supervisor, който е много полезен при непрекъснато изпълнение на приложението в производствена среда. Supervisor е система за контрол на процесите, която ви позволява да наблюдавате и контролирате редица процеси в операционни системи Linux. След като Supervisor е конфигуриран, той автоматично ще стартира приложението по време на зареждане, както и при неуспехи. Bench може автоматично да конфигурира Supervisor за приложението ERPNext.

Инсталирайте Supervisor:

sudo yum -y install supervisor

Стартирайте Supervisor и го активирайте автоматично да стартира при стартиране:

sudo systemctl start supervisord
sudo systemctl enable supervisord

Стенд за настройка за производствена употреба:

 sudo bench setup production bench

Горната команда може да ви подкани, преди да замените съществуващия конфигурационен файл по подразбиране на Supervisor с нов. Изберете yда продължите. Bench добавя редица процеси към конфигурационния файл на Supervisor. Горната команда също ще ви попита дали искате да замените текущата конфигурация на Nginx с нова. Въведете, за yда продължите. След като Bench приключи инсталирането на конфигурацията, осигурете на други потребители да изпълнят файловете във вашата домашна директория на потребителя на Bench.

chmod o+x /opt/bench/

Ако използвате защитна стена на вашия сървър, ще трябва да конфигурирате защитната стена, за да зададе изключение за HTTP услуга. Позволете на обратния прокси на Nginx да се свързва извън мрежата.

sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --reload

Вече имате достъп до сайта на http://erp.example.com.

Можете да проверите състоянието на процесите, като изпълните:

sudo supervisorctl status all

Трябва да видите следния изход:

[bench@vultr ~]$ sudo supervisorctl status all
erpnext-redis:erpnext-redis-cache                 RUNNING   pid 2554, uptime 1:06:58
erpnext-redis:erpnext-redis-queue                 RUNNING   pid 2553, uptime 1:06:58
erpnext-redis:erpnext-redis-socketio              RUNNING   pid 2555, uptime 1:06:58
erpnext-web:erpnext-frappe-web                    RUNNING   pid 2559, uptime 1:06:58
erpnext-web:erpnext-node-socketio                 RUNNING   pid 2556, uptime 1:06:58
erpnext-workers:erpnext-frappe-default-worker-0   RUNNING   pid 2549, uptime 1:06:58
erpnext-workers:erpnext-frappe-long-worker-0      RUNNING   pid 2551, uptime 1:06:58
erpnext-workers:erpnext-frappe-schedule           RUNNING   pid 2550, uptime 1:06:58
erpnext-workers:erpnext-frappe-short-worker-0     RUNNING   pid 2552, uptime 1:06:58

За да спрете всички процеси на ERPNext, използвайте:

sudo supervisorctl stop all

За да стартирате всички процеси на ERPNext, използвайте:

sudo supervisorctl start all

Настройка на SSL с помощта на Let's Encrypt

Let's Encrypt предоставя безплатни SSL сертификати на потребителите. SSL може да се инсталира ръчно или автоматично чрез Bench. Bench може автоматично да инсталира клиента Let's Encrypt и да получи сертификатите. Освен това той автоматично актуализира конфигурацията на Nginx, за да използва сертификатите.

The domain name which you are using to obtain the certificates from the Let's Encrypt CA must be pointed towards the server. The client verifies the domain authority before issuing the certificates.

Активирайте DNS мулти-наемане за приложението ERPNext.

bench config dns_multitenant on

Стартирайте Bench, за да настроите Let's Encrypt на вашия сайт:

sudo bench setup lets-encrypt erp.example.com

По време на изпълнението на скрипта, клиентът Let's Encrypt ще ви помоли временно да спрете уеб сървъра на Nginx. Той автоматично ще инсталира необходимите пакети и клиента Let's Encrypt. Клиентът ще поиска вашия имейл адрес. Вие също ще трябва да приемете общите условия. След като сертификатите бъдат генерирани, Bench ще генерира и новата конфигурация за Nginx, която използва SSL сертификатите. Ще бъдете попитани, преди да замените съществуващата конфигурация. Bench също така създава crontabзапис за автоматично подновяване на сертификатите всеки месец.

И накрая, активирайте планировчика да изпълнява автоматично планираните задачи:

bench enable-scheduler

Трябва да видиш:

[bench@vultr erpnext]$ bench enable-scheduler
Enabled for erp.example.com

Обобщавайки

След като процесът приключи, можете да получите достъп до приложението си на адрес https://erp.example.com. Влезте с потребителското име Administratorи паролата, които сте задали по време на инсталацията. Ще бъдете отведени до бюрото, където ще трябва да предоставите информация, за да настроите ERPNext ERP според вашата компания. Вече можете да използвате приложението за управление на вашата компания.

Поздравления, имате напълно работещо приложение ERPNext, инсталирано на вашия CentOS 7 сървър.


Инсталирайте Plesk на CentOS 7

Инсталирайте Plesk на CentOS 7

Използване на различна система? Plesk е собствен контролен панел за уеб хост, който позволява на потребителите да администрират своите лични и/или клиентски уебсайтове, бази данни

Как да инсталирате Squid Proxy на CentOS

Как да инсталирате Squid Proxy на CentOS

Squid е популярна, безплатна програма за Linux, която ви позволява да създадете уеб прокси за препращане. В това ръководство ще видите как да инсталирате Squid на CentOS, за да ви обърне

Как да инсталирате Lighttpd (LLMP стек) на CentOS 6

Как да инсталирате Lighttpd (LLMP стек) на CentOS 6

Въведение Lighttpd е форк на Apache, чиято цел е да бъде много по-малко ресурсоемка. Той е лек, откъдето идва и името му, и е доста лесен за използване. Инсталирайте

Конфигуриране на статична мрежа и IPv6 на CentOS 7

Конфигуриране на статична мрежа и IPv6 на CentOS 7

VULTR наскоро направи промени от своя страна и вече всичко трябва да работи добре от кутията с активиран NetworkManager. Ако желаете да деактивирате

Промяна на Icinga2 за използване на модел главен/клиент на CentOS 6 или CentOS 7

Промяна на Icinga2 за използване на модел главен/клиент на CentOS 6 или CentOS 7

Icinga2 е мощна система за наблюдение и когато се използва в модел главен-клиент, тя може да замени необходимостта от проверки на базата на NRPE. Главният клиент

Как да инсталирате Apache Cassandra 3.11.x на CentOS 7

Как да инсталирате Apache Cassandra 3.11.x на CentOS 7

Използване на различна система? Apache Cassandra е безплатна система за управление на база данни NoSQL с отворен код, която е проектирана да осигури мащабируемост, висока

Как да инсталирате Microweber на CentOS 7

Как да инсталирате Microweber на CentOS 7

Използване на различна система? Microweber е CMS и онлайн магазин с отворен код за плъзгане и пускане. Изходният код на Microweber се хоства на GitHub. Това ръководство ще ви покаже

Как да инсталирате Mattermost 4.1 на CentOS 7

Как да инсталирате Mattermost 4.1 на CentOS 7

Използване на различна система? Mattermost е самостоятелно хоствана алтернатива с отворен код на Slack SAAS услугата за съобщения. С други думи, с Mattermost, вие ca

Създаване на мрежа от сървъри на Minecraft с BungeeCord на Debian 8, Debian 9 или CentOS 7

Създаване на мрежа от сървъри на Minecraft с BungeeCord на Debian 8, Debian 9 или CentOS 7

Какво ви трябва Vultr VPS с поне 1 GB RAM. SSH достъп (с root/административни привилегии). Стъпка 1: Инсталиране на BungeeCord На първо място

Lets Encrypt на Plesk

Lets Encrypt на Plesk

Контролният панел на Plesk разполага с много приятна интеграция за Lets Encrypt. Lets Encrypt е един от единствените доставчици на SSL, които предоставят пълно сертификати

Позволява криптиране на cPanel

Позволява криптиране на cPanel

Lets Encrypt е сертифициращ орган, посветен на предоставянето на SSL сертификати безплатно. cPanel изгради чиста интеграция, така че вие ​​и вашият клиент

Как да инсталирате Concrete5 на CentOS 7

Как да инсталирате Concrete5 на CentOS 7

Използване на различна система? Concrete5 е CMS с отворен код, който предлага много отличителни и полезни функции за подпомагане на редакторите при лесното създаване на съдържание и

Как да инсталирате табло за преглед на CentOS 7

Как да инсталирате табло за преглед на CentOS 7

Използване на различна система? Review Board е безплатен инструмент с отворен код за преглед на изходен код, документация, изображения и много други. Това е уеб базиран софтуер

Настройте HTTP удостоверяване с Nginx на CentOS 7

Настройте HTTP удостоверяване с Nginx на CentOS 7

В това ръководство ще научите как да настроите HTTP удостоверяване за уеб сървър на Nginx, работещ на CentOS 7. Изисквания За да започнете, ще ви трябва

Как да инсталирате YOURLS на CentOS 7

Как да инсталирате YOURLS на CentOS 7

YOURLS (Your Own URL Shortener) е приложение за съкращаване на URL адреси и анализ на данни с отворен код. В тази статия ще разгледаме процеса на инсталиране

Как да инсталирате и конфигурирате ArangoDB на CentOS 7

Как да инсталирате и конфигурирате ArangoDB на CentOS 7

Използване на различна система? Въведение ArangoDB е NoSQL база данни с отворен код с гъвкав модел на данни за документи, графики и ключ-стойности. то е

Използване на Etckeeper за контрол на версиите на /etc

Използване на Etckeeper за контрол на версиите на /etc

Въведение Директорията /etc/ играе критична роля в начина, по който функционира една Linux система. Причината за това е, че почти всяка системна конфигурация

Защо трябва да използвате SSHFS? Как да монтирате отдалечена файлова система със SSHFS на CentOS 6

Защо трябва да използвате SSHFS? Как да монтирате отдалечена файлова система със SSHFS на CentOS 6

Много системни администратори управляват големи количества сървъри. Когато файловете трябва да бъдат достъпни на различни сървъри, влизането във всеки от тях поотделно ок

Настройване на сървър на Half Life 2 на CentOS 6

Настройване на сървър на Half Life 2 на CentOS 6

Този урок ще обхване процеса на инсталиране на сървър за игри Half Life 2 на CentOS 6 System. Стъпка 1: Инсталиране на предпоставките За да настроите ou

Как да инсталирате Laravel GitScrum на CentOS 7

Как да инсталирате Laravel GitScrum на CentOS 7

Laravel GitScrum или GitScrum е инструмент за производителност с отворен код, предназначен да помогне на екипите за разработка да внедрят методологията на Scrum по подобен начин.

Възходът на машините: Реални приложения на AI

Възходът на машините: Реални приложения на AI

Изкуственият интелект не е в бъдещето, тук е точно в настоящето. В този блог Прочетете как приложенията за изкуствен интелект са повлияли на различни сектори.

DDOS атаки: кратък преглед

DDOS атаки: кратък преглед

Вие също сте жертва на DDOS атаки и сте объркани относно методите за превенция? Прочетете тази статия, за да разрешите вашите запитвания.

Чудили ли сте се как хакерите печелят пари?

Чудили ли сте се как хакерите печелят пари?

Може би сте чували, че хакерите печелят много пари, но чудили ли сте се някога как печелят такива пари? нека обсъдим.

Революционни изобретения на Google, които ще улеснят живота ви.

Революционни изобретения на Google, които ще улеснят живота ви.

Искате ли да видите революционни изобретения на Google и как тези изобретения промениха живота на всяко човешко същество днес? След това прочетете в блога, за да видите изобретенията на Google.

Friday Essential: Какво се случи с колите, задвижвани от изкуствен интелект?

Friday Essential: Какво се случи с колите, задвижвани от изкуствен интелект?

Концепцията за самоуправляващи се автомобили да тръгват по пътищата с помощта на изкуствен интелект е мечта, която имаме от известно време. Но въпреки няколкото обещания, те не се виждат никъде. Прочетете този блог, за да научите повече…

Технологична сингулярност: далечно бъдеще на човешката цивилизация?

Технологична сингулярност: далечно бъдеще на човешката цивилизация?

Тъй като науката се развива с бързи темпове, поемайки много от нашите усилия, рискът да се подложим на необяснима сингулярност също нараства. Прочетете какво може да означава сингулярността за нас.

Еволюция на съхранението на данни – инфографика

Еволюция на съхранението на данни – инфографика

Методите за съхранение на данните може да се развиват от раждането на данните. Този блог обхваща развитието на съхранението на данни на базата на инфографика.

Функционалности на референтните архитектурни слоеве за големи данни

Функционалности на референтните архитектурни слоеве за големи данни

Прочетете блога, за да разберете различни слоеве в архитектурата на големи данни и техните функционалности по най-простия начин.

6 невероятни предимства от наличието на интелигентни домашни устройства в живота ни

6 невероятни предимства от наличието на интелигентни домашни устройства в живота ни

В този дигитално задвижван свят устройствата за интелигентен дом се превърнаха в решаваща част от живота. Ето няколко невероятни предимства на интелигентните домашни устройства за това как те правят живота ни струващ и по-опростен.

Актуализацията на допълнението на macOS Catalina 10.15.4 причинява повече проблеми, отколкото решава

Актуализацията на допълнението на macOS Catalina 10.15.4 причинява повече проблеми, отколкото решава

Наскоро Apple пусна macOS Catalina 10.15.4 допълнителна актуализация за отстраняване на проблеми, но изглежда, че актуализацията причинява повече проблеми, водещи до блокиране на mac машини. Прочетете тази статия, за да научите повече