![]() | MarcoSoftware84 | ||
Area Downloads | Tutorials e istruzioni varie |
Per ulteriori dettagli sul nome da comunicarmi vedere le informazioni in fondo alla pagina.
Torna alla pagina Indice dei tutorials di MarcoSoftware84
Costruire da soli un Server Web ed ospitarlo fisicamente in casa propria su un Raspberry
Sommario:
Requisiti:
Prendere un dominio da puntare al Raspberry per utilizzare nextcloud
Per poter utilizzare Nextcloud al meglio è necessario prendere un dominio, con un nome di dominio da collegare al Nextcloud, per dare un indirizzo sempre attendibile al protocollo di HTTPS altrimenti non riuscirai a completare la procedura.Subito dopo l’accesso visualizzerà la schermata per la gestione del dominio basterà mettere il nome del dominio principale e fare click su Add.
preparazione dell’hardware
Per prima cosa bisogna scaricare l’immagine del sistema operativo del Raspberry: RaspberryPi O.S. versione a 64 bit, scaricabile dal seguente link:
https://downloads.RaspberryPi.org/raspios_arm64/images/
Poi scrivetela sull’SD da inserire nel Raspberry.
Una volta fatto ciò inserite la SD nel Raspberry e avviatelo.
Quindi fate tutto il setup del sistema impostandolo come vi piace di più.
Tra le configurazioni da fare nel sistema dovrete installare il software della batteria PiJuice HAT (per RaspberryPi 4).
Per fare ciò leggete questa procedura:
Installare PiJuice Software su RaspberryPi O.S. 64-bit
se utilizzate una delle prime versioni del sistema operativo del Raspberry sopra citate il comando:
sudo apt install pijuice-base piuice-guinon funzionerà.
Una volta impostato il sistema dovete preparare il disco SSD da attaccare al Raspberry:
Dovrete formattarlo dal sistema operativo del Raspberry con il file system EXT4, per integrarlo nel sistema del Raspberry.
Io consiglio di utilizzare l’utility gparted che si puo installare con il comando:
sudo apt install gpartedche andremo a montare durante la configurazione del web server
Fatto ciò dovete assicurarvi di avere attivato nella configurazione del sistema operativo la funzione ssh, in modo da usare il vostro Raspberry come un vero e proprio server senza monitor e tastiera collegati fisicamente.
Per accedere al Raspberry da remoto vi basta digitare in un terminale del vostro computer, sia che abbia Windows dalla versione 10 (o successiva), o una qualsiasi distribuzione di Linux il seguente comando:
ssh utente@indirizzoIPutente = nome dell’utente del Raspberry utilizzato per accedere al sistema operativo ad esempio: pi.
Al paragrafo successivo imposterete il vostro Raspberry con un indirizzo IP statico, così da poter accedere al Raspberry con facilità digitando il solito indirizzo per accedere al Raspberry da un altro PC.
Sblocchiamo le porte del protocollo HTTP e HTTPs
impostiamo nel router:
ATTENZIONE!!!:
Ogni router ha le procedure per fare ciò che vi chiedo di inserire diverse e quindi non posso elencare la procedura specifica per arrivare al risultato, ma posso dirvi di controllare le istruzioni del vostro router, o di confrontare il sito del produttore del vostro router.
Impostare l’indirizzo IP del vostro Raspberry con un indirizzo statico, ad esempio:
192.168.1.25in seguito sblocchiamo le porte:
80 per il protocollo HTTP 443 per il protocollo HTTPsandando nella sezione port forewarding del vostro router individuando anche l’IP del Raspberry precedentemente assegnato.
Colleghiamo il nostro dominio al nostro router:
bisogna andare nella sezione dyndns del router e bisogna inserire i parametri richiesti che trovate sul sito di chi vi ha fornito il dominio.
Installazione Apache 2 su RaspberryPi O.S.
(d’ora in poi utilizzeremo la shell remota ssh.)
Prima di tutto accertiamoci che il nostro sistema operativo sia aggiornato e abbia l’ultimo kernel,
per fare ciò apriamo il terminale e digitiamo:
sudo apt update sudo apt upgradediamo la nostra password dell’utente root.
effettuiamo un riavvio del Raspberry digitiamo il comando:
sudo rebootfatto l’aggiornamento del sistema adesso possiamo procedere all’installazione del nostro web server apache 2.
sudo apt install apache2diamo la conferma all’installazione dei pacchetti e attendiamo che finisca l’installazione.
Installazione di PHP versione 7.4 e aggiornamento all’ultima versione nel nostro RaspberryPi O.S.
per installare il PHP nel Raspberry dobbiamo dare la seguente stringa da terminale contenuta nel riquadro sotto:sudo apt install php7.4 libapache2-mod-php7.4 php7.4-cli php7.4-common php7.4-mbstring php7.4-gd php7.4-intl \ php7.4-xml php7.4-mysql php7.4-zip php7.4-curl php7.4-ldap php7.4-bz2 php-ssh2 php-apcu \ php-imagick libmagickcore-dev (La barra rovesciata (\) è lì solo per indicare che il comando deve essere digitato tutto su una riga).Diamo la conferma per l’installazione dei pacchetti trovati.
Adesso creiamo il seguente script per aggiungere il repository ufficiale del PHP e aggiornare la versione del PHP.
Innansi tutto apriamo l’editor NANO per creare il file "php-update.sh" nella propria home del Raspberry, digitiamo sempre nel terminale:
sudo nano php-update.shnella finestra che si è aperta scriviamo il seguente contenuto:
#!/bin/bash sudo apt install lsb-release -y curl https://packages.sury.org/php/apt.gpg | \ sudo tee /usr/share/keyrings/suryphp-archive-keyring.gpg >/dev/null echo "deb [signed-by=/usr/share/keyrings/suryphp-archive-keyring.gpg] \ https://packages.sury.org/php/ $(lsb_release -cs) main" | \ sudo tee /etc/apt/sources.list.d/sury-php.list sudo apt update sudo apt upgrade -y phpver=$(php -v) phpversion=$(echo ${phpver:4:3}) sudo apt install php$phpversion libapache2-mod-php$phpversion php$phpversion-cli \ php$phpversion-common php$phpversion-mbstring php$phpversion-gd php$phpversion-intl \ php$phpversion-xml php$phpversion-mysql php$phpversion-zip php$phpversion-curl \ php$phpversion-ldap php$phpversion-bz2 php-ssh2 php-apcu php-imagick libmagickcore-dev \ php$phpversion-fpm -y # (La barra rovesciata (\) è lì solo per indicare che il comando deve essere digitato tutto su una riga).poi salviamo il file con la combinazione dei tasti CTRL + O, premere INVIO e usciamo dall’editor "nano" con CTRL + X.
sudo chmod 0777 php-update.shquindi eseguiamo lo script con il comando:
sudo ./php-update.shSi ricorda di rieseguire questo script per verificare se sono presenti nuove versioni di PHP periodicamente per ottenere sempre l’ultima versione del software.
Installazione del Database Mysql (MariaDB) per Apache 2
Il comando da dare al terminale per l’installazione del gestore del database (MariaDB) è il seguente:sudo apt install mariadb-serverDiamo la solita conferma per l’installlazione dei pacchetti di MariaDB.
Durante l’installazione del database (MariaDB) non verrà impostata nessuna password di root del database, operazione che verrà fatta subito dopo l’installazione con questo comando:
Accedere come root con il comando:
sudo su(IMPORTANTE!):
sudo passwd roote inserire la password per l’utente root.
a questo punto digitare:
mysql_secure_installation
Per uscire dall’utente root Digitare:
exit
Installazione di Phpmyadmin
Per installare PHPMYADMIN digitare nel terminale il seguente comando:sudo apt install phpmyadminDurante l’installazione ci verrà chiesto di inserire la password dell’utente root di MariaDB creata al passo precedente per il nostro database.
IMPORTANTE:
mettere e ripetere correttamente, va messa la stessa come password inserita precedentemente per l’utente root del database MariaDB.
Configurazione del database per Nextcloud
Per configurare il database è necessario entrare in MariaDB con il seguente comando:sudo mariadb -u root -pInserire la password dell’utente root database precedentemente impostata.
A questo punto impostare l'utente del database per Nextcloud con il comando:
create user user1@localhost identified by ’password1’;MariaDB vi risponderà:
Query OKsignifica che il comando è andato a buon fine.
ovviamente user1 e password1 sono il nome utente da creare e la relativa password.
Ora creiamo il database con il comando:
create database Nextcloud;Adesso assegnamo i permessi dell’utente appena creato al database con il comando:
grant all privileges on Nextcloud.* to user1@localhost identified by ’password1’;Adesso vediamo se l'assegnazione dei privilegi è andata a buon fine:
use mysql;e adesso vediamo gli utenti associati al database Nextcloud:
select db, host, user from mysql.db where db = ’Nextcloud’;Adesso si può uscire dal programma MariaDB con il comando:
exitConsiglio di scrivere l’utente, la password e il nome del database che abbiamo creato su un foglio per non dimenticarli.
Configurazione dell’accesso all’interfaccia grafica di PHPMYADMIN
Per poter accedere all’interfaccia di PHPMYADMIN dobbiamo collegare il server WEB apache2 alla configurazione di PHPMYADMIN in questo modo:sudo nano /etc/apache2/apache2.confandare alla fine del file che si è aperto e inserire alla fine del file la seguente riga:
Include /etc/phpmyadmin/apache.confPoi salvare il file con la combinazione di tasti CTRL + O.
sudo service apache2 restartPer accedere a PHPMYADMIN sarà necessario far utilizzare una password diversa dalla password di sistema al gestore del database (MariaDB) in questo modo:
sudo mariadbDigitare l’eventuale password di sistema che vi verrà chiesta.
use mysql update user set plugin=’mysql_native_password’ where user=’root’; flush privileges;Uscire dal gestore del database digitando:
exitAdesso si può accedere all’interfaccia di PHPMYADMIN digitando l’indirizzo seguente nel browser dal vostro computer:
http://www.nomedominio.it/phpmyadmin/Quindi inserire il nome utente del database ad esempio root e la relativa password creati durante l’installazione del gestore del database (MariaDB).
Configurazione del server WEB per l’utilizzo di Nextcloud
Prima procedura da fare è settare i permessi dell’utente predisposto alla gestione apache (utente www-data) sulla cartella www dove andrà ospitato il nostro sito o nel nostro caso Nextcloud per fare ciò da terminale digitiamo:sudo chown -R www-data:www-data /var/www sudo chmod -R 777 /var/wwwCreiamo una cartella chiamata Nextcloud nella directory www con questo comando:
sudo mkdir /var/www/NextcloudAdesso montiamo il disco esterno nella cartella creata /var/www/Nextcloud:
sudo blkid /dev/sda1dalla risposta del comando copiare il codice alfa-numerico contenuto tra le virgolette (") del parametro PARTUUID= e copiarlo nel campo qui sotto.
creare una copia di backup del file /etc/fstab in caso di problemi si ripristinerà il file originale:
sudo cp /etc/fstab /etc/fstab.backin caso dovete ripristinare il file dovete attaccare il monitor al Raspberry e la tastiera e avviarlo.
sudo cp /etc/fstab.back /etc/fstabAdesso modifichiamo il file /etc/fstab con il comando:
sudo nano /etc/fstabNel file che si è aperto andiamo ad inserire la riga che abbiamo completato con il codice che avevamo inserito precedentemente, subito sotto le altre righe presenti inserendo le tabulazioni tra un parametro e l’altro come si vede nella suddetta riga.
Adesso riavviamo il Raspberry con il comando da dare nel terminale:
sudo rebootper verificare se tutto è andato a buon fine digitare il comando:
df /var/www/NextcloudDiamo i permessi all’utente www-data nella cartella Nextcloud con i comandi:
sudo chown -R www-data:www-data /var/www/Nextcloud sudo chmod -R 0777 /var/www/NextcloudAdesso abilitiamo il modulo rewrite php per la gestione degli URL digitando il comando:
sudo a2enmod rewriteModifichiamo il file conf di apache per gestire il rewrite e non permettere la visualizzazione del contenuto delle cartelle dove non è permesso con queste due voci da inserire in /etc/apache2/apache2.conf:
sudo nano /etc/apache2/apache2.confQui andremo ad inserire le 2 voci che ci interessano la prima va solo modificata in quanto già esiste la voce, va solo settata la dicitura All alla voce AllowOverride.
<Directory /var/www/> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory>nella seconda presupponendo che abbiate creato la cartella Nextcloud in /var/www.
<Directory /var/www/Nextcloud> Options -Indexes </Directory>Così facendo nessuno potrà vedere il contenuto delle cartelle dove non è permesso.
Abilitare i moduli per il PHP
Ora abilitiamo i moduli php necessari per il corretto funzionamento di Nextcloud,sudo a2enmod headers sudo a2enmod env sudo a2enmod dir sudo a2enmod mime sudo chown -R www-data:www-data /var/www/NextcloudHo pensato di inserire l’installazione del php 7.4 fpm (FastCGI Process Manager).
PHP-FPM è uno dei tanti modi di implementazione PHP, che fa parte della suite Apache-Mysql-PHP sui vostri sistemi operativi preferiti.
Questa suite è stata rapidamente adottata nel World Wide Web perché di facile implementazione ed eseguibile su tutti e tre i principali sistemi operativi.
Nelle versioni precedenti PHP funzionava in parallelo al server Apache attraverso il protocollo CGI e FAST-CGI, ma il suo utilizzo non era semplice.
Incluso direttamente nella suite del web server Apache, la sua popolarità è esplosa per la sua breve configurazione e le sue prestazioni molto alte.
ne beneficerà tutto il web server apache2, da terminale digitiamo questi comandi:
sudo systemctl stop apache2 sudo apt install php7.4-fpm sudo a2enmod proxy_fcgi setenvif sudo a2enconf php7.4-fpm sudo a2dismod php7.4 sudo a2dismod mpm_prefork sudo a2enmod mpm_event sudo systemctl start apache2Si consiglia di aggiungere questi comandi allo script creato in precedenza per aggiornare il PHP (php-update.sh).
Installazione dei certificati TLS
Procediamo con la creazione dei certificati TLS, in questo ci verrà in aiuto CertBot, pacchetto per O.S. linux che si preoccupa dell’installazione dei nostri certificati gratuiti e del loro rinnovo dopo 90 giorni.
Andiamo a disattivare il file 000-default.conf situato in:
/etc/apache2/sites-availableÈ esso che contiene i dati di default del sito apache2, che punta alla cartella /var/www/html.
facciamo una copia del file 000-default.conf chiamandolo nextcloud.conf, digitiamo nel terminale:
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/nextcloud.confe adesso modifichiamolo con il comando:
sudo nano /etc/apache2/sites-available/nextcloud.confal suo interno rimuoviamo il cancelletto (#) davanti alla riga:
# ServerName www.example.come modifichiamo il nome del sito da puntare (www.example.com), nel nome dominio concordato con il gestore del dominio che abbiamo preso al primo passo della guida.
sudo a2dissite 000-default.confe adesso abilitiamo il nostro nextcloud.conf con il comando:
sudo a2ensite nextcloud.confAdesso installiamo i certificati TLS per far sì che il nostro sito sia attendibile anche tramite protocollo HTTPs.
sudo apt install snapd sudo snap install core sudo snap refresh core sudo snap install --classic certbot sudo ln -s /snap/bin/certbot /usr/bin/certbot sudo certbot --apache Se invece volete avere i certificati per più di un sottodominio vi basterà digitare il seguente comando:(qui vi verrà chiesto la vostra E-Mail e il vostro url di riferimento da associare al certificato, che è il nome di dominio che abbiamo concordato al primo passo di questa guida.
sudo certbot --duplicate --apache
Per coloro che volessero aggiornarli manualmente o verificare se serve aggiornare il certificato, dal terminale digitare il comando:
sudo certbot renew
Installazione del protocollo HTTP/2.0
Ora installiamo il protocollo HTTP/2.0 che velocizzerà e migliorerà di molto il caricamento delle nostre pagine web...sudo a2enmod http2nel file di configurazione di apache inseriamo questa voce per abilitare HTTP/2.0, digitiamo il seguente comando:
sudo nano /etc/apache2/apache2.confÈ inseriamo alla fine del file la seguente voce:
Protocols h2 h2c http/1.1Salviamo il file con la combinazione di tasti CTRL + O e diamo INVIO per confermare il salvataggio.
sudo systemctl restart apache2abbiamo finito nel configurare il protocollo HTTPs e l’installazione del protocollo di comunicazione HTTP/2.0.
Installazione di Nextcloud
Finalmente installiamo Nextcloud, scaricare il file di installazione di Nextcloud dal link seguente:https://download.nextcloud.com/server/installer/setup-nextcloud.php
e copiatelo nella vostra cartella Nextcloud:
Es. (/var/www/Nextcloud)aprite il vostro browser preferito e fatelo puntare al file php "setup-nextcloud.php".
https://www.sitovostro/setup-nextcloud.phpda lì partirà lo step di configurazione in automatico che scaricherà tutto il pacchetto nextcloud in automatico e vi porterà poi alla pagina di prima configurazione.
nome utente = root password = (quello che avete scelto quando avete installato MariaDB) nome database = Nextcloudpoi cliccate sul pulsante conferma e sì completerà l’installazione di Nextcloud chiedendo la conferma dell’installazione delle applicazioni server aggiuntive.
(o quello che avete creato accedendo a phpmyadmin, o durante la configurazione del database.) IP del database = localhost
sudo -u www-data php --define apc.enable_cli=1 /var/www/Nextcloud/updater/updater.phar --no-interactionperiodicamente inserendolo anche in uno script da eseguire almeno una volta a settimana con un operazione pianificata.
sudo -u www-data php /var/www/Nextcloud/occ app:update --allperiodicamente inserendolo anche in uno script da eseguire almeno una volta al giorno con un operazione pianificata.
Utilizzare Nextcloud per sincronizzare i file e le cartelle del PC
Ora che si è installato tutto il web server e Nextcloud bisogna utilizzarlo per la sincronizzazione tra i vari dispositivi.
Prima di tutto dobbiamo creare gli utenti per i componenti della famiglia che utilizzano i PC.
Per crearli si deve entrare nel server di Nextcloud del nostro Raspberry, aprendo il browser del PC e inserire l’indirizzo del sito del Raspberry, che abbiamo creato all’inizio di questa guida con duckdns.org.
Fare l’accesso con l’utente amministratore che abbiamo creato durante l’installazione di Nextcloud.
Una volta dentro cliccare sul menù del profilo dell’utente e cliccare su utenti, poi cliccare su "+" per aggiungere l’utente e inserire i dati richiesti:
Nome utente = il nome della persona che fa l’accesso a Nextcloud. Nome visualizzato = il nome che viene visualizzato dentro l’interfaccia di Nextcloud. Password = la password dell’utente che fa laccesso. Indirizzo e-mail = la mail per dare notifiche all’utente da parte del server di Nextcloud, se è attivato il servizio di invio delle mail. Poi si deve scegliere il gruppo di utenti a cui far appartenere la persona ad esempio aggiungere il gruppo Famiglia cliccando sul relativo "+" per aggiungere il gruppo se non è presente. Poi scegliere le quote dello spazio da assegnare per l’archiviazione dei dati, quindi cliccare su "Aggiungi utente".IMPORTANTE!!!:
Effettuare l’accesso con le credenziali dell’utente, per impostare la lingua dell’interfaccia del Nextcloud, cliccando su "impostazioni" e cercare la voce "Language" e selezionare "Italian".
Poi sempre dentro le impostazioni selezionare la "Località" selezionando "Italia".
Per l’installazione dell’applicazione per windows su tutti i PC, bisogna scaricare e installare l’applicazione dal nostro server Nextcloud in questo modo:
Entrare nel sito del server di Nextcloud, digitando nella barra degli indirizzi del browser dove vogliamo installare il client di Nextcloud.
Fare l’accesso al Nextcloud conil propio utente che avete creato.
Per scaricare l’applicazione fare click sul menù del profilo dell’utente, poi fare click su impostazioni.
Nella parte sinistra della schermata che si è aperta cliccare su "app mobile e desktop".
Nella pagina che si è aperta cliccare su "app desktop windows 8.1+", di seguito vi verrà chiesto di salvare o aprire il file che si sta scaricando, cliccare su apri e eseguite l’installazione completa dal computer locale.
alla fine dell’installazione dovete riavviare il PC, dopo il riavvio fate l’accesso al client di Nextcloud inserendo il sito del vostro Raspberry associato a Nextcloud, di seguito dovete fare l’accesso con il vostro utente creato per utilizzare il PC con la sincronizzazione delle cartelle del PC.
Per sincronizzare le cartelle bisogna cliccare sul menù del profilo dell’app client di Nextcloud e cliccare su impostazioni, nella finestra che si apre sarà visualizzato un riquadro con le cartelle attualmente sincronizzate e sotto un pulsante "Aggiungi connessione di sincronizzazione", se si vuole aggiungerne una nuova cliccate quel pulsante e si aprirà una procedura che vi farà scegliere la cartella locale del computer in uso al momento, nella schermata successiva vi farà scegliere la cartella sul server del vostro Raspberry, dove copiare i file contenuti nella cartella locale scelta in precedenza.
Nella ultima schermata vi farà scegliere se vorrete scaricare dal server solo un collegamento virtuale ai file contenuti sulla cartella del Raspberry, o scaricare le copie complete dei file su PC.
Ovviamente se vorrete prendere la sincronizzazione anche su un altro computer dovrete scaricare l’app desktop anche sull’altro PC e aggiungere le solite connessioni di sincronizzazione che avete messo nel primo PC.
Buon divertimento con la vostra nuvola di dati in casa propria!!!
Marcosoftware84 non è affiliato o approvato da Microsoft Corporation, il software disponibile su questo sito è distribuito così com’è senza alcuna garanzia.
Assicuratevi di avere fatto il BackUP di tutti i dati importanti del computer dove utilizzerete il software di questo sito.
Io sono soltanto un appassionato programmatore dei sistemi operativi MS-Dos e Windows.
Questo sito è stato creato per chi vuole imparare a programmare i sistemi operativi della Microsoft come MS-Dos e Windows tramite le mie guide presenti sul sito.
Questo sito non utilizza cookie per profilare i vostri dati, ma viene utilizzato soltanto uno script in linguaggio PHP che rileva l’indirizzo IP pubblico della vostra connessione internet solo per scopo statistico e personale, i vostri dati non vengono divulgati o venduti a nessuno!
Se volete e se vi fa piacere potete comunicarmi il vostro nome o NickName inserendolo nel banner in cima alla pagina.
Se mi volete contattare potete scrivere nel form all’indirizzo https://account.marcosoft84.org/contattami.
Se volete contribuire ad ampliare l’archivio di file dell’Area Downloads donando al pubblico i programmi creati da voi, oppure in vostro possesso, potete farlo compilando il form al seguente indirizzo https://account.marcosoft84.org/inviami-file.
Questo sito nella maggior parte delle sue pagine (dove è possibile) mantiene la massima compatibilità con i sistemi operativi e le versioni dei browser forniti nell’Area Downloads per essere visualizzato correttamente con questi software.
Non è consentito l’uso illecito del contenuto di questo sito con lo scopo di: creare virus per infettare computer, costruire o inviare trojan, comprometterne il funzionamento dei sistemi operativi installati, ottenere contenuti sensibili degli utenti che utilizzano i computer d’epoca per farne profitto vendendoli a terze parti.
Marcosoftware84 non risponde in nessun caso di eventuali danni a persone o cose riconducibili all’uso illecito e scorretto dei contenuti di questo sito da parte degli utenti malintenzionati.
Questo sito è stato reso disponibile al pubblico il 23 Giugno 2023 alle ore 19:00.
L’ultimo aggiornamento è stato effettuato il 31 Marzo 2025 alle ore 23:20.