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 Fedorze 25 VPS za pomocą Let's Encrypt , Certbot , Node.js , NPM , NGINX i MySQL .
semanage port -a -t http_port_t -p tcp 2368
.Sprawdź wersję Fedory:
cat /etc/fedora-release
# Fedora release 25 (Twenty Five)
Utwórz nowego użytkownika innego niż root :
useradd -c "John Doe" johndoe && passwd johndoe
Dodaj superużytkownika, dodając go do wheel
grupy:
usermod -aG wheel johndoe
Przełącz na nowego użytkownika:
su - johndoe
Zaktualizuj oprogramowanie systemu operacyjnego:
sudo dnf check-update || sudo dnf upgrade -y
Ustaw strefę czasową:
timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'
Zainstaluj narzędzia programistyczne:
sudo dnf install @development-tools -y
Zainstaluj edytor tekstu Vim i Wget:
sudo dnf install -y vim wget
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 dnf install -y certbot
Sprawdź wersję Certbot:
certbot --version
# certbot 0.14.1
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 obecnie obsługuje tylko 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 --silent --location https://rpm.nodesource.com/setup_6.x | sudo bash -
sudo dnf install -y nodejs
Sprawdź wersje Node.js i NPM:
node -v && npm -v
# v6.11.2
# 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 najnowszą wersję MySQL (obecnie 5.7 ) z oficjalnego repozytorium MySQL Dnf:
cd /tmp
# Adding the MySQL dnf Repository
wget https://dev.mysql.com/get/mysql57-community-release-fc25-10.noarch.rpm
sudo dnf install -y mysql57-community-release-fc25-10.noarch.rpm
# Installing MySQL
sudo dnf install -y mysql-community-server
Sprawdź wersję MySQL:
mysql --version
# mysql Ver 14.14 Distrib 5.7.19, for Linux (x86_64) using EditLine wrapper
Uruchom serwer MySQL i sprawdź jego status:
sudo systemctl start mysqld.service
sudo systemctl status mysqld.service
MySQL w wersji 5.7 lub nowszej generuje tymczasowe losowe hasło dla root
użytkownika MySQL po instalacji, a hasło jest przechowywane w pliku dziennika błędów MySQL znajdującym się pod adresem /var/log/mysqld.log
. Aby go ujawnić, użyj następującego polecenia:
sudo grep 'temporary password' /var/log/mysqld.log
Uruchom mysql_secure_installation
skrypt, aby trochę zabezpieczyć bazę danych:
UWAGA : Wtyczka walidacji hasła jest zainstalowana i włączona, więc nowe hasło dla
root
użytkownika musi być mocne ( jedna wielka litera, jedna mała litera, jedna cyfra i jeden znak specjalny oraz że całkowita długość hasła wynosi co najmniej 8 znaków ). Jeśli chcesz to rozluźnić lub całkowicie wyłączyć wtyczkę ( niezalecane ), zajrzyj do oficjalnej dokumentacji MySQL, jak to zrobić.
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 NGINX:
sudo dnf install -y nginx
Sprawdź, czy jest zainstalowany, sprawdzając wersję NGINX:
sudo nginx -v
# nginx version: nginx/1.10.2
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 nowe parametry Diffie-Hellmana ( 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;
listen 80;
listen [::]:443 ssl http2;
listen 443 ssl http2;
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;
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 użytkownika-ducha:
sudo useradd -c 'Ghost application' ghost
Pobierz Ghost:
curl -L https://github.com/TryGhost/Ghost/releases/download/0.11.11/Ghost-0.11.11.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 katalogu duchów:
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ść obiektu produkcyjnego 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 innego niż root , który utworzyłeś na początku:
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 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.11/docs
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? 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? 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? 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.