Installare Restyaboard su CentOS 7

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):
Accedi con l’username admin e password restya (cambia subito la password dopo il primo login). Dopo il login vedrai la dashboard:
Per creare una nuova board clicca sull’icona a sinistra e poi su Add Board o Organization:
Scegli un nome e un template:
Esempio di board creata:
Per accedere al pannello di amministrazione clicca Admin in basso a destra e poi Settings in alto:
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
- Test: replica l’ambiente in staging.
- Backup: dump del DB e archiviazione dei file.
- Aggiornamento: esegui l’upgrade dei pacchetti e del codice.
- Verifica: controlla log, funzionalità principali e login.
- 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.
Materiali simili

Rimuovere i pop-up di Microsoft Family Safety

Ridurre il rumore delle ventole del PC

Giocare a Cards Against Humanity online con amici

Come aggiungere uno sfondo in Microsoft Word

Risolvere packet loss in Warframe
