Տեղադրեք - կարգավորեք Ghost-ը openSUSE 42.2 Leap-ում
Ի՞նչ է Ghost-ը:
Վեբ 2.0-ի դարաշրջանում բլոգները շատերի համար հավանումների կարևոր մասն են, և, օրինակ, WordPress-ի և Tumblr-ի հանրաճանաչությունը փաստում է:
Այսօր մենք կխոսենք առցանց հրապարակումներ ստեղծելու և գործարկելու համար (օրինակ՝ բլոգեր, ամսագրեր և այլն), որը կոչվում է Ghost: Այս գործիքը բաց կոդով է և լիովին հաքերային, գրված է JavaScript-ով և աշխատում է Node.js-ում:
Այս ձեռնարկում մենք կտեսնենք, թե ինչպես տեղադրել – կարգավորել Ghost-ը openSUSE Leap 42.2-ում՝ օգտագործելով Apache-ն որպես վեբ սերվեր:
Node.js տարբերակը
Ghost-ն աշխատում է Node.js-ի վերևում: Ավելի ճշգրիտ լինելու համար, մշակողները որոշել են աջակցել միայն LTS տարբերակները: Այս ձեռնարկում մենք կօգտագործենք 4.2.x տարբերակը:
Նույնիսկ եթե դա նշանակում է, որ Ghost-ը չի կարող օգտագործել Node.js-ի վերջին հնարավորությունները, ընտրությունը խելամիտ է թվում, քանի որ դա նրանց համար տեղ է թողնում իրենց ժամանակը ծախսելու նոր հնարավորություններ ստեղծելու և սխալներ շտկելու վրա, այլ ոչ թե Node-ում փոփոխություններին հետևելու և իրենց հարթակը վերստուգելու համար: յուրաքանչյուր թողարկում։
Վերջնական օգտատերերի և ադմինիստրատորների համար սա հանգեցնում է ավելի կայուն և աջակցվող հարթակի, որը շատերը գրավիչ են համարում:
Սկսում ենք – Տեղադրեք Node.js և npm
Node.js-ի 4-րդ տարբերակն արդեն հասանելի է openSUSE-ում: Այն տեղադրելու համար պարզապես օգտագործեք
zypper
:
zypper in nodejs
The following NEW package is going to be installed:
nodejs4
1 new package to install.
Overall download size: 3.3 MiB. Already cached: 0 B. After the operation, additional
12.7 MiB will be used.
Continue? [y/n/? shows all options] (y): y
Retrieving package nodejs4-4.6.1-3.1.x86_64 (1/1), 3.3 MiB ( 12.7 MiB unpacked)
Retrieving: nodejs4-4.6.1-3.1.x86_64.rpm ...........................[done (846.4 KiB/s)]
Checking for file conflicts: .....................................................[done]
(1/1) Installing: nodejs4-4.6.1-3.1.x86_64 .......................................[done]
Հաջորդը, տեղադրեք
npm
:
zypper in npm
Ստուգեք տարբերակը.
npm --version
2.15.9
Ghost-ի տեղադրում
Փոխել գրացուցակը
/srv/www
և ներբեռնեք Ghost:
cd /srv/www
wget https://ghost.org/zip/ghost-latest.zip
Unzip այն նոր անունով գրացուցակում
ghost
օգտագործելով հետևյալ կոդը.
unzip -d ghost ghost-latest.zip
Գնացեք այս նոր գրացուցակ և տեղադրեք Ghost-ը
npm
:
cd ghost
npm install --production
Կարգավորել Ghost-ը
ghost
գրացուցակը պարունակում է կազմաձևման ֆայլի օրինակ: Օգտագործեք սա:
cp config.example.js config.js
Հաջորդը, ստեղծեք նոր օգտվող ghostusr անունով.
useradd -d /srv/www -s /bin/bash -U ghostusr
passwd ghostusr
Սահմանեք այս օգտվողին որպես ուրվական գրացուցակի սեփականատեր.
chown -R ghostusr:ghostusr /srv/www/ghost
Այժմ հնարավոր է փորձարկել Ghost-ի հետ
npm
կատարելով հետևյալ հրամանները.
su - ghostusr
cd ghost
npm start --production
Այն պետք է հանգեցնի նման արդյունքի.
Migrations: Creating tables...
Migrations: Creating table: posts
Migrations: Creating table: users
Migrations: Creating table: roles
Migrations: Creating table: roles_users
Migrations: Creating table: permissions
Migrations: Creating table: permissions_users
Migrations: Creating table: permissions_roles
Migrations: Creating table: permissions_apps
Migrations: Creating table: settings
Migrations: Creating table: tags
Migrations: Creating table: posts_tags
Migrations: Creating table: apps
Migrations: Creating table: app_settings
Migrations: Creating table: app_fields
Migrations: Creating table: clients
Migrations: Creating table: client_trusted_domains
Migrations: Creating table: accesstokens
Migrations: Creating table: refreshtokens
Migrations: Creating table: subscribers
Migrations: Running fixture populations
Migrations: Creating owner
Ghost is running in production...
Your blog is now available on http://my-ghost-blog.com
Բացեք նոր տերմինալի պատուհան և փորձարկեք՝ տեսնելու, թե արդյոք Ghost-ն արդյունավետ է աշխատում՝ կատարելով հետևյալ հրամանը.
curl -I localhost:2368
HTTP/1.1 200 OK
X-Powered-By: Express
Cache-Control: public, max-age=0
Content-Type: text/html; charset=utf-8
Content-Length: 4554
ETag: W/"11ca-93Do3c+nffISfn1kLrmRZg"
Vary: Accept-Encoding
Date: Mon, 13 Mar 2017 07:59:39 GMT
Connection: keep-alive
Տերմինալի պատուհանում, որն աշխատում է Ghost-ում, դադարեցրեք այն՝ մուտքագրելով CTRL+C:
Այժմ ստեղծեք նոր systemd ծառայություն.
$EDITOR /etc/systemd/system/ghost.service
Եվ այնտեղ տեղադրեք հետևյալ կոնֆիգուրացիան.
[Unit]
Description=Ghost Blog - Publication platform
After=network.target
[Service]
Type=simple
Ghost installation Directory
WorkingDirectory=/srv/www/ghost
User=ghostusr
Group=ghostusr
ExecStart=/usr/bin/npm start --production
ExecStop=/usr/bin/npm stop --production
Restart=always
SyslogIdentifier=Ghost
[Install]
WantedBy=multi-user.target
Վերբեռնել systemd daemon:
systemct daemon-reload
և այնուհետև սկսեք նոր ծառայությունը.
systemctl start ghost
Ստուգեք կարգավիճակը.
systemctl status ghost
Եվ դա ցույց կտա հետևյալը.
ghost.service - Ghost Blog - Publication platform
Loaded: loaded (/etc/systemd/system/ghost.service; disabled; vendor preset: disabled)
Active: active (running) since Mon 2017-03-13 09:06:41 CET; 5s ago
Որպեսզի այն գործարկվի բեռնման ժամանակ.
systemctl enable ghost
Apache-ի տեղադրում և կարգավորում
Տեղադրեք Apache 2-ը
zypper
:
zypper in apache2
Եվ ստեղծեք նոր վիրտուալ հոսթ Ghost-ի համար.
$EDITOR /etc/apache2/sites-available/ghost.conf
Այնտեղ, տեղադրեք.
<VirtualHost *:80>
#Domain Name
ServerName myghostblog.com
ServerAlias www.myghostblog.com
#HTTP proxy/gateway server
ProxyRequests off
ProxyPass / http://127.0.0.1:2368/
ProxyPassReverse / http:/127.0.0.1:2368/
</VirtualHost>
Պահել և դուրս գալ:
Ակտիվացրեք վստահված անձի մոդուլը, ակտիվացրեք Ghost-ը և վերագործարկեք ամեն ինչ.
a2enmod proxy proxy_http
ln -s /etc/apache2/sites-available/ghost.conf /etc/apache2/sites-enabled/ghost.conf
systemctl restart apache2
systemctl restart ghost
Բացեք վեբ զննարկիչը և այցելեք http://localhost:2368 և.
Միացնել SSL-ը
Ստեղծեք նոր գրացուցակ, որը կպարունակի վկայականներ.
mkdir -p /etc/apache2/certs
Եվ այնտեղ ստեղծեք նոր վկայագիր.
openssl req -x509 -nodes -days 365 -newkey rsa:4096 -keyout /etc/apache2/certs/ghost.key -out /etc/apache2/certs/ghost.crt
Փոխել թույլտվությունները.
chmod 600 /etc/apache2/certs/*
Վերջապես, խմբագրեք վիրտուալ հոսթի կազմաձևը՝ SSL-ը միացնելու համար.
$EDITOR /etc/apache2/sites-available/ghost.conf
<VirtualHost *:80>
ServerName myghostblog.com
ServerAlias www.myghostblog.com
# Force http to https
Redirect permanent / https://myghostblog.com/
ProxyRequests off
ProxyPass / http://127.0.0.1:2368/
ProxyPassReverse / http:/127.0.0.1:2368/
</VirtualHost>
<VirtualHost *:443>
ServerName myghostblog.com
SSLEngine on
SSLCertificateFile /etc/apache2/certs/ghost.crt
SSLCertificateKeyFile /etc/apache2/certs/ghost.key
ProxyPass / http://127.0.0.1:2368/
ProxyPassReverse / http:/127.0.0.1:2368/
ProxyPreserveHost On
RequestHeader set X-Forwarded-Proto "https"
</VirtualHost>
Պահպանեք, դուրս եկեք և վերագործարկեք Apache-ն.
a2enmod ssl headers
systemctl restart apache2
Եզրակացություն
Ghost-ն այժմ գործում է: Գնացեք localhost:2368/ghost/՝ ավարտելու ադմինիստրատորի հաշվի կարգավորումը, այնուհետև սկսեք բլոգեր գրել: