Jak zainstalować Neos CMS na CentOS 7
Neos to innowacyjny system zarządzania treścią typu open source, który doskonale nadaje się do tworzenia i edytowania treści online. Z myślą o autorach i redaktorach, Neo
Ghost to platforma blogowa typu open source, która zyskuje popularność wśród programistów i zwykłych użytkowników od czasu wydania w 2013 roku. Koncentruje się na treści i blogowaniu. Najbardziej atrakcyjną rzeczą w Ghost jest jego prosta, czysta i responsywna konstrukcja. Możesz pisać swoje posty na blogu z telefonu komórkowego. Treści do Ghosta pisane są w języku Markdown. Ghost idealnie nadaje się dla osób lub małych grup pisarzy.
W tym przewodniku zamierzamy skonfigurować i wdrożyć bezpiecznego bloga Ghost v0.11.x LTS na Ubuntu 16.04 LTS VPS za pomocą Let's Encrypt , Certbot , Node.js , NPM , NGINX i MySQL .
Utwórz nowe konto użytkownika innego niż root :
adduser johndoe --gecos "John Doe"
Dodaj superużytkownika, dodając go do sudo
grupy:
usermod -aG sudo johndoe
Przełącz na nowego użytkownika:
su - johndoe
Zaktualizuj oprogramowanie systemu operacyjnego:
sudo apt update && sudo apt upgrade -y
Ustaw strefę czasową:
sudo dpkg-reconfigure tzdata
Zainstaluj wymagane narzędzia:
sudo apt install -y build-essential zip unzip vim nano openssl wget curl git apt-transport-https
Uruchom ponownie system, jeśli jest to wymagane:
sudo shutdown -r now
UWAGA : Przed rozpoczęciem tego kroku upewnij się, że masz ustawione rekordy DNS dla swojej domeny.
Użyjemy Let's Encrypt CA i klienta EFF Certbot, aby uzyskać certyfikat SSL / TLS dla naszego bloga Ghost. Nie zapomnij zastąpić wszystkich instancji blog.domain.tld
nazwą swojej domeny.
Zainstaluj oprogramowanie do zarządzania certyfikatami Certbot (wcześniej Let's Encrypt client ) wykonane w Pythonie:
sudo apt update
sudo apt install -y software-properties-common
sudo add-apt-repository -y ppa:certbot/certbot
sudo apt update
sudo apt install -y certbot
Sprawdź wersję Certbot:
certbot --version
# certbot 0.14.2
Uzyskaj certyfikat RSA przy użyciu autonomicznej metody uwierzytelniania (wtyczki):
sudo certbot certonly --standalone --domains blog.domain.tld --rsa-key-size 2048 --must-staple --email [email protected] --no-eff-email --agree-tos
# IMPORTANT NOTES:
# - Congratulations! Your certificate and chain have been saved at
/etc/letsencrypt/live/blog.domain.tld/fullchain.pem.
# Your cert will expire on YYYY-MM-DD. . . .
# . . .
Po przejściu poprzednich kroków certyfikat i klucz prywatny znajdą się w /etc/letsencrypt/live/blog.domain.tld
katalogu.
UWAGA : Ghost obsługuje obecnie tylko wersje Node.js w wersji 4.5+ i 6.9+ .
Ghost jest zbudowany na Node.js. Zamierzamy zainstalować zalecaną wersję Ghosta v6 Boron LTS
w momencie pisania tego tekstu.
Pobierz i zainstaluj Node.js v6 LTS:
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt install -y nodejs
Sprawdź wersje Node.js i NPM:
node -v && npm -v
# v6.11.1
# 3.10.10
Domyślnie Ghost jest skonfigurowany do korzystania z bazy danych SQLite, która nie wymaga konfiguracji.
Alternatywnie Ghost może być również używany z bazą danych MySQL poprzez zmianę konfiguracji bazy danych. Najpierw musisz utworzyć bazę danych i użytkownika, a następnie zmienić istniejącą konfigurację sqlite3.
Pobierz i zainstaluj MySQL:
sudo apt install -y mysql-server
UWAGA : Podczas instalacji pojawi się monit o podanie hasła użytkownika „root” MySQL. Powinieneś ustawić bezpieczne hasło dla użytkownika „root” MySQL.
Sprawdź wersję MySQL:
mysql --version
# mysql Ver 14.14 Distrib 5.7.18, for Linux (x86_64) using EditLine wrapper
Sprawdź, czy demon MySQL został uruchomiony i działa:
sudo systemctl status mysql.service
sudo systemctl is-enabled mysql.service
Uruchom mysql_secure_installation
skrypt, aby trochę zabezpieczyć bazę danych:
sudo mysql_secure_installation
Zaloguj się do MySQL jako użytkownik root:
mysql -u root -p
# Enter password:
Utwórz nową bazę danych MySQL i użytkownika:
create database dbname;
grant all on dbname.* to 'user' identified by 'password';
Wyjdź z MySQL:
exit
Pobierz i zainstaluj najnowszą główną wersję NGINX z oficjalnego repozytorium NGINX:
wget https://nginx.org/keys/nginx_signing.key
sudo apt-key add nginx_signing.key
rm nginx_signing.key
sudo -s
printf "deb https://nginx.org/packages/mainline/ubuntu/ `lsb_release -sc` nginx \ndeb-src https://nginx.org/packages/mainline/ubuntu/ `lsb_release -sc` nginx \n" >> /etc/apt/sources.list.d/nginx_mainline.list
exit
sudo apt update
sudo apt install -y nginx nginx-module-geoip nginx-module-image-filter nginx-module-njs nginx-module-perl nginx-module-xslt nginx-nr-agent
Sprawdź, czy jest zainstalowany, sprawdzając wersję NGINX:
sudo nginx -v
# nginx version: nginx/1.13.3
Sprawdź status, włącz i uruchom usługę NGINX (demon):
sudo systemctl status nginx.service # inactive (dead)
sudo systemctl enable nginx.service
sudo systemctl start nginx.service
Utwórz /etc/nginx/ssl
katalog i wygeneruj nową grupę Diffie-Hellman ( DH ):
sudo mkdir -p /etc/nginx/ssl
sudo openssl dhparam -out /etc/nginx/ssl/dhparams-2048.pem 2048
Utwórz katalog dziennika dla blog.domain.tld
hosta wirtualnego:
sudo mkdir -p /var/log/nginx/blog.domain.tld
Skonfiguruj NGINX jako serwer odwrotnego proxy HTTP ( S ):
sudo vim /etc/nginx/conf.d/ghost.conf
Wklej następujące elementy /etc/nginx/conf.d/ghost.conf
:
# domain: blog.domain.tld
# public: /var/www/ghost
upstream ghost_app {
server 127.0.0.1:2368;
keepalive 32;
}
server {
listen [::]:80 default_server;
listen 80 default_server;
listen [::]:443 ssl http2 default_server;
listen 443 ssl http2 default_server;
server_name blog.domain.tld;
root /var/www/ghost;
error_log /var/log/nginx/blog.domain.tld/error.log;
access_log /var/log/nginx/blog.domain.tld/access.log;
client_max_body_size 100M;
ssl_certificate /etc/letsencrypt/live/blog.domain.tld/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/blog.domain.tld/privkey.pem;
ssl_dhparam ssl/dhparams-2048.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
ssl_prefer_server_ciphers on;
ssl_buffer_size 4K;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50M;
ssl_session_tickets off;
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /etc/letsencrypt/live/blog.domain.tld/chain.pem;
resolver 8.8.8.8 8.8.4.4 valid=300s;
location / {
proxy_pass http://ghost_app;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_hide_header X-Powered-By;
proxy_http_version 1.1;
proxy_set_header Connection "";
}
}
Zapisz i przetestuj konfigurację NGINX pod kątem błędów składniowych:
sudo nginx -t
Załaduj ponownie konfigurację NGINX:
sudo systemctl reload nginx.service
UWAGA : Jeśli chcesz hostować wiele blogów Ghost na tym samym VPS, każda instancja Ghost musi być uruchomiona na osobnym porcie.
Utwórz katalog główny dokumentu:
sudo mkdir -p /var/www/
Utwórz nowego ghost
użytkownika:
sudo adduser --shell /bin/bash --gecos 'Ghost application' --disabled-password ghost
Pobierz Ghost:
curl -L https://github.com/TryGhost/Ghost/releases/download/0.11.10/Ghost-0.11.10.zip -o ghost.zip
Rozpakuj Ghosta do /var/www/ghost
katalogu (zalecana lokalizacja instalacji):
sudo unzip -uo ghost.zip -d /var/www/ghost
rm ghost.zip
Przejdź do nowego ghost
katalogu:
cd /var/www/ghost
Zmień własność /var/www/ghost
katalogu:
sudo chown -R ghost:ghost .
Przełącz na nowego ghost
użytkownika:
sudo su - ghost
Przejdź do katalogu głównego dokumentu /var/www/ghost
:
cd /var/www/ghost
Zainstaluj Ghost tylko z zależnościami produkcyjnymi. Po zakończeniu tej czynności Ghost zostanie zainstalowany:
npm install --production
Konfiguracja Duch zmieniając url
, mail
a database
własność production
obiektu wewnątrz config.js
pliku:
cp config.example.js config.js
vim /var/www/ghost/config.js
var path = require('path'),
config;
config = {
// ### Production
// When running Ghost in the wild, use the production environment.
// Configure your URL and mail settings here
production: {
url: 'https://blog.domain.tld',
mail: {
transport: 'SMTP',
options: {
service: 'Mailgun',
auth: {
user: '',
pass: ''
}
}
},
database: {
client: 'mysql',
connection: {
host: '127.0.0.1',
user: 'your_database_user',
password: 'your_database_password',
database: 'your_database_name',
charset: 'utf8'
},
debug: false
},
// . . .
// . . .
UWAGA : Należy
Uruchom Ghost w środowisku produkcyjnym:
npm start --production
Duch będzie teraz działać. Zarówno interfejs frontonu, jak i interfejs administratora są zabezpieczone za pomocą HTTPS, a HTTP / 2 również działa. Możesz otworzyć przeglądarkę i odwiedzić witrynę pod adresem https://blog.domain.tld
. Nie zapomnij zastąpić blog.domain.tld
nazwą domeny.
Zamknij proces Ghost, naciskając CTRL
+ C
i wyjdź z użytkownika Ghost z powrotem do użytkownika root:
exit
Jeśli zamkniesz sesję terminalową za pomocą VPS, Twój blog również się wyłączy. To nie jest dobrze. Aby tego uniknąć, użyjemy systemd. Będzie utrzymywać naszego bloga przez całą dobę.
Utwórz ghost.service
plik jednostki systemowej. Uruchom sudo vim /etc/systemd/system/ghost.service
i skopiuj / wklej poniższą treść:
[Unit]
Description=Ghost - the professional publishing platform
Documentation=https://docs.ghost.org/v0.11.9
After=network.target
[Service]
Type=simple
# Edit WorkingDirectory, User and Group as needed
WorkingDirectory=/var/www/ghost
User=ghost
Group=ghost
ExecStart=/usr/bin/npm start --production
ExecStop=/usr/bin/npm stop --production
Restart=always
SyslogIdentifier=Ghost
[Install]
WantedBy=multi-user.target
Włącz i uruchom ghost.service
:
sudo systemctl enable ghost.service && sudo systemctl start ghost.service
Sprawdź ghost.service
status:
sudo systemctl status ghost.service && sudo systemctl is-enabled ghost.service
Przejdź https://blog.domain.tld/ghost/
i utwórz użytkownika administratora Ghost. Zrób to jak najszybciej!
Otóż to. Mamy teraz w pełni funkcjonalny blog Ghost. Twój serwer dostarcza zawartość przez HTTP / 2, jeśli jest obsługiwany przez klienta. Jeśli chcesz zmienić domyślny motyw Ghost o nazwie Casper na niestandardowy, możesz po prostu pobrać i rozpakować motyw do /var/www/ghost/content/themes
folderu i wybrać go za pomocą interfejsu administratora Ghost, który znajduje się pod adresem https://blog.domain.tld/ghost
.
Neos to innowacyjny system zarządzania treścią typu open source, który doskonale nadaje się do tworzenia i edytowania treści online. Z myślą o autorach i redaktorach, Neo
Wprowadzenie WordPress to dominujący system zarządzania treścią w Internecie. Obsługuje wszystko, od blogów po złożone witryny z dynamiczną treścią
Używasz innego systemu? MODX Revolution to szybki, elastyczny, skalowalny, darmowy i open source, system zarządzania treścią dla przedsiębiorstw (CMS) napisany w
Używasz innego systemu? Ghost to platforma blogowa typu open source, która zyskuje popularność wśród programistów i zwykłych użytkowników od czasu wydania z 2013 roku. ja
Używasz innego systemu? Dotclear to bardzo prosty silnik do blogowania. Jest open source i łatwy w użyciu. W tym samouczku zostanie przeprowadzona instalacja
Używasz innego systemu? Fork to open source CMS napisany w PHP. Kod źródłowy Forks jest hostowany na GitHub. Ten przewodnik pokaże Ci, jak zainstalować Fork CM
Typesetter to CMS o otwartym kodzie źródłowym napisany w języku PHP, który koncentruje się na łatwości obsługi dzięki edycji True WYSIWYG i przechowywaniu plików płaskich. W tym artykule będziemy instalować
Ghost to najnowszy i najlepszy start w rywalizacji z WordPress. Tworzenie motywów jest szybkie i łatwe do nauczenia się, ponieważ twórcy Ghost zdecydowali się użyć obu
Używasz innego systemu? Ghost jest platformą blogową typu open source, która zyskuje popularność wśród programistów i zwykłych użytkowników od 201 lat
Używasz innego systemu? MODX Revolution to szybki, elastyczny, skalowalny, open source, system zarządzania treścią klasy korporacyjnej (CMS) napisany w języku PHP. To ja
Używasz innego systemu? MODX Revolution to szybki, elastyczny, skalowalny, darmowy i open source, system zarządzania treścią dla przedsiębiorstw (CMS) napisany w
Używasz innego systemu? Jekyll jest dobrą alternatywą dla WordPress. Nie wymaga żadnych baz danych i działa w języku znanym wielu osobom
Używasz innego systemu? Ghost jest platformą blogową typu open source, która zyskuje popularność wśród programistów i zwykłych użytkowników od 201 lat
Wprowadzenie Im bliżej domyślnej instalacji OpenBSD i bez tylu dodanych pakietów, tym bezpieczniejsze będzie. Chociaż tym bardziej przecinek
Używasz innego systemu? Ghost jest platformą blogową typu open source, która zyskuje popularność wśród programistów i zwykłych użytkowników od 201 lat
Używasz innego systemu? Fork to open source CMS napisany w PHP. Kod źródłowy Forks jest hostowany na GitHub. Ten przewodnik pokaże Ci, jak zainstalować Fork CM
Używasz innego systemu? Ghost to platforma blogowa typu open source, która zyskuje popularność wśród programistów i zwykłych użytkowników od czasu wydania z 2013 roku. ja
Używasz innego systemu? MODX Revolution to szybki, elastyczny, skalowalny, darmowy i open source, system zarządzania treścią dla przedsiębiorstw (CMS) napisany w
Używasz innego systemu? Fork to open source CMS napisany w PHP. Kod źródłowy Forks jest hostowany na GitHub. Ten przewodnik pokaże Ci, jak zainstalować Fork CM
Przeczytaj blog, aby w najprostszy sposób poznać różne warstwy w architekturze Big Data i ich funkcjonalności.
Chcesz zobaczyć rewolucyjne wynalazki Google i jak te wynalazki zmieniły życie każdego człowieka dzisiaj? Następnie czytaj na blogu, aby zobaczyć wynalazki Google.
13 komercyjnych narzędzi do ekstrakcji danych z Big Data
Whatsapp w końcu uruchomił aplikację Desktop dla użytkowników komputerów Mac i Windows. Teraz możesz łatwo uzyskać dostęp do Whatsapp z systemu Windows lub Mac. Dostępne dla Windows 8+ i Mac OS 10.9+
Energia jądrowa jest zawsze pogardzana, nigdy jej nie szanujemy z powodu przeszłych wydarzeń, ale nie zawsze jest zła. Przeczytaj post, aby dowiedzieć się więcej na ten temat.
Koncepcja autonomicznych samochodów, które wyjadą na drogi za pomocą sztucznej inteligencji, to marzenie, które mamy już od jakiegoś czasu. Ale pomimo kilku obietnic nigdzie ich nie widać. Przeczytaj ten blog, aby dowiedzieć się więcej…
Wzrasta liczba ataków ransomware, ale czy sztuczna inteligencja może pomóc w radzeniu sobie z najnowszym wirusem komputerowym? Czy AI jest odpowiedzią? Przeczytaj tutaj, wiedz, że sztuczna inteligencja jest zmorą lub zgubą
Sztuczna inteligencja nie jest dla ludzi nową nazwą. Ponieważ sztuczna inteligencja jest włączona do każdego strumienia, jednym z nich jest opracowywanie narzędzi zwiększających ludzką wydajność i dokładność. Skorzystaj z tych niesamowitych narzędzi uczenia maszynowego i uprość swoje codzienne zadania.
Zawsze potrzebujemy Big Data Analytics do efektywnego zarządzania danymi. W tym artykule omówiliśmy kilka technik analizy Big Data. Sprawdź ten artykuł.
Czy jesteś również ofiarą ataków DDOS i nie masz pewności co do metod zapobiegania? Przeczytaj ten artykuł, aby rozwiązać swoje pytania.