Как да инсталирате Thelia 2.3 на Debian 9
Използване на различна система? Thelia е инструмент с отворен код за създаване на уебсайтове за е-бизнес и управление на онлайн съдържание, написано на PHP. Изходен код на Thelia i
В този урок ще настроим уеб сървър с обратен прокси. CMS, който ще използваме, е Keystone.js, добре позната рамка за уеб приложения, базирана на Express.js. Обратният прокси, който ще използваме, е Nginx, който е безплатен обратен прокси с отворен код, както и HTTP сървър. Базата данни, която ще използваме, е MongoDB, база данни за документи NoSQL. Това ще изисква да имате настроен домейн със записи. Ако нямате този комплект, продължете и се погрижете за това и се върнете към този урок.
Първо, ще инсталираме Node.js, който е интерпретатор на Javascript, базиран на двигателя Chrome V8 Javascript.
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs
sudo apt-get install -y build-essential
След това ще инсталираме Nginx, нашия обратен прокси.
sudo apt update
sudo apt install nginx
Това ще актуализира списъците с пакети и ще инсталира Nginx. След като инсталацията приключи, ще настроим нашия проект за възел.
Създайте нашия проект за възел. За да направите това, просто създайте нова папка.
mkdir website
След това ще създадем нашия package.json
файл. За да направите това, просто стартирайте npm init
във вашия терминал, попълнете полетата и отговорете с „ yes
“, за да потвърдите. След като създадете package.json
файла, ние ще инсталираме следните модули на възел.
sudo npm install -g generator-keystone
sudo npm install -g yo
След като те приключат с изтеглянето, изпълнете следното.
yo keystone
Попълнете задължителните полета. Ще ви поиска project name
, template engine
, email
за контролен панел и т.н. Ако не знаете какво да изберете, тогава настройките по подразбиране ще бъдат добре. След като сте конфигурирали вашата keystone настройка, можем да тестваме дали сървърът ни работи, като напишете, за node keystone
да стартирате приложението си. По подразбиране вашето приложение ще работи на localhost
, на порт 3000
. Имайте предвид, че ако нямате инсталиран MongoDB, база данни няма да бъде налична за вас веднага. Можете да научите как да го инсталирате по-късно в урока.
Ето основното оформление на директорията за Keystone.js:
/lib
- Тук ще съхранявате вашите персонализирани библиотеки и друг код.
/models
- Тук ще съхранявате моделите на базата данни на вашето приложение. KeystoneJS използва MongoDB като доставчик на база данни.
/public
- Тук ще се съхраняват вашите статични файлове (CSS, JS, изображения и т.н.).
/routes/api
- Тук ще се съхраняват API контролерите на вашето приложение.
/routes.views
- Тук ще се съхраняват контролери за изглед на приложения.
/templates
- Тук ще се съхраняват всички шаблонни файлове на вашето приложение.
/updates
- Тук ще се съхраняват вашите скриптове за миграция.
package.json
- Това е вашият npm конфигурационен файл, който генераторът генерира за нас.
keystone.js
- Нашият основен стартов файл, стартираме го, когато стартираме уебсайта.
Както споменахме по-рано, нашата база данни, която ще използваме, е MongoDB, която е надеждна NoSQL, документно-ориентирана база данни. Ако вече имате инсталиран MongoDB, можете да пропуснете този раздел. Ако не, ето как да го инсталирате на Ubuntu 16.04.
Импортирайте публичния ключ, използван за пакета mongoDB.
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6
Създайте списъчния файл, използван за инсталиране на пакета.
echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list
Актуализирайте списъците си с пакети с помощта на apt
.
sudo apt update
Накрая инсталирайте MongoDB.
sudo apt install mongodb-org -y
Когато тази инсталация приключи, стартирайте MongoDB.
sudo service mongod start
Това ще стартира процеса на MongoDB на порта 27017
.
MongoDB ще се използва в цялото приложение и ще се използва за съхраняване на информация, която използваме за нашите модели, например User
модел. Keystone го използва като избрана база данни и в момента не можете да използвате други доставчици на бази данни.
Сега е време да инсталирате PM2 (Process Manager 2.) PM2 е мениджър на процеси за приложения Node.js, под формата на npm модул. Той предоставя лесен начин да управлявате приложенията си и да ги изпълнявате във фонов режим. Тъй като е в NPM, всичко, което трябва да направим, за да го инсталираме, е да изпълним следното.
sudo npm install pm2 -g
Това казва на npm да го инсталира глобално, за да можем да го използваме навсякъде в нашата система.
По-рано стартирахме нашето уеб приложение с node keystone
. С PM2 е малко по-различно. Сега стартираме нашето приложение за възел със следното.
pm2 start keystone.js
Това ще добави нашето приложение PM2 към нашия списък с процеси и ще се покаже малко поле, за да можете да видите, че наистина е онлайн. Обърнете внимание на полето, обозначено id
за вашия процес. Дръжте това близо, тъй като по-късно ще правим много препратки към това.
За да видите регистрационните файлове за вашето приложение.
pm2 logs [id]
Например, pm2 logs 0
ако това е първото ви приложение за PM2.
За да спрете вашето уеб приложение по всяко време.
pm2 stop [id]
За да изтриете напълно приложението си.
pm2 delete [id]
PM2 дори има табло за наблюдение, ако искате да видите някои основни статистически данни за вашето приложение и можете да получите достъп до него с него.
pm2 monit
Това ще покаже основна информация като използване на RAM, използване на процесора и време за работа.
Страхотна функция, която PM2 предлага е watching
. По същество гледането е, когато PM2 автоматично открива промени в някой от файловете в същата директория като началния ви файл и автоматично ще рестартира приложението ви. За да го активирате, просто рестартирайте приложението си, но му предайте флаг за часовник.
pm2 restart [id] --watch
За да деактивирате гледането, след като е активирано, просто изпълнете същата команда отново и гледането ще бъде деактивирано.
В този урок ще оставим гледането изключено.
Уверете се, че имате инсталиран Nginx. Ако по някаква причина не е, вижте стъпките по-горе.
Коригирайте настройките на защитната си стена. В Ubuntu ufw
е официалната защитна стена. По подразбиране връзките са блокирани на порт 80
. Трябва да добавим изключение за Nginx на порт 80
, на който ще работи нашето уеб приложение.
sudo ufw allow 'Nginx HTTP'
Проверете дали вашият Nginx сървър работи.
systemctl status nginx
Под Active
секцията, ако видите active (running)
, значи сте готови. Ако не, можете да опитате да рестартирате услугата.
systemctl restart nginx
Изтрийте конфигурационния файл на Nginx по подразбиране.
sudo rm /etc/nginx/sites-available/default
Създайте нов и просто го наречете node
.
sudo nano /etc/nginx/sites-available/node
Поставете следното във файла и го заменете example.com
с домейна на вашия уебсайт.
listen 80;
server_name example.com;
location / {
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
proxy_pass "http://127.0.0.1:3000";
}
}
Обърнете внимание, че proxy_pass
обозначава IP адреса, на който нашето приложение Keystone работи локално, което е localhost
на порт 3000
.
listen 80
е портът, към който искаме да бъде насочено приложението, което в този случай е port 80
.
След това трябва да създадем символна връзка или символна връзка към папка, наречена sites-enabled
. Разликата между sites-enabled
и sites-available
е, че sites-enabled
всъщност се зарежда от Nginx.
sudo ln -s /etc/nginx/sites-available/node /etc/nginx/sites-enabled/node
Сега вашият конфигурационен файл sites-available
ще бъде готов за използване и ще бъде зареден от sites-enabled
. За да приложите конфигурацията, така че да влезе в сила, просто рестартирайте Nginx.
sudo systemctl restart nginx
Накрая рестартирайте приложението си PM2
pm2 restart [id]
Сега можете да навигирате до вашия домейн в браузър и ще видите Welcome to Keystone
екран с панел, за да влезете.
Ако го видите, значи успешно сте настроили производствен уеб сървър на Node.js. Ако не, тогава може да сте направили една стъпка неправилно и може да искате да се върнете и да следвате всяка стъпка внимателно.
Можете да научите повече за Nginx, като посетите техния уебсайт .
Надявам се, че ви е харесал този урок и се надявам, че това ви е помогнало да настроите свой собствен уеб сървър за производство на вашия Vultr VPS.
Използване на различна система? Thelia е инструмент с отворен код за създаване на уебсайтове за е-бизнес и управление на онлайн съдържание, написано на PHP. Изходен код на Thelia i
Използване на различна система? Microweber е CMS и онлайн магазин с отворен код за плъзгане и пускане. Изходният код на Microweber се хоства на GitHub. Това ръководство ще ви покаже
Използване на различна система? Microweber е CMS и онлайн магазин с отворен код за плъзгане и пускане. Изходният код на Microweber се хоства на GitHub. Това ръководство ще ви покаже
Използване на различна система? DotCMS е система за управление на съдържанието от корпоративен клас с отворен код, написана на Java. Той съдържа почти всички необходими функции
Използване на различна система? Pagekit 1.0 CMS е красива, модулна, разширяема и лека, безплатна система за управление на съдържанието (CMS) с отворен код с
Използване на различна система? BigTree CMS 4.2 е бърза и лека, безплатна и с отворен код, корпоративна система за управление на съдържанието (CMS) с обширна
Използване на различна система? Pagekit е CMS с отворен код, написан на PHP. Изходният код на Pagekit се хоства на GitHub. Това ръководство ще ви покаже как да инсталирате
Използване на различна система? PyroCMS е CMS с отворен код, написан на PHP. Изходният код на PyroCMS се хоства на GitHub. В това ръководство добре се разходете из целия
Използване на различна система? Subrion 4.1 CMS е мощна и гъвкава система за управление на съдържанието (CMS) с отворен код, която носи интуитивно и ясно съдържание
Използване на различна система? Backdrop CMS 1.8.0 е проста и гъвкава, удобна за мобилни устройства, безплатна система за управление на съдържанието (CMS) с отворен код, която ни позволява
Използване на различна система? Въведение Roadiz е модерна CMS, предназначена да обработва много видове услуги. Въз основа на компонентите на Symfony и Doctrine ORM, т.е
Използване на различна система? Microweber е CMS и онлайн магазин с отворен код за плъзгане и пускане. Изходният код на Microweber се хоства на GitHub. Това ръководство ще ви покаже
Използване на различна система? Grav е CMS с плосък файл с отворен код, написан на PHP. Изходният код на Grav се хоства публично на GitHub. Това ръководство ще ви покаже как т
Използване на различна система? Grav е CMS с плосък файл с отворен код, написан на PHP. Изходният код на Grav се хоства публично на GitHub. Това ръководство ще ви покаже как т
Използване на различна система? Automad е файлова система за управление на съдържанието (CMS) с отворен код и шаблонна машина, написана на PHP. Изходният код на Automad i
Raneto е безплатна база от знания с отворен код, изградена на Node.js, която е лесна за настройка и използване, както и лесна за администриране. Категории и страници ar
Използване на различна система? Thelia е инструмент с отворен код за създаване на уебсайтове за е-бизнес и управление на онлайн съдържание, написано на PHP. Изходен код на Thelia i
Използване на различна система? Октомври 1.0 CMS е проста и надеждна, безплатна и отворена система за управление на съдържанието (CMS), изградена върху рамката Laravel
Използване на различна система? ImpressPages CMS 5.0 е проста и ефективна, безплатна и с отворен код, лесна за потребителя, базирана на MVC, система за управление на съдържанието (CMS)
Using a Different System? CMS Made Simple 2.2 is a flexible and extensible, free and open source Content Management System (CMS) intelligently designed to b
Изкуственият интелект не е в бъдещето, тук е точно в настоящето. В този блог Прочетете как приложенията за изкуствен интелект са повлияли на различни сектори.
Вие също сте жертва на DDOS атаки и сте объркани относно методите за превенция? Прочетете тази статия, за да разрешите вашите запитвания.
Може би сте чували, че хакерите печелят много пари, но чудили ли сте се някога как печелят такива пари? нека обсъдим.
Искате ли да видите революционни изобретения на Google и как тези изобретения промениха живота на всяко човешко същество днес? След това прочетете в блога, за да видите изобретенията на Google.
Концепцията за самоуправляващи се автомобили да тръгват по пътищата с помощта на изкуствен интелект е мечта, която имаме от известно време. Но въпреки няколкото обещания, те не се виждат никъде. Прочетете този блог, за да научите повече…
Тъй като науката се развива с бързи темпове, поемайки много от нашите усилия, рискът да се подложим на необяснима сингулярност също нараства. Прочетете какво може да означава сингулярността за нас.
Методите за съхранение на данните може да се развиват от раждането на данните. Този блог обхваща развитието на съхранението на данни на базата на инфографика.
Прочетете блога, за да разберете различни слоеве в архитектурата на големи данни и техните функционалности по най-простия начин.
В този дигитално задвижван свят устройствата за интелигентен дом се превърнаха в решаваща част от живота. Ето няколко невероятни предимства на интелигентните домашни устройства за това как те правят живота ни струващ и по-опростен.
Наскоро Apple пусна macOS Catalina 10.15.4 допълнителна актуализация за отстраняване на проблеми, но изглежда, че актуализацията причинява повече проблеми, водещи до блокиране на mac машини. Прочетете тази статия, за да научите повече