Instalando o Fork CMS no CentOS 7
Usando um sistema diferente? Fork é um CMS de código aberto escrito em PHP. O código fonte do Forks está hospedado no GitHub. Este guia mostra como instalar o Fork CM
O Ghost é uma plataforma de blog de código aberto que vem ganhando popularidade entre desenvolvedores e usuários comuns desde seu lançamento em 2013. Ele coloca o foco no conteúdo e nos blogs. O mais atraente do Ghost é seu design simples, limpo e responsivo. Você pode escrever as postagens do seu blog usando um telefone celular. O conteúdo do Ghost é escrito usando o idioma Markdown. O Ghost é perfeito para indivíduos ou pequenos grupos de escritores.
Neste guia, vamos configurar e implantar um blog seguro Ghost v0.11.x LTS em um VPS do CentOS 7.3 usando Let's Encrypt , Certbot , Node.js , NPM , NGINX e MySQL .
Verifique a versão do CentOS:
cat /etc/centos-release
# CentOS Linux release 7.3.1611 (Core)
Crie um novo usuário não raiz :
useradd -c "John Doe" johndoe && passwd johndoe
Torne-o superusuário adicionando-o ao wheel
grupo:
usermod -aG wheel johndoe
Mudar para novo usuário:
su - johndoe
Atualize o software do seu sistema operacional:
sudo yum check-update || sudo yum update -y
Configure o fuso horário:
timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'
Instale ferramentas de desenvolvimento:
sudo yum groupinstall -y 'Development Tools'
Instale o editor de texto Vim:
sudo yum install -y vim
Reinicialize o sistema, se necessário:
sudo shutdown -r now
NOTA : Antes de iniciar esta etapa, verifique se você definiu registros DNS para o seu domínio.
Nós estamos indo para usar Criptografar Vamos CA e FEP cliente Certbot 's para obter SSL / TLS certificado para o nosso Santo blog. Não se esqueça de substituir todas as instâncias blog.domain.tld
pelo seu nome de domínio.
Ative o repositório Extra Packages for 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
Instale o software de gerenciamento de certificados Certbot (anteriormente chamado Let's Encrypt Client ) feito com Python:
sudo yum install -y certbot
Verifique a versão do Certbot:
certbot --version
# certbot 0.14.1
Obtenha o certificado RSA usando o método de autenticação independente (plug-in):
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. . . .
# . . .
Após seguir as etapas anteriores, seu certificado e sua chave privada estarão no /etc/letsencrypt/live/blog.domain.tld
diretório
NOTA : No momento, o Ghost suporta apenas as versões 4.5 e 6.9 ou superior do Node.js.
O Ghost é criado no Node.js. Vamos instalar a versão recomendada para o Ghost que está v6 Boron LTS
no momento desta redação.
Faça o download e instale o Node.js v6 LTS:
sudo curl --silent --location https://rpm.nodesource.com/setup_6.x | sudo bash -
sudo yum install -y nodejs
Verifique a versão do Node.js e do NPM:
node -v && npm -v
# v6.11.2
# 3.10.10
Por padrão, o Ghost vem configurado para usar um banco de dados SQLite, que não requer configuração.
Como alternativa, o Ghost também pode ser usado com um banco de dados MySQL alterando a configuração do banco de dados. Você deve criar um banco de dados e um usuário primeiro e depois alterar a configuração existente do sqlite3.
Faça o download e instale a versão mais recente do MySQL (atualmente 5.7 ) no repositório oficial do 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
Verifique a versão do MySQL:
mysql --version
# mysql Ver 14.14 Distrib 5.7.19, for Linux (x86_64) using EditLine wrapper
Inicie o MySQL Server e verifique seu status:
sudo systemctl start mysqld.service
sudo systemctl status mysqld.service
O MySQL versão 5.7 ou superior gera uma senha aleatória temporária para o root
usuário do MySQL após a instalação e a senha serem armazenadas no arquivo de log de erros do MySQL, localizado em /var/log/mysqld.log
. Para revelá-lo, use o seguinte comando:
sudo grep 'temporary password' /var/log/mysqld.log
Execute o mysql_secure_installation
script para proteger um pouco o seu banco de dados:
NOTA : O plug-in de validação de senha está instalado e ativado, portanto, sua nova senha para o
root
usuário precisa ser forte ( uma letra maiúscula, uma minúscula, um dígito e um caractere especial, e que o comprimento total da senha seja de pelo menos 8 caracteres ) Se você deseja relaxar esse recurso ou desativar o plug-in completamente ( não recomendado ), consulte a documentação oficial do MySQL para saber como fazer isso.
sudo mysql_secure_installation
Entre no MySQL como usuário root:
mysql -u root -p
# Enter password:
Crie um novo banco de dados e usuário MySQL:
create database dbname;
grant all on dbname.* to 'user' identified by 'password';
Saia do MySQL:
exit
Faça o download e instale a versão principal mais recente do NGINX do repositório oficial do 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
Verifique se está instalado, verificando a versão do NGINX:
sudo nginx -v
# nginx version: nginx/1.13.3
Verifique o status, ative e inicie o serviço NGINX (daemon):
sudo systemctl status nginx.service # inactive (dead)
sudo systemctl enable nginx.service
sudo systemctl start nginx.service
Crie um /etc/nginx/ssl
diretório e gere um novo parâmetro Diffie-Hellman ( DH ):
sudo mkdir -p /etc/nginx/ssl
sudo openssl dhparam -out /etc/nginx/ssl/dhparams-2048.pem 2048
Crie um diretório de log para o blog.domain.tld
host virtual:
sudo mkdir -p /var/log/nginx/blog.domain.tld
Configure o NGINX como um servidor proxy reverso HTTP ( S ):
sudo vim /etc/nginx/conf.d/ghost.conf
Cole o seguinte em /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 "";
}
}
Salve e teste a configuração do NGINX para erros de sintaxe:
sudo nginx -t
Recarregue a configuração do NGINX:
sudo systemctl reload nginx.service
NOTA : Se você deseja hospedar vários blogs Ghost no mesmo VPS, cada instância do Ghost deve estar em execução em uma porta separada.
Crie o diretório raiz do documento:
sudo mkdir -p /var/www/
Crie um novo usuário fantasma:
sudo useradd -c 'Ghost application' ghost
Download Ghost:
curl -L https://github.com/TryGhost/Ghost/releases/download/0.11.11/Ghost-0.11.11.zip -o ghost.zip
Descompacte o Ghost no /var/www/ghost
diretório (local de instalação recomendado):
sudo unzip -uo ghost.zip -d /var/www/ghost
rm ghost.zip
Vá para o novo diretório fantasma:
cd /var/www/ghost
Mude a propriedade do /var/www/ghost
diretório:
sudo chown -R ghost:ghost .
Mudar para novo ghost
usuário:
sudo su - ghost
Navegue para a raiz do documento /var/www/ghost
:
cd /var/www/ghost
Instale o Ghost apenas com dependências de produção. Quando isso termina, o Ghost está instalado:
npm install --production
Configurar Santo mudando url
, mail
e database
propriedade da produção objeto dentro de config.js
arquivo:
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
},
// . . .
// . . .
NOTA : Você também deve definir as
Inicie o Ghost no ambiente de produção:
npm start --production
Agora o Ghost estará em execução. O front-end do blog e a interface administrativa estão protegidos com HTTPS e o HTTP / 2 também está funcionando. Você pode abrir o navegador e visitar o site em https://blog.domain.tld
. Não se esqueça de substituir blog.domain.tld
pelo seu nome de domínio.
Encerre o processo do Ghost pressionando CTRL
+ C
e saia do usuário fantasma de volta para o usuário não raiz que você criou no início:
exit
Se você fechar sua sessão de terminal com seu VPS, seu blog também será desativado. Isso não é bom. Para evitar isso, vamos usar o systemd. Ele manterá nosso blog atualizado 24 horas por dia, 7 dias por semana.
Crie um ghost.service
arquivo de unidade systemd. Execute o sudo sudo vim /etc/systemd/system/ghost.service
e copie / cole o conteúdo abaixo:
[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
Ative e inicie ghost.service
:
sudo systemctl enable ghost.service && sudo systemctl start ghost.service
Verificar ghost.service
status:
sudo systemctl status ghost.service && sudo systemctl is-enabled ghost.service
Navegue https://blog.domain.tld/ghost/
e crie um usuário administrador do Ghost. Faça isso o mais rápido possível!
É isso aí. Agora temos um blog Ghost totalmente funcional. Seu servidor está entregando conteúdo via HTTP / 2 quando suportado pelo cliente. Se você quiser alterar o tema padrão do Ghost chamado Casper para um personalizado, basta baixar e descompactar o tema na /var/www/ghost/content/themes
pasta e selecioná-lo na interface de administração do Ghost, localizada em https://blog.domain.tld/ghost
.
Usando um sistema diferente? Fork é um CMS de código aberto escrito em PHP. O código fonte do Forks está hospedado no GitHub. Este guia mostra como instalar o Fork CM
O Typesetter é um CMS de código aberto escrito em PHP, focado na facilidade de uso com a edição True WYSIWYG e armazenamento de arquivos simples. Neste artigo, instalaremos
Usando um sistema diferente? O Ghost é uma plataforma de blog de código aberto que vem ganhando popularidade entre desenvolvedores e usuários comuns desde a sua 201
Usando um sistema diferente? O MODX Revolution é um sistema de gerenciamento de conteúdo (CMS) de nível empresarial, rápido, flexível, escalável, gratuito e de código aberto
Usando um sistema diferente? O MODX Revolution é um sistema de gerenciamento de conteúdo (CMS) de nível empresarial, rápido, flexível, escalável, gratuito e de código aberto
O Neos é um sistema inovador de gerenciamento de conteúdo de código aberto, ótimo para criar e editar conteúdo online. Com autores e editores em mente, o Neo
Introdução Quanto mais próximo você mantiver sua instalação do OpenBSD do padrão e sem tantos pacotes adicionados, mais seguro será. Enquanto o mais commo
Introdução O WordPress é o sistema de gerenciamento de conteúdo dominante na internet. Ele fornece tudo, desde blogs a sites complexos, com conteúdo dinâmico
O Ghost é uma plataforma de publicação de código aberto moderna, construída no Node.js com um cliente de administrador do Ember.js., uma API JSON e uma API de tema fornecida pelo Handlebars.js. Ghos
Usando um sistema diferente? Dotclear é um mecanismo de blog muito simples. É de código aberto e fácil de usar. Este tutorial passará pela instalação em
Um uso comum de um servidor virtual Vultr é hospedar sites do Wordpress. Este guia mostra como automatizar a configuração de um servidor virtual a partir do scratc
As instâncias do Vultr são uma ótima maneira de executar seu blog WordPress, mas uma extensão mais notável do WordPress é o WooCommerce, um plug-in de comércio eletrônico que estende a
O Ghost é o maior e mais recente iniciante a rivalizar com o WordPress. O desenvolvimento de temas é rápido e fácil de aprender, porque os desenvolvedores do Ghost decidiram usar os dois
Usando um sistema diferente? O MODX Revolution é um sistema de gerenciamento de conteúdo (CMS) de nível empresarial, rápido, flexível, escalável e de código aberto, escrito em PHP. É eu
Usando um sistema diferente? O Ghost é uma plataforma de blog de código aberto que vem ganhando popularidade entre desenvolvedores e usuários comuns desde a sua 201
Usando um sistema diferente? O MODX Revolution é um sistema de gerenciamento de conteúdo (CMS) de nível empresarial, rápido, flexível, escalável, gratuito e de código aberto
Usando um sistema diferente? O MODX Revolution é um sistema de gerenciamento de conteúdo (CMS) de nível empresarial, rápido, flexível, escalável, gratuito e de código aberto
Usando um sistema diferente? O Ghost é uma plataforma de blog de código aberto que vem ganhando popularidade entre desenvolvedores e usuários comuns desde a sua 201
Usando um sistema diferente? Fork é um CMS de código aberto escrito em PHP. O código fonte do Forks está hospedado no GitHub. Este guia mostra como instalar o Fork CM
Os ataques de ransomware estão aumentando, mas a IA pode ajudar a lidar com os vírus de computador mais recentes? AI é a resposta? Leia aqui para saber se é AI boone ou bane
ReactOS, um sistema operacional de código aberto e gratuito está aqui com a versão mais recente. Será que ela pode atender às necessidades dos usuários modernos do Windows e derrubar a Microsoft? Vamos descobrir mais sobre esse estilo antigo, mas uma experiência de sistema operacional mais recente.
O Whatsapp finalmente lançou o aplicativo Desktop para usuários de Mac e Windows. Agora você pode acessar o Whatsapp do Windows ou Mac facilmente. Disponível para Windows 8+ e Mac OS 10.9+
Leia isto para saber como a Inteligência Artificial está se tornando popular entre as empresas de pequena escala e como está aumentando as probabilidades de fazê-las crescer e dar vantagem a seus concorrentes.
Recentemente, a Apple lançou o macOS Catalina 10.15.4, uma atualização suplementar para corrigir problemas, mas parece que a atualização está causando mais problemas, levando ao bloqueio de máquinas mac. Leia este artigo para saber mais
13 Ferramentas de Extração de Dados Comerciais de Big Data
Nosso computador armazena todos os dados de uma maneira organizada conhecida como sistema de arquivos Journaling. É um método eficiente que permite ao computador pesquisar e exibir arquivos assim que você clicar em search.https: //wethegeek.com/? P = 94116 & preview = true
À medida que a ciência evolui em um ritmo rápido, assumindo muitos de nossos esforços, os riscos de nos sujeitarmos a uma singularidade inexplicável também aumentam. Leia, o que a singularidade pode significar para nós.
Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1
A IA na área da saúde deu grandes saltos nas últimas décadas. Portanto, o futuro da IA na área da saúde ainda está crescendo dia a dia.