كيفية نشر Ghost v0.11 LTS على Fedora 25
استخدام نظام مختلف؟ Ghost هي منصة تدوين مفتوحة المصدر اكتسبت شعبية بين المطورين والمستخدمين العاديين منذ عام 201
Ghost هي منصة تدوين مفتوحة المصدر تكتسب شعبية بين المطورين والمستخدمين العاديين منذ إصدارها عام 2013. يركز على المحتوى والتدوين. الشيء الأكثر جاذبية في Ghost هو تصميمه البسيط والنظيف وسريع الاستجابة. يمكنك كتابة منشورات مدونتك من هاتف محمول. تتم كتابة محتوى Ghost باستخدام لغة التخفيض. إن Ghost مناسب تمامًا للأفراد أو مجموعات صغيرة من الكتاب.
في هذا الدليل ، سنقوم بإعداد ونشر مدونة Ghost v0.11.x LTS آمنة على Debian 8 VPS باستخدام Let's Encrypt و Certbot و Node.js و NPM و NGINX و MySQL .
تحقق من إصدار دبيان:
lsb_release -ds
# Debian GNU/Linux 8.9 (jessie)
إنشاء حساب مستخدم جديد غير جذري :
adduser johndoe --gecos "John Doe"
اجعله مستخدمًا فائقًا عن طريق إضافته إلى sudo
المجموعة:
usermod -aG sudo johndoe
التبديل إلى المستخدم الجديد:
su - johndoe
تحديث برنامج نظام التشغيل الخاص بك:
sudo apt-get update && sudo apt-get upgrade -y
إعداد المنطقة الزمنية:
sudo dpkg-reconfigure tzdata
قم بتثبيت الأدوات المطلوبة:
sudo apt-get install -y build-essential zip unzip git apt-transport-https
إعادة تشغيل النظام إذا لزم الأمر:
sudo shutdown -r now
ملاحظة : قبل البدء في هذه الخطوة ، تأكد من تعيين سجلات DNS لنطاقك.
سنستخدم برنامج Let's Encrypt CA و EFF Certbit للحصول على شهادة SSL / TLS لمدونة Ghost الخاصة بنا. لا تنس استبدال جميع مثيلات blog.domain.tld
اسم المجال الخاص بك.
قم بتثبيت برنامج إدارة الشهادات Certbot (المعروف سابقًا باسم Let's Encrypt Client ) المصنوع من Python:
sudo -s
printf "deb http://ftp.debian.org/debian jessie-backports main" >> /etc/apt/sources.list.d/jessie-backports.list
exit
sudo apt-get update
sudo apt-get install -y certbot -t jessie-backports
تحقق من إصدار Certbot:
certbot --version
# certbot 0.10.2
الحصول على شهادة RSA باستخدام طريقة المصادقة المستقلة (البرنامج المساعد):
sudo certbot certonly --standalone --domains blog.domain.tld --rsa-key-size 2048 --must-staple --email [email protected] --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. . . .
# . . .
بعد أن يمر الخطوات السابقة، يا شهادة و مفتاح خاص سيكون في /etc/letsencrypt/live/blog.domain.tld
الدليل.
ملاحظة : يدعم Ghost حاليًا إصدارات Node.js 4.5+ و 6.9+ فقط.
شبح مبني على Node.js. سنقوم بتثبيت الإصدار الموصى به لـ Ghost وهو v6 Boron LTS
وقت كتابة هذه السطور.
تنزيل وتثبيت Node.js v6 LTS:
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt-get install -y nodejs
تحقق من إصدار Node.js و NPM:
node -v && npm -v
# v6.11.2
# 3.10.10
بشكل افتراضي ، يأتي Ghost مضبوطًا لاستخدام قاعدة بيانات SQLite ، والتي لا تتطلب أي تكوين.
بدلاً من ذلك ، يمكن استخدام Ghost أيضًا مع قاعدة بيانات MySQL عن طريق تغيير تكوين قاعدة البيانات. يجب عليك إنشاء قاعدة بيانات ومستخدم أولاً ، يمكنك بعد ذلك تغيير تكوين sqlite3 الحالي.
تنزيل وتثبيت MySQL:
sudo apt-get install -y mysql-server
ملاحظة : أثناء التثبيت ، ستتم مطالبتك بكلمة مرور مستخدم MySQL "الجذر". يجب عليك تعيين كلمة مرور آمنة لمستخدم MySQL "الجذر".
تحقق من نسخة MySQL:
mysql --version
# mysql Ver 14.14 Distrib 5.5.57, for debian-linux-gnu (x86_64) using readline 6.3
تحقق مما إذا كان برنامج MySQL daemon قد بدأ ويعمل:
sudo systemctl status mysql.service
sudo systemctl is-enabled mysql.service
قم بتشغيل mysql_secure_installation
البرنامج النصي لتأمين قاعدة البيانات الخاصة بك قليلا:
sudo mysql_secure_installation
قم بتسجيل الدخول إلى MySQL كمستخدم أساسي:
mysql -u root -p
# Enter password:
إنشاء قاعدة بيانات MySQL جديدة ومستخدم:
create database dbname;
grant all on dbname.* to 'user' identified by 'password';
الخروج من MySQL:
exit
قم بتنزيل وتثبيت أحدث إصدار رئيسي من NGINX من مستودع 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/debian/ `lsb_release -sc` nginx \ndeb-src https://nginx.org/packages/mainline/debian/ `lsb_release -sc` nginx \n" >> /etc/apt/sources.list.d/nginx_mainline.list
exit
sudo apt-get update
sudo apt-get install -y nginx nginx-module-geoip nginx-module-image-filter nginx-module-njs nginx-module-perl nginx-module-xslt nginx-nr-agent
تحقق من تثبيته عن طريق التحقق من إصدار NGINX:
sudo nginx -v
# nginx version: nginx/1.13.4
التحقق من الحالة وتمكين وبدء خدمة NGINX (البرنامج الخفي):
sudo systemctl status nginx.service # inactive (dead)
sudo systemctl enable nginx.service
sudo systemctl start nginx.service
إنشاء /etc/nginx/ssl
دليل وإنشاء مجموعة Diffie-Hellman ( DH ) جديدة:
sudo mkdir -p /etc/nginx/ssl
sudo openssl dhparam -out /etc/nginx/ssl/dhparams-2048.pem 2048
إنشاء دليل سجل blog.domain.tld
للمضيف الظاهري:
sudo mkdir -p /var/log/nginx/blog.domain.tld
تكوين NGINX كخادم وكيل عكسي HTTP ( S ):
sudo vim /etc/nginx/conf.d/ghost.conf
قم بلصق التالي في /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; # Change to your domain/hostname
root /var/www/ghost; # Change to the path where Ghost is
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 "";
}
}
حفظ واختبار تكوين NGINX بحثًا عن أخطاء في البنية:
sudo nginx -t
إعادة تحميل تهيئة NGINX:
sudo systemctl reload nginx.service
ملاحظة : إذا كنت ترغب في استضافة العديد من مدونات Ghost على نفس VPS ، فيجب تشغيل كل مثيل Ghost على منفذ منفصل.
قم بإنشاء دليل جذر المستند:
sudo mkdir -p /var/www/
إنشاء ghost
مستخدم جديد :
sudo adduser --shell /bin/bash --gecos 'Ghost application' --disabled-password ghost
تنزيل Ghost:
curl -L https://github.com/TryGhost/Ghost/releases/download/0.11.11/Ghost-0.11.11.zip -o ghost.zip
فك ضغط Ghost في /var/www/ghost
الدليل (موقع التثبيت الموصى به):
sudo unzip -uo ghost.zip -d /var/www/ghost
rm ghost.zip
انتقل إلى ghost
الدليل الجديد :
cd /var/www/ghost
تغيير ملكية /var/www/ghost
الدليل:
sudo chown -R ghost:ghost .
التبديل إلى ghost
مستخدم جديد :
sudo su - ghost
انتقل إلى جذر المستند /var/www/ghost
:
cd /var/www/ghost
قم بتثبيت Ghost مع تبعيات الإنتاج فقط. عند اكتمال ذلك ، يتم تثبيت Ghost:
npm install --production
شبح تكوين عن طريق تغيير url
، mail
و database
ممتلكات إنتاج الكائن داخل config.js
ملف:
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
},
// . . .
// . . .
ملاحظة : يجب عليك تكوين إعدادات البريد أيضًا. راجع وثائق Ghost الرسمية حول كيفية القيام بذلك.
ابدأ Ghost في بيئة الإنتاج:
npm start --production
سيتم تشغيل Ghost الآن. يتم تأمين الواجهة الأمامية للمدونة وواجهة المشرف باستخدام HTTPS ويعمل HTTP / 2 أيضًا. يمكنك فتح متصفحك وزيارة الموقع على https://blog.domain.tld
. لا تنس أن تستبدل blog.domain.tld
اسم المجال الخاص بك.
قم بإيقاف تشغيل عملية Ghost بالضغط على CTRL
+ C
والخروج من ghost
المستخدم إلى المستخدم الجذر:
exit
إذا أغلقت جلسة عمل المحطة الطرفية باستخدام VPS ، فسوف تنخفض مدونتك أيضًا. هذا ليس جيدا. لتجنب ذلك ، سنستخدم Systemd. ستبقي مدونتنا حتى 24/7.
إنشاء ghost.service
ملف وحدة Systemd. قم بتشغيل sudo vim /etc/systemd/system/ghost.service
ونسخ / لصق المحتوى التالي:
[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
تمكين وبدء ghost.service
:
sudo systemctl enable ghost.service && sudo systemctl start ghost.service
التحقق من ghost.service
الحالة:
sudo systemctl status ghost.service && sudo systemctl is-enabled ghost.service
انتقل إلى https://blog.domain.tld/ghost/
مستخدم مسؤول Ghost وأنشئه. نفذ ذلك في أسرع ما يمكن!
هذا هو. لدينا الآن مدونة Ghost تعمل بكامل طاقتها. يقوم الخادم الخاص بك بتوصيل المحتوى عبر HTTP / 2 عندما يدعمه العميل. إذا كنت ترغب في تغيير سمة Ghost الافتراضية المسماة Casper إلى سمة مخصصة ، فيمكنك فقط تنزيل السمة وفك ضغطها في /var/www/ghost/content/themes
المجلد وتحديدها عبر واجهة إدارة Ghost ، الموجودة في https://blog.domain.tld/ghost
.
استخدام نظام مختلف؟ Ghost هي منصة تدوين مفتوحة المصدر اكتسبت شعبية بين المطورين والمستخدمين العاديين منذ عام 201
مقدمة WordPress هو نظام إدارة المحتوى المهيمن على الإنترنت. يعمل على تشغيل كل شيء من المدونات إلى مواقع الويب المعقدة ذات المحتوى الديناميكي
استخدام نظام مختلف؟ Fork هو CMS مفتوح المصدر مكتوب بلغة PHP. رمز مصدر فوركس مستضاف على جيثب. سيوضح لك هذا الدليل كيفية تثبيت Fork CM
الاستخدام الشائع لخادم Vultr الظاهري هو استضافة مواقع Wordpress. يوضح لك هذا الدليل كيفية أتمتة تكوين خادم افتراضي من scratc
Ghost عبارة عن منصة نشر حديثة مفتوحة المصدر مبنية على Node.js مع عميل مشرف Ember.js وواجهة برمجة تطبيقات JSON وواجهة برمجة تطبيقات للسمات مدعومة من Handlebars.js. غص
استخدام نظام مختلف؟ Ghost هي منصة تدوين مفتوحة المصدر اكتسبت شعبية بين المطورين والمستخدمين العاديين منذ عام 201
تعد مثيلات Vultr طريقة رائعة لتشغيل مدونة WordPress الخاصة بك ، ولكن امتدادًا بارزًا لـ WordPress هو WooCommerce ، وهو مكون إضافي للتجارة الإلكترونية يمتد
استخدام نظام مختلف؟ Fork هو CMS مفتوح المصدر مكتوب بلغة PHP. رمز مصدر فوركس مستضاف على جيثب. سيوضح لك هذا الدليل كيفية تثبيت Fork CM
استخدام نظام مختلف؟ MODX Revolution عبارة عن نظام إدارة محتوى (CMS) سريع ومرن وقابل للتوسيع ومجاني ومفتوح المصدر ومكتوب
استخدام نظام مختلف؟ MODX Revolution عبارة عن نظام إدارة محتوى (CMS) سريع ومرن وقابل للتوسيع ومفتوح المصدر ومكتوب بلغة PHP. أنا
استخدام نظام مختلف؟ Fork هو CMS مفتوح المصدر مكتوب بلغة PHP. رمز مصدر فوركس مستضاف على جيثب. سيوضح لك هذا الدليل كيفية تثبيت Fork CM
استخدام نظام مختلف؟ MODX Revolution عبارة عن نظام إدارة محتوى (CMS) سريع ومرن وقابل للتوسيع ومجاني ومفتوح المصدر ومكتوب
استخدام نظام مختلف؟ Ghost هي منصة تدوين مفتوحة المصدر تكتسب شعبية بين المطورين والمستخدمين العاديين منذ إصدارها عام 2013. أنا
استخدام نظام مختلف؟ Ghost هي منصة تدوين مفتوحة المصدر تكتسب شعبية بين المطورين والمستخدمين العاديين منذ إصدارها عام 2013. أنا
استخدام نظام مختلف؟ Dotclear هو محرك تدوين بسيط للغاية. إنه مفتوح المصدر وسهل الاستخدام. سيذهب هذا البرنامج التعليمي خلال التثبيت
استخدام نظام مختلف؟ MODX Revolution عبارة عن نظام إدارة محتوى (CMS) سريع ومرن وقابل للتوسيع ومجاني ومفتوح المصدر ومكتوب
Ghost هو أحدث وأكبر مبتدئ لمنافس وورد. تطوير السمة سريع وسهل التعلم لأن مطوري Ghost قرروا استخدام كل من th
استخدام نظام مختلف؟ Jekyll هو بديل جيد لـ WordPress. لا يتطلب أي قواعد بيانات ويعمل مع لغة كثير من الذكاء مألوفة
مقدمة كلما اقتربت من تثبيت OpenBSD بشكل افتراضي وبدون العديد من الحزم المضافة ، كلما كانت أكثر أمانًا. في حين أن المزيد كومو
Neos هو نظام مبتكر لإدارة المحتوى مفتوح المصدر وهو رائع لإنشاء وتحرير المحتوى عبر الإنترنت. مع وضع المؤلفين والمحررين في الاعتبار ، Neo
نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول
يعرف الكثير منكم أن Switch سيصدر في مارس 2017 وميزاته الجديدة. بالنسبة لأولئك الذين لا يعرفون ، قمنا بإعداد قائمة بالميزات التي تجعل "التبديل" "أداة لا غنى عنها".
هل تنتظر عمالقة التكنولوجيا للوفاء بوعودهم؟ تحقق من ما تبقى دون تسليم.
اقرأ المدونة لمعرفة الطبقات المختلفة في بنية البيانات الضخمة ووظائفها بأبسط طريقة.
اقرأ هذا لمعرفة مدى انتشار الذكاء الاصطناعي بين الشركات الصغيرة وكيف أنه يزيد من احتمالات نموها ومنح منافسيها القدرة على التفوق.
لقد أصبح حل CAPTCHA صعبًا جدًا على المستخدمين في السنوات القليلة الماضية. هل ستكون قادرة على أن تظل فعالة في اكتشاف البريد العشوائي والروبوتات في المستقبل القريب؟
مع تطور العلم بمعدل سريع ، واستلام الكثير من جهودنا ، تزداد أيضًا مخاطر تعريض أنفسنا إلى تفرد غير قابل للتفسير. اقرأ ، ماذا يمكن أن يعني التفرد بالنسبة لنا.
ما هو التطبيب عن بعد والرعاية الصحية عن بعد وأثره على الأجيال القادمة؟ هل هو مكان جيد أم لا في حالة الوباء؟ اقرأ المدونة لتجد طريقة عرض!
ربما سمعت أن المتسللين يكسبون الكثير من المال ، لكن هل تساءلت يومًا كيف يجنون هذا النوع من المال؟ دعنا نناقش.
أصدرت Apple مؤخرًا macOS Catalina 10.15.4 تحديثًا تكميليًا لإصلاح المشكلات ولكن يبدو أن التحديث يتسبب في المزيد من المشكلات التي تؤدي إلى إنشاء أجهزة macOS. قراءة هذه المادة لمعرفة المزيد