Guida alle tecnologie

Installare Restyaboard su CentOS 7

7 min read Guide. Aggiornato 16 Oct 2025
Restyaboard su CentOS 7 — Guida completa
Restyaboard su CentOS 7 — Guida completa

Installa Nginx, PHP-FPM (socket), PostgreSQL 9.6, poi scarica e configura Restyaboard nella directory di Nginx. Usa un utente PostgreSQL dedicato, aggiorna i file di configurazione PHP e Nginx, assegna i permessi corretti e aggiungi i cron job forniti. In alternativa evita di disabilitare completamente SELinux e preferisci regole mirate o un container.

Importante: questa guida presuppone privilegi root su CentOS 7 minimo. PHP 7.0 indicato dalla guida originale non riceve più aggiornamenti ufficiali: valuta un runtime supportato nel tuo contesto di produzione.

Panoramica

Restyaboard è un’applicazione Kanban open source e gratuita. È una valida alternativa auto-ospitata a servizi come Trello. È scritta in PHP e usa PostgreSQL per il database. Questa guida spiega passo passo l’installazione su un server CentOS 7, indicando comandi, file da modificare e verifiche finali.

Cosa serve

  • Server CentOS 7 minimo
  • Accesso root (o sudo)
  • Connettività a Internet per scaricare pacchetti e release

Indice rapido

  • Passo 1 — Installare Nginx
  • Passo 2 — Installare e configurare PHP-FPM e mbstring
  • Passo 3 — Installare e configurare PostgreSQL
  • Passo 4 — Scaricare e importare Restyaboard
  • Passo 5 — Configurare il server block di Nginx
  • Controlli, backup, sicurezza e risoluzione dei problemi

Passo 1 - Installare Nginx

Aggiorna pacchetti e repository prima di procedere:

yum -y update

Nginx non è nel repository YUM predefinito di CentOS, quindi abilita EPEL e poi installa Nginx:

yum -y install epel-release
yum -y install nginx

Avvia Nginx e abilitalo all’avvio:

systemctl start nginx systemctl enable nginx

Verifica che Nginx sia attivo:

systemctl status nginx

Note:

  • Se usi firewall (firewalld), apri la porta HTTP:
firewall-cmd --permanent --add-service=http
firewall-cmd --reload
  • Se preferisci HTTPS, configura un certificato (Let’s Encrypt) più avanti.

Passo 2 - Installare e configurare PHP-FPM con mbstring

Restyaboard originariamente richiede PHP 7.0. L’esempio usa Webtatic per ottenere PHP 7.0 su CentOS 7. Se possibile, preferisci una versione più recente e supportata di PHP compatibile con Restyaboard.

Aggiungi il repository Webtatic:

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

Installa PHP 7.0, PHP-FPM e i moduli richiesti:

yum -y install php70w php70w-fpm php70w-devel php70w-cli php70w-curl php70w-pgsql php70w-mbstring php70w-ldap php70w-pear php70w-imap php70w-xml php70w-pecl-imagick ImageMagick

Configurazione PHP-FPM (socket):

Per compatibilità con Nginx modifica la configurazione predefinita. Apri il file di pool:

nano /etc/php-fpm.d/www.conf

Cambia l’utente e il gruppo da apache a nginx:

user = nginx
group = nginx

Usa un socket invece di una porta TCP. Trova e sostituisci:

listen = 127.0.0.1:9000

con:

listen = /run/php-fpm/php7.0-fpm.sock

Imposta proprietà e permessi del socket:

listen.owner = nginx
listen.group = nginx
listen.mode = 0660

Imposta il fuso orario in /etc/php.ini (adatta all’Italia):

nano /etc/php.ini

Nella sezione [Date] imposta:

date.timezone = Europe/Rome

Disabilita cgi.fix_pathinfo per sicurezza:

cgi.fix_pathinfo=0

Installa GeoIP e abilita l’estensione:

yum -y install GeoIP-devel
# Aggiungi nel file /etc/php.ini alla fine
extension=geoip.so

Avvia PHP-FPM e abilitalo al boot, poi riavvia Nginx:

systemctl start php-fpm systemctl enable php-fpm
systemctl restart nginx

Nota di sicurezza

  • PHP 7.0 non è aggiornato; valuta versioni più nuove o contenitori isolati.

Passo 3 - Installare e configurare PostgreSQL

Restyaboard usa PostgreSQL come motore dati. In questa guida si installa PostgreSQL 9.6 dal repository ufficiale:

rpm -Uvh https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
yum -y install postgresql96-server postgresql96-contrib

Inizializza il database:

/usr/pgsql-9.6/bin/postgresql96-setup initdb

Configura l’autenticazione per richiedere password (MD5). Modifica il file pg_hba.conf:

nano /var/lib/pgsql/9.6/data/pg_hba.conf

Sostituisci le righe di autenticazione locali con:

local   all             all                                     trust
host    all             all             127.0.0.1/32            md5
host    all             all             ::1/128                 md5

Avvia PostgreSQL e abilitalo al boot:

systemctl start postgresql-9.6 systemctl enable postgresql-9.6

Imposta la password dell’utente di sistema postgres:

passwd postgres

Cambia utente e crea un ruolo per Restyaboard:

su - postgres
createuser rb_user
psql

Nel prompt psql imposta la password e crea il database:

ALTER USER rb_user WITH ENCRYPTED password 'StrongPassword';
CREATE DATABASE rb_data OWNER rb_user ENCODING 'UTF8' TEMPLATE template0;
\q
exit

Sostituisci StrongPassword con una password robusta e gestiscila in modo sicuro.

Backup rapido del database (utile prima di importare/aggiornare):

pg_dump -U rb_user -d rb_data -F c -f /root/rb_data-backup.dump

Passo 4 - Scaricare Restyaboard

Scarica la release pronta per il deploy nella directory web di Nginx:

cd /usr/share/nginx/html wget https://github.com/RestyaPlatform/board/releases/download/v0.4.2/board-v0.4.2.zip

Estrai l’archivio (installa unzip se necessario):

yum -y install unzip
unzip board-v0.4.2.zip -d board

Importa lo schema SQL nella base dati creata:

psql -d rb_data -f "/usr/share/nginx/html/board/sql/restyaboard_with_empty_data.sql" -U rb_user

Modifica il file di configurazione PHP del progetto per impostare le credenziali del database:

nano /usr/share/nginx/html/board/server/php/config.inc.php

Sostituisci le definizioni con le tue credenziali:

define('R_DB_HOST', 'localhost');
define('R_DB_USER', 'rb_user');
define('R_DB_PASSWORD', 'StrongPassword');
define('R_DB_NAME', 'rb_data');
define('R_DB_PORT', 5432);

Salva il file.

Passo 5 - Configurare il server block di Nginx

Copia la configurazione fornita nel pacchetto in /etc/nginx/conf.d:

cp /usr/share/nginx/html/board/restyaboard.conf /etc/nginx/conf.d
nano /etc/nginx/conf.d/restyaboard.conf

Modifica l’inizio del server block: rimuovi default_server e inserisci il tuo dominio:

server {
        listen 80;
        server_name board.tuodominio.com;

Aggiorna i root path per puntare alla cartella estratta:

root /usr/share/nginx/html/board;

location / {
    root /usr/share/nginx/html/board/client;
}

root /usr/share/nginx/html/board/client;

Inoltre modifica la direttiva fastcgi_pass per usare il socket configurato:

fastcgi_pass    unix:/run/php-fpm/php7.0-fpm.sock;

Salva e chiudi.

Imposta proprietà e permessi:

chown -R nginx:nginx /usr/share/nginx/html/board/
chmod -R go+w "/usr/share/nginx/html/board/media"
chmod -R go+w "/usr/share/nginx/html/board/client/img"
chmod -R go+w "/usr/share/nginx/html/board/tmp/cache"
chmod -R 0755 /usr/share/nginx/html/board/server/php/shell/*.sh

Aggiungi i cron job per le attività pianificate di Restyaboard:

echo "*/5 * * * * /usr/share/nginx/html/board/server/php/shell/instant_email_notification.sh" >> /var/spool/cron/root
echo "0 * * * * /usr/share/nginx/html/board/server/php/shell/periodic_email_notification.sh" >> /var/spool/cron/root
echo "*/30 * * * * /usr/share/nginx/html/board/server/php/shell/imap.sh" >> /var/spool/cron/root
echo "*/5 * * * * /usr/share/nginx/html/board/server/php/shell/webhook.sh" >> /var/spool/cron/root
echo "*/5 * * * * /usr/share/nginx/html/board/server/php/shell/card_due_notification.sh" >> /var/spool/cron/root

SELinux: raccomandazioni

La guida originale disabilita SELinux. Disattivarlo riduce la sicurezza. Preferisci soluzioni mirate:

  • Per test temporanei puoi eseguire: setenforce 0 (non persiste al riavvio).
  • Per un approccio sicuro, abilita i boolean necessari o crea una policy locale con audit2allow. Ad esempio:
# Permettere a nginx di connettersi alla rete (es. per proxy/DB remoto)
setsebool -P httpd_can_network_connect 1

Se decidi di disabilitarlo permanentemente, modifica /etc/selinux/config e riavvia. Preferisci sempre una policy mirata in produzione.

Riavvia Nginx:

systemctl restart nginx

Ora puoi raggiungere l’applicazione via browser:

http://board.tuodominio.com

Interfaccia iniziale e credenziali

Schermate mostrate dall’installazione (ALT text localizzati):

Schermata di login di Restyaboard

Accedi con l’username admin e password restya (cambia subito la password dopo il primo login). Dopo il login vedrai la dashboard:

Dashboard principale di Restyaboard

Per creare una nuova board clicca sull’icona a sinistra e poi su Add Board o Organization:

Interfaccia per creare una nuova board

Scegli un nome e un template:

Selezione template per la board

Esempio di board creata:

Esempio di nuova board in Restyaboard

Per accedere al pannello di amministrazione clicca Admin in basso a destra e poi Settings in alto:

Accesso al pannello amministrativo

Controlli post-installazione

Esegui queste verifiche rapide:

  • Verifica che Nginx risponda: curl -I http://localhost
  • Controlla PHP-FPM: systemctl status php-fpm
  • Controlla PostgreSQL: systemctl status postgresql-9.6
  • Conferma che i file media siano scrivibili da nginx
  • Accedi alla pagina web e cambia la password admin

Backup e ripristino (procedure rapide)

Backup database (dump compresso):

pg_dump -U rb_user -d rb_data -F c -f /root/rb_data-$(date +%F).dump

Ripristino da dump:

pg_restore -U rb_user -d rb_data /root/rb_data-YYYY-MM-DD.dump

Backup dei file upload e configurazioni:

tar czf /root/rb_files-$(date +%F).tar.gz /usr/share/nginx/html/board/media /usr/share/nginx/html/board/server/php/config.inc.php

Sicurezza e hardening consigliati

  • Non usare le credenziali predefinite; cambia password admin al primo accesso.
  • Usa HTTPS con Let’s Encrypt o certificati propri.
  • Limita l’accesso SSH solo da indirizzi noti e usa chiavi pubbliche.
  • Evita di disabilitare SELinux; applica le policy necessarie.
  • Esegui gli upgrade del sistema e del runtime PHP in manutenzione programmata.

Risoluzione dei problemi comuni

Nginx mostra 502 Bad Gateway

  • Controlla il socket PHP-FPM: ls -l /run/php-fpm/php7.0-fpm.sock
  • Verifica che php-fpm sia attivo: systemctl status php-fpm
  • Controlla i log: /var/log/nginx/error.log e /var/log/php-fpm/error.log

Connessione a PostgreSQL rifiutata

  • Verifica pg_hba.conf e che PostgreSQL sia in ascolto su localhost.
  • Controlla che rb_user abbia password impostata correttamente nel file config.inc.php.

Upload file non salvati

  • Verifica i permessi sulle cartelle media, tmp e client/img. Devono essere scrivibili dall’utente nginx.

Checklist operativa (ruoli)

Sysadmin

  • Aggiornare il sistema
  • Installare e configurare Nginx, PHP-FPM, PostgreSQL
  • Applicare regole SELinux o policy mirate
  • Configurare backup automatici

Application admin

  • Importare lo schema SQL
  • Configurare config.inc.php
  • Creare account admin e utenti

Utente finale

  • Creare board e template
  • Impostare permessi e membership della board

Mini-metodologia per aggiornamenti

  1. Test: replica l’ambiente in staging.
  2. Backup: dump del DB e archiviazione dei file.
  3. Aggiornamento: esegui l’upgrade dei pacchetti e del codice.
  4. Verifica: controlla log, funzionalità principali e login.
  5. Rollback: ripristina dal backup se necessario.

Glossario (1 riga ciascuno)

  • Nginx: server HTTP usato per servire file statici e proxy verso PHP-FPM.
  • PHP-FPM: FastCGI Process Manager per eseguire codice PHP in pool.
  • PostgreSQL: database relazionale usato da Restyaboard.
  • Socket: file UNIX usato per comunicare tra Nginx e PHP-FPM.

Riepilogo finale

Restyaboard è ora installato e funzionante sul tuo server CentOS 7. Assicurati di cambiare le password predefinite, applicare HTTPS e definire una procedura di backup e aggiornamento. Valuta la migrazione a PHP supportato o l’uso di container per migliorare la sicurezza e la manutenibilità.

Note importanti

  • Non lasciare in produzione una versione di PHP non supportata. Pianifica l’aggiornamento.
  • Evita di disattivare permanentemente SELinux senza valutare gli impatti.

Buon lavoro con Restyaboard — usa le checklist sopra per una gestione ordinata e ripetibile dell’installazione.

Autore
Redazione

Materiali simili

Rimuovere i pop-up di Microsoft Family Safety
Windows

Rimuovere i pop-up di Microsoft Family Safety

Ridurre il rumore delle ventole del PC
Hardware

Ridurre il rumore delle ventole del PC

Giocare a Cards Against Humanity online con amici
Giochi

Giocare a Cards Against Humanity online con amici

Come aggiungere uno sfondo in Microsoft Word
Tutorial Word

Come aggiungere uno sfondo in Microsoft Word

Risolvere packet loss in Warframe
Gaming

Risolvere packet loss in Warframe

Sopravvivere a un'apocalisse zombie con l'iPhone
Sopravvivenza

Sopravvivere a un'apocalisse zombie con l'iPhone