So installieren Sie MODX Revolution auf einem CentOS 7 LAMP VPS
Verwenden Sie ein anderes System? MODX Revolution ist ein schnelles, flexibles, skalierbares, kostenloses und Open-Source-Content-Management-System (CMS) für Unternehmen, das i
Ghost ist eine Open-Source-Blogging-Plattform, die seit ihrer Veröffentlichung im Jahr 2013 bei Entwicklern und normalen Benutzern immer beliebter wird. Der Fokus liegt auf Inhalten und Bloggen. Das Attraktivste an Ghost ist das einfache, saubere und reaktionsschnelle Design. Sie können Ihre Blog-Beiträge von einem Mobiltelefon aus schreiben. Inhalte für Ghost werden in der Markdown-Sprache geschrieben. Ghost eignet sich perfekt für Einzelpersonen oder kleine Gruppen von Schriftstellern.
In diesem Handbuch werden wir ein sicheres Ghost v0.11.x LTS- Blog auf einem CentOS 7.3 VPS mit Let's Encrypt , Certbot , Node.js , NPM , NGINX und MySQL einrichten und bereitstellen .
Überprüfen Sie die CentOS-Version:
cat /etc/centos-release
# CentOS Linux release 7.3.1611 (Core)
Erstellen Sie einen neuen Benutzer ohne Rootberechtigung :
useradd -c "John Doe" johndoe && passwd johndoe
Machen Sie es zum Superuser, indem Sie es der wheel
Gruppe hinzufügen :
usermod -aG wheel johndoe
Zum neuen Benutzer wechseln:
su - johndoe
Aktualisieren Sie die Software Ihres Betriebssystems:
sudo yum check-update || sudo yum update -y
Richten Sie die Zeitzone ein:
timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'
Installieren Sie die Entwicklungstools:
sudo yum groupinstall -y 'Development Tools'
Installieren Sie den Vim-Texteditor:
sudo yum install -y vim
Starten Sie das System bei Bedarf neu:
sudo shutdown -r now
ANMERKUNG : Bevor Sie mit diesem Schritt beginnen, stellen Sie sicher, dass Sie DNS- Einträge für Ihre Domain festgelegt haben.
Wir werden Let's Encrypt CA und den Certbot-Client von EFF verwenden, um das SSL / TLS- Zertifikat für unser Ghost-Blog zu erhalten. Vergessen Sie nicht, alle Instanzen von blog.domain.tld
durch Ihren Domainnamen zu ersetzen .
Aktivieren Sie das EPEL-Repository (Extra Packages for Enterprise Linux):
# Certbot is packaged in Extra Packages for Enterprise Linux (EPEL) repository. To use Certbot, you must first enable the EPEL repository.
sudo yum install -y epel-release
Installieren Sie die mit Python erstellte Zertifikatsverwaltungssoftware Certbot (ehemals Let's Encrypt Client ):
sudo yum install -y certbot
Überprüfen Sie die Certbot-Version:
certbot --version
# certbot 0.14.1
Erhalten Sie das RSA- Zertifikat mithilfe der eigenständigen Authentifizierungsmethode (Plugin):
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. . . .
# . . .
Nachdem Sie die vorherigen Schritte ausgeführt haben, befinden sich Ihr Zertifikat und Ihr privater Schlüssel im /etc/letsencrypt/live/blog.domain.tld
Verzeichnis.
HINWEIS : Ghost unterstützt derzeit nur die Node.js-Versionen 4.5+ und 6.9+.
Ghost basiert auf Node.js. Wir werden die empfohlene Version für Ghost installieren, die v6 Boron LTS
zum Zeitpunkt dieses Schreibens verfügbar ist .
Laden Sie Node.js v6 LTS herunter und installieren Sie es:
sudo curl --silent --location https://rpm.nodesource.com/setup_6.x | sudo bash -
sudo yum install -y nodejs
Überprüfen Sie die Node.js- und NPM-Version:
node -v && npm -v
# v6.11.2
# 3.10.10
Standardmäßig ist Ghost für die Verwendung einer SQLite-Datenbank konfiguriert, für die keine Konfiguration erforderlich ist.
Alternativ kann Ghost auch mit einer MySQL-Datenbank verwendet werden, indem die Datenbankkonfiguration geändert wird. Sie müssen zuerst eine Datenbank und einen Benutzer erstellen. Anschließend können Sie die vorhandene sqlite3-Konfiguration ändern.
Laden Sie die neueste Version von MySQL (derzeit 5.7 ) aus dem offiziellen MySQL Yum-Repository herunter und installieren Sie sie :
cd /tmp
# Adding the MySQL Yum Repository
wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
sudo yum localinstall -y mysql57-community-release-el7-11.noarch.rpm
# Installing MySQL
sudo yum install -y mysql-community-server
Überprüfen Sie die MySQL-Version:
mysql --version
# mysql Ver 14.14 Distrib 5.7.19, for Linux (x86_64) using EditLine wrapper
Starten Sie MySQL Server und überprüfen Sie den Status:
sudo systemctl start mysqld.service
sudo systemctl status mysqld.service
MySQL Version 5.7 oder höher generiert root
nach der Installation ein temporäres zufälliges Kennwort für den MySQL- Benutzer. Das Kennwort wird in der MySQL-Fehlerprotokolldatei unter gespeichert /var/log/mysqld.log
. Verwenden Sie den folgenden Befehl, um es anzuzeigen:
sudo grep 'temporary password' /var/log/mysqld.log
Führen Sie das mysql_secure_installation
Skript aus, um Ihre Datenbank ein wenig zu sichern:
HINWEIS : Das Plugin zur Kennwortüberprüfung ist installiert und aktiviert. Daher muss Ihr neues Kennwort für den
root
Benutzer sicher sein ( ein Großbuchstabe, ein Kleinbuchstabe, eine Ziffer und ein Sonderzeichen) und die Gesamtlänge des Kennworts beträgt mindestens 8 Zeichen ). Wenn Sie das lockern oder das Plugin vollständig deaktivieren möchten ( nicht empfohlen ), lesen Sie die offizielle MySQL-Dokumentation, um dies zu tun.
sudo mysql_secure_installation
Melden Sie sich als Root an MySQL an:
mysql -u root -p
# Enter password:
Erstellen Sie eine neue MySQL-Datenbank und einen neuen Benutzer:
create database dbname;
grant all on dbname.* to 'user' identified by 'password';
Beenden Sie MySQL:
exit
Laden Sie die neueste Hauptversion von NGINX aus dem offiziellen NGINX-Repository herunter und installieren Sie sie :
# Add the NGINX Yum Repository
sudo vim /etc/yum.repos.d/nginx_mainline.repo
# Copy/paste the following into /etc/yum.repos.d/nginx_mainline.repo
[nginx]
name=nginx repo
baseurl=https://nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck=1
enabled=1
wget https://nginx.org/keys/nginx_signing.key
sudo rpm --import nginx_signing.key
rm nginx_signing.key
sudo yum install -y nginx nginx-module-geoip nginx-module-image-filter nginx-module-njs nginx-module-perl nginx-module-xslt nginx-nr-agent
Stellen Sie sicher, dass es installiert ist, indem Sie die NGINX-Version überprüfen:
sudo nginx -v
# nginx version: nginx/1.13.3
Status prüfen, NGINX-Dienst (Daemon) aktivieren und starten:
sudo systemctl status nginx.service # inactive (dead)
sudo systemctl enable nginx.service
sudo systemctl start nginx.service
Erstellen Sie ein /etc/nginx/ssl
Verzeichnis und generieren Sie neue Diffie-Hellman ( DH ) -Parameter:
sudo mkdir -p /etc/nginx/ssl
sudo openssl dhparam -out /etc/nginx/ssl/dhparams-2048.pem 2048
Protokollverzeichnis für blog.domain.tld
virtuellen Host erstellen :
sudo mkdir -p /var/log/nginx/blog.domain.tld
Konfigurieren Sie NGINX als Reverse-Proxy-Server für HTTP ( S ):
sudo vim /etc/nginx/conf.d/ghost.conf
Fügen Sie Folgendes ein /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 "";
}
}
Speichern und testen Sie die NGINX-Konfiguration auf Syntaxfehler:
sudo nginx -t
Laden Sie die NGINX-Konfiguration neu:
sudo systemctl reload nginx.service
ANMERKUNG : Wenn Sie mehrere Ghost-Blogs auf demselben VPS hosten möchten, muss jede Ghost-Instanz auf einem separaten Port ausgeführt werden.
Dokumentstammverzeichnis erstellen:
sudo mkdir -p /var/www/
Erstellen Sie einen neuen Ghost-Benutzer:
sudo useradd -c 'Ghost application' ghost
Laden Sie Ghost herunter:
curl -L https://github.com/TryGhost/Ghost/releases/download/0.11.11/Ghost-0.11.11.zip -o ghost.zip
Entpacken Sie Ghost in das /var/www/ghost
Verzeichnis (empfohlener Installationsort):
sudo unzip -uo ghost.zip -d /var/www/ghost
rm ghost.zip
Wechseln Sie in das neue Geisterverzeichnis:
cd /var/www/ghost
Ändern Sie den Besitz des /var/www/ghost
Verzeichnisses:
sudo chown -R ghost:ghost .
Zum neuen ghost
Benutzer wechseln:
sudo su - ghost
Navigieren Sie zum Dokumentstamm /var/www/ghost
:
cd /var/www/ghost
Installieren Sie Ghost nur mit Produktionsabhängigkeiten. Wenn dies abgeschlossen ist, wird Ghost installiert:
npm install --production
Konfigurieren Geist durch Ändern url
, mail
und database
Eigentum des Fertigungsobjekt innerhalb der config.js
Datei:
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
},
// . . .
// . . .
HINWEIS : Sie sollten auch
Starten Sie Ghost in der Produktionsumgebung:
npm start --production
Ghost wird jetzt ausgeführt. Sowohl das Blog-Front-End als auch die Admin-Oberfläche sind mit HTTPS gesichert und HTTP / 2 funktioniert ebenfalls. Sie können Ihren Browser öffnen und die Website unter besuchen https://blog.domain.tld
. Vergessen Sie nicht, durch blog.domain.tld
Ihren Domainnamen zu ersetzen .
Beenden Sie den Ghost-Prozess, indem Sie CTRL
+ drücken, C
und beenden Sie den Ghost-Benutzer wieder zu dem Nicht-Root- Benutzer, den Sie zu Beginn erstellt haben:
exit
Wenn Sie Ihre Terminalsitzung mit Ihrem VPS schließen, wird auch Ihr Blog ausgefallen. Das ist nicht gut. Um dies zu vermeiden, werden wir systemd verwenden. Es wird unseren Blog rund um die Uhr auf dem Laufenden halten.
Erstellen Sie eine ghost.service
systemd-Einheitendatei. Führen Sie sudo aus sudo vim /etc/systemd/system/ghost.service
und kopieren Sie den folgenden Inhalt:
[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=/bin/npm start --production
ExecStop=/bin/npm stop --production
Restart=always
SyslogIdentifier=Ghost
[Install]
WantedBy=multi-user.target
Aktivieren und starten ghost.service
:
sudo systemctl enable ghost.service && sudo systemctl start ghost.service
ghost.service
Status prüfen :
sudo systemctl status ghost.service && sudo systemctl is-enabled ghost.service
Navigieren Sie zu https://blog.domain.tld/ghost/
einem Ghost-Administrator und erstellen Sie ihn. Mach das so schnell wie möglich!
Das ist es. Wir haben jetzt einen voll funktionsfähigen Ghost-Blog. Ihr Server liefert Inhalte über HTTP / 2, wenn dies vom Client unterstützt wird. Wenn Sie das Standard-Ghost- Design mit dem Namen Casper in ein benutzerdefiniertes ändern möchten , können Sie das Design einfach herunterladen, in den /var/www/ghost/content/themes
Ordner entpacken und über die Ghost-Administrationsoberfläche unter auswählen https://blog.domain.tld/ghost
.
Verwenden Sie ein anderes System? MODX Revolution ist ein schnelles, flexibles, skalierbares, kostenloses und Open-Source-Content-Management-System (CMS) für Unternehmen, das i
Verwenden Sie ein anderes System? Ghost ist eine Open-Source-Blogging-Plattform, die seit 201 bei Entwicklern und normalen Benutzern immer beliebter wird
Verwenden Sie ein anderes System? MODX Revolution ist ein schnelles, flexibles, skalierbares, kostenloses und Open-Source-Content-Management-System (CMS) für Unternehmen, das i
Verwenden Sie ein anderes System? Ghost ist eine Open-Source-Blogging-Plattform, die seit ihrer Veröffentlichung im Jahr 2013 bei Entwicklern und normalen Benutzern immer beliebter wird. ich
Vultr-Instanzen sind eine großartige Möglichkeit, Ihr WordPress-Blog auszuführen. Eine bemerkenswertere Erweiterung von WordPress ist jedoch WooCommerce, ein E-Commerce-Plugin, das th erweitert
Ghost ist der neueste und beste Emporkömmling, der es mit WordPress aufnehmen kann. Die Theme-Entwicklung ist schnell und einfach zu erlernen, da die Ghost-Entwickler beschlossen haben, beide zu verwenden
Einführung Je näher Sie Ihre OpenBSD-Installation an der Standardeinstellung und ohne so viele hinzugefügte Pakete halten, desto sicherer ist sie. Während die mehr Commo
Einführung WordPress ist das dominierende Content-Management-System im Internet. Es unterstützt alles von Blogs bis hin zu komplexen Websites mit dynamischen Inhalten
Ghost ist eine moderne Open-Source-Publishing-Plattform, die auf Node.js mit einem Ember.js-Admin-Client, einer JSON-API und einer von Handlebars.js unterstützten Design-API basiert. Ghos
Verwenden Sie ein anderes System? Ghost ist eine Open-Source-Blogging-Plattform, die seit 201 bei Entwicklern und normalen Benutzern immer beliebter wird
Verwenden Sie ein anderes System? MODX Revolution ist ein schnelles, flexibles, skalierbares, kostenloses und Open-Source-Content-Management-System (CMS) für Unternehmen, das i
Verwenden Sie ein anderes System? Dotclear ist eine sehr einfache Blogging-Engine. Es ist Open Source und einfach zu bedienen. Dieses Tutorial wird die Installation am durchlaufen
Eine übliche Verwendung eines virtuellen Vultr-Servers ist das Hosten von Wordpress-Websites. In diesem Handbuch erfahren Sie, wie Sie die Konfiguration eines virtuellen Servers über scratc automatisieren
Verwenden Sie ein anderes System? MODX Revolution ist ein schnelles, flexibles, skalierbares, kostenloses und Open-Source-Content-Management-System (CMS) für Unternehmen, das i
Verwenden Sie ein anderes System? Ghost ist eine Open-Source-Blogging-Plattform, die seit 201 bei Entwicklern und normalen Benutzern immer beliebter wird
Verwenden Sie ein anderes System? Fork ist ein Open-Source-CMS, das in PHP geschrieben wurde. Der Forks-Quellcode wird auf GitHub gehostet. Diese Anleitung zeigt Ihnen, wie Sie Fork CM installieren
Verwenden Sie ein anderes System? Dotclear ist eine sehr einfache Blog-Engine, die auf PHP basiert. In diesem Tutorial werden wir Dotclear unter Ubunt installieren
Verwenden Sie ein anderes System? Fork ist ein Open-Source-CMS, das in PHP geschrieben wurde. Der Forks-Quellcode wird auf GitHub gehostet. Diese Anleitung zeigt Ihnen, wie Sie Fork CM installieren
Verwenden Sie ein anderes System? Ghost ist eine Open-Source-Blogging-Plattform, die seit ihrer Veröffentlichung im Jahr 2013 bei Entwicklern und normalen Benutzern immer beliebter wird. ich
Ransomware-Angriffe nehmen zu, aber kann KI helfen, den neuesten Computervirus zu bekämpfen? Ist KI die Antwort? Lesen Sie hier, ob KI boone oder bane ist
ReactOS, ein quelloffenes und kostenloses Betriebssystem, ist hier mit der neuesten Version. Kann es den Anforderungen moderner Windows-Benutzer genügen und Microsoft zu Fall bringen? Lassen Sie uns mehr über dieses alte, aber neuere Betriebssystem erfahren.
Whatsapp hat endlich die Desktop-App für Mac- und Windows-Benutzer auf den Markt gebracht. Jetzt können Sie ganz einfach von Windows oder Mac auf WhatsApp zugreifen. Verfügbar für Windows 8+ und Mac OS 10.9+
Lesen Sie dies, um zu erfahren, wie Künstliche Intelligenz bei kleinen Unternehmen beliebt wird und wie sie die Wahrscheinlichkeit erhöht, sie wachsen zu lassen und ihren Konkurrenten einen Vorsprung zu verschaffen.
Vor kurzem hat Apple macOS Catalina 10.15.4 als Ergänzungsupdate veröffentlicht, um Probleme zu beheben, aber es scheint, dass das Update mehr Probleme verursacht, die zum Bricking von Mac-Computern führen. Lesen Sie diesen Artikel, um mehr zu erfahren
13 Tools zur kommerziellen Datenextraktion von Big Data
Unser Computer speichert alle Daten in einer organisierten Weise, die als Journaling-Dateisystem bekannt ist. Es ist eine effiziente Methode, die es dem Computer ermöglicht, Dateien zu suchen und anzuzeigen, sobald Sie auf die Suche klicken.https://wethegeek.com/?p=94116&preview=true
Da sich die Wissenschaft schnell weiterentwickelt und einen Großteil unserer Bemühungen übernimmt, steigt auch das Risiko, uns einer unerklärlichen Singularität auszusetzen. Lesen Sie, was Singularität für uns bedeuten könnte.
Ein Einblick in 26 Big-Data-Analysetechniken: Teil 1
KI im Gesundheitswesen hat in den letzten Jahrzehnten große Fortschritte gemacht. Somit wächst die Zukunft der KI im Gesundheitswesen immer noch von Tag zu Tag.