كيفية نشر Ghost v0.11 LTS على Fedora 25
استخدام نظام مختلف؟ Ghost هي منصة تدوين مفتوحة المصدر اكتسبت شعبية بين المطورين والمستخدمين العاديين منذ عام 201
Ghost هي منصة تدوين مفتوحة المصدر تكتسب شعبية بين المطورين والمستخدمين العاديين منذ إصدارها عام 2013. يركز على المحتوى والتدوين. الشيء الأكثر جاذبية في Ghost هو تصميمه البسيط والنظيف وسريع الاستجابة. يمكنك كتابة منشورات مدونتك من هاتف محمول. تتم كتابة محتوى Ghost باستخدام لغة التخفيض. Ghost مناسب تمامًا للأفراد أو مجموعات صغيرة من الكتاب.
في هذا الدليل سنقوم بإعداد ونشر مدونة Ghost v0.11.x LTS آمنة على CentOS 7.3 VPS باستخدام Let's Encrypt و Certbot و Node.js و NPM و NGINX و MySQL .
تحقق من إصدار CentOS:
cat /etc/centos-release
# CentOS Linux release 7.3.1611 (Core)
إنشاء مستخدم جديد غير جذري :
useradd -c "John Doe" johndoe && passwd johndoe
اجعله مستخدمًا فائقًا عن طريق إضافته إلى wheel
المجموعة:
usermod -aG wheel johndoe
التبديل إلى مستخدم جديد:
su - johndoe
تحديث برنامج نظام التشغيل الخاص بك:
sudo yum check-update || sudo yum update -y
إعداد المنطقة الزمنية:
timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'
تثبيت أدوات التطوير:
sudo yum groupinstall -y 'Development Tools'
تثبيت محرر نص Vim:
sudo yum install -y vim
إعادة تشغيل النظام إذا لزم الأمر:
sudo shutdown -r now
ملاحظة : قبل البدء في هذه الخطوة ، تأكد من تعيين سجلات DNS لنطاقك.
سنستخدم برنامج Let's Encrypt CA و EFF Certbit للحصول على شهادة SSL / TLS لمدونة Ghost الخاصة بنا. لا تنس استبدال جميع مثيلات blog.domain.tld
اسم المجال الخاص بك.
تمكين الحزم الإضافية لمستودع Enterprise Linux (EPEL):
# 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
قم بتثبيت برنامج إدارة الشهادات Certbot (المعروف سابقًا باسم Let's Encrypt Client ) المصنوع من Python:
sudo yum install -y certbot
تحقق من إصدار Certbot:
certbot --version
# certbot 0.14.1
الحصول على شهادة RSA باستخدام طريقة المصادقة المستقلة (البرنامج المساعد):
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. . . .
# . . .
بعد أن يمر الخطوات السابقة، يا شهادة و مفتاح خاص سيكون في /etc/letsencrypt/live/blog.domain.tld
الدليل.
ملاحظة : يدعم Ghost حاليًا إصدارات Node.js 4.5+ و 6.9+ فقط.
شبح مبني على Node.js. سنقوم بتثبيت الإصدار الموصى به لـ Ghost وهو v6 Boron LTS
وقت كتابة هذه السطور.
تنزيل وتثبيت Node.js v6 LTS:
sudo curl --silent --location https://rpm.nodesource.com/setup_6.x | sudo bash -
sudo yum install -y nodejs
تحقق من إصدار Node.js و NPM:
node -v && npm -v
# v6.11.2
# 3.10.10
بشكل افتراضي ، يأتي Ghost مضبوطًا لاستخدام قاعدة بيانات SQLite ، والتي لا تتطلب أي تكوين.
بدلاً من ذلك ، يمكن استخدام Ghost أيضًا مع قاعدة بيانات MySQL عن طريق تغيير تكوين قاعدة البيانات. يجب عليك إنشاء قاعدة بيانات ومستخدم أولاً ، يمكنك بعد ذلك تغيير تكوين sqlite3 الحالي.
قم بتنزيل وتثبيت أحدث إصدار من MySQL (حاليًا 5.7 ) من مستودع MySQL Yum الرسمي:
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
تحقق من نسخة MySQL:
mysql --version
# mysql Ver 14.14 Distrib 5.7.19, for Linux (x86_64) using EditLine wrapper
ابدأ MySQL Server وتحقق من حالته:
sudo systemctl start mysqld.service
sudo systemctl status mysqld.service
يولد MySQL الإصدار 5.7 أو أعلى كلمة مرور عشوائية مؤقتة root
لمستخدم MySQL بعد تخزين التثبيت وكلمة المرور في ملف سجل أخطاء MySQL ، الموجود في /var/log/mysqld.log
. للكشف عنها ، استخدم الأمر التالي:
sudo grep 'temporary password' /var/log/mysqld.log
قم بتشغيل mysql_secure_installation
البرنامج النصي لتأمين قاعدة البيانات الخاصة بك قليلا:
ملاحظة : تم تثبيت البرنامج الإضافي للتحقق من صحة كلمة المرور وتمكينه ، لذا
root
يجب أن تكون كلمة المرور الجديدة للمستخدم قوية ( حرف واحد كبير وحرف صغير واحد ورقم واحد وحرف خاص واحد ، وأن إجمالي طول كلمة المرور هو 8 أحرف على الأقل ). إذا كنت ترغب في تخفيف ذلك أو تعطيل البرنامج المساعد تمامًا ( غير مستحسن ) ، فاستشر وثائق MySQL الرسمية لمعرفة كيفية القيام بذلك.
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 الرسمي:
# 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
تحقق من تثبيته عن طريق التحقق من إصدار NGINX:
sudo nginx -v
# nginx version: nginx/1.13.3
التحقق من الحالة وتمكين وبدء خدمة 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;
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 "";
}
}
حفظ واختبار تكوين NGINX بحثًا عن أخطاء في البنية:
sudo nginx -t
إعادة تحميل تهيئة NGINX:
sudo systemctl reload nginx.service
ملاحظة : إذا كنت ترغب في استضافة العديد من مدونات Ghost على نفس VPS ، فيجب تشغيل كل مثيل Ghost على منفذ منفصل.
إنشاء دليل جذر المستند:
sudo mkdir -p /var/www/
إنشاء مستخدم شبح جديد:
sudo useradd -c 'Ghost application' 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
الانتقال إلى دليل الأشباح الجديد:
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 في بيئة الإنتاج:
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 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=/bin/npm start --production
ExecStop=/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. قراءة هذه المادة لمعرفة المزيد