Il discorso è una nuova soluzione di forum open-source che è semplice, pulita e diretta. È implementato con Ruby on Rails, un database Postgres e una cache del server Redis. Questo tutorial descrive come installare Discourse su un VPS Vultr con CentOS 7.
Requisiti
- Vultr VPS con almeno 1 GB di RAM.
- CentOS 7 x64 installato sul VPS.
Imposta il file di scambio
È necessario impostare lo scambio per un VPS RAM da 1 GB. Se il tuo VPS ha più di 1 GB di RAM, puoi saltare questo passaggio. Creeremo un file di scambio da 2 GB per 1 GB di RAM VPS.
-
Crea il file di scambio.
dd if=/dev/zero of=/swapfile bs=1M count=2048
mkswap /swapfile
chmod 600 /swapfile
-
Modifica fstab per aggiungere il file di scambio nella tabella dei file system.
Apri fstab con vi:
vi /etc/fstab
Aggiungi la seguente riga nel file:
/swapfile swap swap defaults 0 0
-
Imposta la politica di utilizzo dello swap. Utilizzare il file di scambio solo quando la memoria di sistema è insufficiente.
sysctl -w vm.swappiness=10
echo vm.swappiness = 10 | tee -a /etc/sysctl.conf
sysctl vm.vfs_cache_pressure=60
echo vm.vfs_cache_pressure = 60 | tee -a /etc/sysctl.conf
-
Abilita il file di scambio.
mount -a
swapon -a
-
Controlla lo stato del file di scambio.
swapon -s
Se il file di scambio è stato abilitato, verranno visualizzate le seguenti informazioni.
Filename Type Size Used Priority
/swapfile file 2097148 0 -1
Installa Docker
Eseguire il comando seguente per installare Docker su CentOS 7.
yum install docker
Se hai disabilitato SELinux, è meglio disabilitarlo anche nella finestra mobile.
vi /etc/sysconfig/docker
Commenta la riga 4.
#OPTIONS='--selinux-enabled'
Avviare il servizio docker.
systemctl start docker
systemctl enable docker
Si noti che se si riavvia firewalld, sarà necessario riavviare anche la finestra mobile. Perché firewalld rimuoverà la catena docker da iptables al riavvio.
Installa discorso
Creare una cartella denominata discourse
sotto /var
e clonare il repository Discourse.
mkdir /var/discourse
git clone https://github.com/discourse/discourse_docker.git /var/discourse
Vai alla discourse
cartella.
cd /var/discourse
Copia il file del modello di configurazione Discourse nella cartella dei contenitori.
cp samples/standalone.yml containers/app.yml
-
Apri app.yml
con vi.
vi containers/app.yml
-
Se si utilizza un VPS da 1 GB, impostare il buffer condiviso db su 128 MB in app.yml
.
db_shared_buffers: "128MB"
-
Passare UNICORN_WORKERS
a 2 per un'istanza RAM da 1 GB.
## With 2GB we recommend 3-4 workers, with 1GB only 2
UNICORN_WORKERS: 2
-
Imposta il tuo indirizzo email per l'account amministratore. Questa email ti servirà per registrare l'account admin sul tuo forum di Discorso.
DISCOURSE_DEVELOPER_EMAILS: '[email protected]'
-
Imposta il nome di dominio per il discorso. Ad esempio, lo impostiamo come discourse.example.com
, ciò significa che sarebbe accessibile all'URL http://discourse.example.com/
.
## TODO: The domain name this Discourse instance will respond to
DISCOURSE_HOSTNAME: 'discourse.example.com'
-
Configura il tuo server di posta per Discourse.
Se il tuo server di posta si trova sullo stesso server con Discourse, configuralo come segue.
DISCOURSE_SMTP_ADDRESS: smtp.example.com # (mandatory)
DISCOURSE_SMTP_PORT: 587 # (optional)
DISCOURSE_SMTP_USER_NAME: YOUR_EMAIL_ACCOUNT # (optional)
DISCOURSE_SMTP_PASSWORD: YOURPASSWORD # (optional)
DISCOURSE_SMTP_ENABLE_START_TLS: flase # (optional, default true)
DISCOURSE_SMTP_OPENSSL_VERIFY_MODE: none
Se si utilizza un server SMTP remoto, modificare app.yml
quanto segue.
DISCOURSE_SMTP_ADDRESS: smtp.example.com # (mandatory)
DISCOURSE_SMTP_PORT: 587 # (optional)
DISCOURSE_SMTP_USER_NAME: [email protected] # (optional)
DISCOURSE_SMTP_PASSWORD: YOURPASSWORD # (optional)
DISCOURSE_SMTP_ENABLE_START_TLS: true # (optional, default true)
-
Salva ed esci app.yml
.
Bootstrap e avviare il discorso
Eseguire il comando di seguito per Bootstrap Discourse.
./launcher bootstrap app
Al termine del processo di bootstrap, avviare Discourse.
./launcher start app
Apri il discorso nel tuo browser
Sul PC client, immettere il nome di dominio configurato per il discorso app.yml
. Vedrai la tua istanza di Discorso.
Risoluzione dei problemi
- Per impostazione predefinita, Docker ascolterà sulla porta 80. Se la porta 80 è già stata utilizzata da Nginx o Apache, è necessario spostare tale servizio su un'altra porta; o cambia Docker su un'altra porta. Ad esempio, modificare "80:80" in "8080: 80"
app.yml
per fare in modo che Docker ascolti sulla porta 8080.
- Sul VPS da 1 GB di RAM, potrebbe non riuscire ad aggiornare il Discorso alla nuova versione e vedrai un "502 Bad Gateway" quando accedi al Discorso. La semplice soluzione per questo problema è eseguire
./launcher rebuild app
per ricostruire l'istanza di Discourse.