วิธีการปรับใช้ Ghost v0.11 LTS บน CentOS 7.3

Ghostเป็นแพลตฟอร์มบล็อกโอเพ่นซอร์สที่ได้รับความนิยมในหมู่ผู้พัฒนาและผู้ใช้ทั่วไปตั้งแต่ปี 2013 มันให้ความสำคัญกับเนื้อหาและบล็อก สิ่งที่น่าสนใจที่สุดเกี่ยวกับ Ghost คือการออกแบบที่เรียบง่ายสะอาดตาและตอบสนองได้ดี คุณสามารถเขียนบทความบล็อกของคุณจากโทรศัพท์มือถือ เนื้อหาสำหรับ Ghost เขียนโดยใช้ภาษา Markdown ผีเหมาะสำหรับบุคคลหรือกลุ่มนักเขียนขนาดเล็ก

ในคู่มือนี้เราจะไปติดตั้งและปรับใช้ระบบรักษาความปลอดภัยผี v0.11.x LTSบล็อกใน CentOS 7.3 VPS ใช้Let 's เข้ารหัส , Certbot , Node.js , NPM , NGINXและMySQL

ความต้องการ

  • ลงทะเบียน (ซื้อ) ชื่อโดเมน
  • CentOS 7.3 เช่นเซิร์ฟเวอร์กับต่ำสุดของRAM 1GB
  • ผู้ใช้ Sudo

ก่อนที่คุณจะเริ่ม

  1. ตรวจสอบเวอร์ชั่น CentOS:

    cat /etc/centos-release
    # CentOS Linux release 7.3.1611 (Core)
    
  2. สร้างผู้ใช้ที่ไม่ใช่รูทใหม่:

    useradd -c "John Doe" johndoe && passwd johndoe
    
  3. ทำให้เป็น superuser โดยเพิ่มลงในwheelกลุ่ม:

    usermod -aG wheel johndoe
    
  4. เปลี่ยนเป็นผู้ใช้ใหม่:

    su - johndoe
    
  5. อัปเดตซอฟต์แวร์ของระบบปฏิบัติการของคุณ:

    sudo yum check-update || sudo yum update -y
    
  6. ตั้งค่าเขตเวลา:

    timedatectl list-timezones
    sudo timedatectl set-timezone 'Region/City'
    
  7. ติดตั้งเครื่องมือพัฒนา:

    sudo yum groupinstall -y 'Development Tools'
    
  8. ติดตั้ง Vim text editor:

    sudo yum install -y vim
    
  9. รีบูทระบบหากจำเป็น:

    sudo shutdown -r now
    

ติดตั้ง Certbot

หมายเหตุ : ก่อนเริ่มขั้นตอนนี้ตรวจสอบให้แน่ใจว่าคุณได้ตั้งค่าระเบียนDNSสำหรับโดเมนของคุณแล้ว

พวกเราจะไปใช้Let 's เข้ารหัส CAและเอฟเอฟ 's ลูกค้า Certbot ที่จะได้รับการเข้ารหัส SSL / TLSใบรับรองสำหรับบล็อกผีของเรา อย่าลืมแทนที่ทุกกรณีblog.domain.tldด้วยชื่อโดเมนของคุณ

  1. เปิดใช้งานที่เก็บ Extra Packages สำหรับ 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
    
  2. ติดตั้งซอฟต์แวร์การจัดการใบรับรองCertbot (ชื่อเดิมLet's Encrypt ) ที่สร้างด้วย Python:

    sudo yum install -y certbot
    
  3. ตรวจสอบรุ่น Certbot:

    certbot --version
    # certbot 0.14.1
    
  4. รับใบรับรอง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ไดเรกทอรี

ติดตั้ง Node.js และ NPM

หมายเหตุ : ขณะนี้ Ghost รองรับ Node.js เวอร์ชัน 4.5+ และ 6.9+ เท่านั้น

Ghost ถูกสร้างขึ้นบน Node.js เรากำลังจะติดตั้งรุ่นที่แนะนำสำหรับ Ghost ซึ่งเป็นv6 Boron LTSช่วงเวลาของการเขียนนี้

  1. ดาวน์โหลดและติดตั้ง Node.js v6 LTS:

    sudo curl --silent --location https://rpm.nodesource.com/setup_6.x | sudo bash -
    sudo yum install -y nodejs
    
  2. ตรวจสอบรุ่น Node.js และ NPM:

    node -v && npm -v
    # v6.11.2
    # 3.10.10
    

ติดตั้ง MySQL

โดยค่าเริ่มต้น Ghost จะถูกกำหนดค่าให้ใช้ฐานข้อมูล SQLite ซึ่งไม่ต้องการการกำหนดค่า

อีกวิธีหนึ่งคือ Ghost สามารถใช้กับฐานข้อมูล MySQL โดยเปลี่ยนการกำหนดค่าฐานข้อมูล คุณต้องสร้างฐานข้อมูลและผู้ใช้ก่อนจากนั้นคุณสามารถเปลี่ยนการกำหนดค่า sqlite3 ที่มีอยู่

  1. ดาวน์โหลดและติดตั้ง MySQL รุ่นล่าสุด (ปัจจุบัน5.7 ) จากแหล่งเก็บ MySQL อย่างเป็นทางการ:

    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
    
  2. ตรวจสอบรุ่น MySQL:

    mysql --version
    # mysql  Ver 14.14 Distrib 5.7.19, for Linux (x86_64) using  EditLine wrapper
    
  3. เริ่ม MySQL Server และตรวจสอบสถานะ:

    sudo systemctl start mysqld.service
    sudo systemctl status mysqld.service
    
  4. MySQL เวอร์ชัน 5.7 หรือสูงกว่าจะสร้างรหัสผ่านแบบสุ่มชั่วคราวสำหรับ MySQL rootผู้ใช้หลังจากการติดตั้งและรหัสผ่านจะถูกเก็บไว้ในแฟ้มบันทึกข้อผิดพลาด MySQL /var/log/mysqld.logตั้งอยู่ที่ หากต้องการเปิดเผยให้ใช้คำสั่งต่อไปนี้:

    sudo grep 'temporary password' /var/log/mysqld.log
    
  5. รันmysql_secure_installationสคริปต์เพื่อรักษาความปลอดภัยฐานข้อมูลของคุณ:

    หมายเหตุ : มีการติดตั้งและเปิดใช้งานปลั๊กอินการตรวจสอบรหัสผ่านดังนั้นรหัสผ่านใหม่ของคุณสำหรับrootผู้ใช้จะต้องแข็งแรง ( ตัวอักษรตัวพิมพ์ใหญ่หนึ่งตัวอักษรตัวพิมพ์เล็กหนึ่งตัวหนึ่งตัวเลขหนึ่งตัวและอักขระพิเศษหนึ่งตัวและความยาวรหัสผ่านทั้งหมด ) หากคุณต้องการที่จะผ่อนคลายหรือปิดการใช้งานปลั๊กอินอย่างสมบูรณ์ ( ไม่แนะนำ ) ให้อ่านเอกสารทางการของ MySQL ว่าจะทำอย่างไร

    sudo mysql_secure_installation
    
  6. เข้าสู่ระบบ MySQL ในฐานะผู้ใช้รูท:

    mysql -u root -p
    # Enter password:
    
  7. สร้างฐานข้อมูล MySQL และผู้ใช้ใหม่:

    create database dbname;
    grant all on dbname.* to 'user' identified by 'password';
    
  8. ออกจาก MySQL:

    exit
    

ติดตั้ง NGINX

  1. ดาวน์โหลดและติดตั้งล่าสุดฉีดรุ่นของ 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
    
  2. ตรวจสอบว่ามีการติดตั้งโดยตรวจสอบรุ่น NGINX:

    sudo nginx -v
    # nginx version: nginx/1.13.3
    
  3. ตรวจสอบสถานะเปิดใช้งานและเริ่มบริการ NGINX (daemon):

    sudo systemctl status nginx.service # inactive (dead)
    sudo systemctl enable nginx.service
    sudo systemctl start nginx.service
    
  4. สร้าง/etc/nginx/sslไดเรกทอรีและสร้างพารามิเตอร์Diffie-Hellman ( DH ) ใหม่:

    sudo mkdir -p /etc/nginx/ssl
    sudo openssl dhparam -out /etc/nginx/ssl/dhparams-2048.pem 2048
    
  5. สร้างไดเรกทอรีบันทึกสำหรับblog.domain.tldโฮสต์เสมือน:

    sudo mkdir -p /var/log/nginx/blog.domain.tld
    
  6. กำหนดค่า NGINX เป็นพร็อกซีเซิร์ฟเวอร์ย้อนกลับHTTP ( S ):

    sudo vim /etc/nginx/conf.d/ghost.conf
    
  7. วางต่อไปนี้ใน/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 "";
        }
    }
    
  8. บันทึกและทดสอบการกำหนดค่า NGINX เพื่อหาข้อผิดพลาดทางไวยากรณ์:

    sudo nginx -t
    
  9. โหลดการกำหนดค่า NGINX ซ้ำ:

    sudo systemctl reload nginx.service
    

ติดตั้ง Ghost

หมายเหตุ : หากคุณต้องการโฮสต์ Ghost หลายบล็อกใน VPS เดียวกันอินสแตนซ์ Ghost แต่ละรายการต้องทำงานบนพอร์ตแยกต่างหาก

  1. สร้างไดเรกทอรีรากของเอกสาร:

    sudo mkdir -p /var/www/
    
  2. สร้างผู้ใช้ผีใหม่:

    sudo useradd -c 'Ghost application' ghost
    
  3. ดาวน์โหลด Ghost:

    curl -L https://github.com/TryGhost/Ghost/releases/download/0.11.11/Ghost-0.11.11.zip -o ghost.zip
    
  4. Unzip Ghost ใน/var/www/ghostไดเรกทอรี (ตำแหน่งการติดตั้งที่แนะนำ):

    sudo unzip -uo ghost.zip -d /var/www/ghost
    rm ghost.zip
    
  5. ย้ายไปที่ไดเรกทอรีผีใหม่:

    cd /var/www/ghost
    
  6. เปลี่ยนความเป็นเจ้าของ/var/www/ghostไดเรกทอรี:

    sudo chown -R ghost:ghost .
    
  7. เปลี่ยนเป็นghostผู้ใช้ใหม่:

    sudo su - ghost
    
  8. นำทางไปยังเอกสารรูท/var/www/ghost:

    cd /var/www/ghost
    
  9. ติดตั้ง Ghost พร้อมการอ้างอิงการผลิตเท่านั้น เมื่อสิ่งนี้เสร็จสิ้น Ghost จะถูกติดตั้ง:

    npm install --production
    
  10. ผีกำหนดค่าโดยการเปลี่ยน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
        },
        // . . .
        // . . .
    

    หมายเหตุ : คุณควรกำหนดการmailตั้งค่าด้วย ศึกษาเอกสารผีอย่างเป็นทางการเกี่ยวกับวิธีการทำ

  11. เริ่ม Ghost ในสภาพแวดล้อมการผลิต:

    npm start --production
    

    ตอนนี้ Ghost จะเริ่มทำงาน ทั้งบล็อกหน้าและส่วนต่อประสานผู้ดูแลระบบปลอดภัยด้วย HTTPS และ HTTP / 2 ก็ใช้งานได้ https://blog.domain.tldคุณสามารถเปิดเบราว์เซอร์และเยี่ยมชมเว็บไซต์ของคุณได้ที่ อย่าลืมแทนที่blog.domain.tldด้วยชื่อโดเมนของคุณ

  12. ปิดกระบวนการผีโดยการกดCTRL+ Cและออกจากผู้ใช้งานโกสต์กลับไปที่ผู้ใช้ที่ไม่ใช่รูทที่คุณสร้างไว้ในตอนต้น:

    exit
    

ใช้ Ghost เป็นบริการระบบ

หากคุณปิดเซสชันเทอร์มินัลด้วย VPS บล็อกของคุณจะหยุดทำงานเช่นกัน นั่นไม่ดีเลย เพื่อหลีกเลี่ยงปัญหานี้เราจะใช้ systemd มันจะทำให้บล็อกของเราขึ้น 24/7

  1. สร้าง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
    
  2. เปิดใช้งานและเริ่มต้นghost.service:

    sudo systemctl enable ghost.service && sudo systemctl start ghost.service
    
  3. ตรวจสอบghost.serviceสถานะ:

    sudo systemctl status ghost.service && sudo systemctl is-enabled ghost.service
    
  4. นำทางไปยังhttps://blog.domain.tld/ghost/และสร้างผู้ใช้ Ghost admin ทำสิ่งนี้โดยเร็วที่สุด!

ข้อสรุป

แค่นั้นแหละ. ขณะนี้เรามีบล็อก Ghost ที่ทำงานได้อย่างสมบูรณ์ เซิร์ฟเวอร์ของคุณกำลังส่งเนื้อหาผ่าน HTTP / 2 เมื่อไคลเอ็นต์ได้รับการสนับสนุน หากคุณต้องการที่จะเปลี่ยนรูปแบบผีเริ่มต้นที่เรียกว่าแคสเปอร์จะเป็นหนึ่งที่กำหนดเองคุณก็สามารถดาวน์โหลดและเปิดเครื่องรูดธีมลงในโฟลเดอร์และเลือกผ่านทางอินเตอร์เฟซผู้ดูแลระบบผีตั้งอยู่ที่/var/www/ghost/content/themeshttps://blog.domain.tld/ghost



Leave a Comment

วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7 LAMP VPS

วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7 LAMP VPS

เรียนรู้วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7; ระบบการจัดการเนื้อหา Headless ที่มีความยืดหยุ่นสูงและปลอดภัย

ตั้งค่า Nginx บน Ubuntu เพื่อสตรีมวิดีโอสด HLS

ตั้งค่า Nginx บน Ubuntu เพื่อสตรีมวิดีโอสด HLS

เรียนรู้วิธีการตั้งค่า Nginx บน Ubuntu สำหรับการสตรีมวิดีโอสด HLS ด้วยคำแนะนำที่ชัดเจนและเป็นประโยชน์

การสำรองข้อมูลยอดนิยมด้วย Percona XtraBackup บนแอพ WordPress แบบคลิกเดียว

การสำรองข้อมูลยอดนิยมด้วย Percona XtraBackup บนแอพ WordPress แบบคลิกเดียว

เรียนรู้การใช้ Percona XtraBackup สำหรับการสำรองข้อมูลด้วยวิธีที่เป็นระบบและง่ายดายบน WordPress ออนไลน์ของคุณ

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS ซึ่งเป็นโอเพ่นซอร์สและระบบปฏิบัติการฟรีพร้อมเวอร์ชันล่าสุดแล้ว สามารถตอบสนองความต้องการของผู้ใช้ Windows ยุคใหม่และล้ม Microsoft ได้หรือไม่? มาหาข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบเก่านี้ แต่เป็นประสบการณ์ OS ที่ใหม่กว่ากัน

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

การโจมตีของ Ransomware กำลังเพิ่มขึ้น แต่ AI สามารถช่วยจัดการกับไวรัสคอมพิวเตอร์ตัวล่าสุดได้หรือไม่? AI คือคำตอบ? อ่านที่นี่รู้ว่า AI boone หรือ bane

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

ในที่สุด Whatsapp ก็เปิดตัวแอพเดสก์ท็อปสำหรับผู้ใช้ Mac และ Windows ตอนนี้คุณสามารถเข้าถึง Whatsapp จาก Windows หรือ Mac ได้อย่างง่ายดาย ใช้ได้กับ Windows 8+ และ Mac OS 10.9+

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

อ่านข้อมูลนี้เพื่อทราบว่าปัญญาประดิษฐ์กำลังได้รับความนิยมในหมู่บริษัทขนาดเล็กอย่างไร และเพิ่มโอกาสในการทำให้พวกเขาเติบโตและทำให้คู่แข่งได้เปรียบ

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

เมื่อเร็ว ๆ นี้ Apple เปิดตัว macOS Catalina 10.15.4 การอัปเดตเสริมเพื่อแก้ไขปัญหา แต่ดูเหมือนว่าการอัปเดตทำให้เกิดปัญหามากขึ้นที่นำไปสู่การสร้างเครื่อง Mac อ่านบทความนี้เพื่อเรียนรู้เพิ่มเติม

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

คอมพิวเตอร์ของเราจัดเก็บข้อมูลทั้งหมดในลักษณะที่เรียกว่าระบบไฟล์บันทึก เป็นวิธีการที่มีประสิทธิภาพที่ช่วยให้คอมพิวเตอร์สามารถค้นหาและแสดงไฟล์ได้ทันทีที่คุณกดค้นหาhttps://wethegeek.com/?p=94116&preview=true