Salve a Tutti, in questo Post cercherò di aiutare chi come me ha trascorso nottate di studi  per sistemare e rendere operativo un mini web server su raspberry aggiungendo installazione di un cloud server personale cui fare affidamento per gestire i propri file a casa come si fa per Dropbox o similari
Inserirò quindi a mano a mano che avrò tempo,
tutte le istruzioni necessarie per installare sul proprio Raspberry
(con os PiOs Bookworm o Trixie) il proprio sito personale e in aggiunta il proprio Cloud Personale.
Grazie allo stupendo lavoro eseguito con Nextcloud da cui è possibile gestire anche tramite App Android e IOS il proprio archivio personale.
Ringrazio Admin Zzed per il supporto ove necessita chiederò personalmente a lui...
Requisiti:
1) Raspberry pi 4/5/400/500
2) Microsd/Sd Classe 10 da 32 o 64gb (io consiglio 32Gb in quanto lo spazio non basta mai..)
3) OS installato PiOs Bookworm/Trixie la cui differenza è sul database e versione php
Maria DB 15.1 e php 8.2 per PiOs BookWorm,
Maria DB 11.8.3 e php 8.4 per PiOs Trixie
------------
Installazione Apache 2 su Raspbian
Primo Step accertiamoci che il nostro sistema operativo sia aggiornato e abbia ultimo kernel per fare ciò
apriamo il terminale e digitiamo
1)
Codice:
sudo apt update && sudo apt dist-upgradediamo la nostra password utente
2) diamo comando
Codice:
sudo rebootfinito possiamo procedere all'installazione del nostro web server apache 2
sempre da terminale digiteremo:
3)
Codice:
sudo apt-get install apache2 -yattendiamo che finisca
poi fatto cio dobbiamo installare php e mysql e phpmyadmin
Versione 8.2 per Raspbian Bookworm
Versione 8.4 per Raspbian Trixie
cambiano le versioni del Php ma la modalità di installazione resta la stessa
Installazione PHP su Raspbian Apache 2
Per coloro che abbiano Raspbian BookWorm digitare:
4)
Codice:
sudo apt-get install php8.2 libapache2-mod-php8.2 php8.2-cli php8.2-common php8.2-mbstring php8.2-gd php8.2-intl php8.2-xml php8.2-mysql php8.2-zip php8.2-curl php8.2-ldap php8.2-bz2 php-gmp php8.2-bcmath php-ssh2 php-apcu php-smbclient php-imagick libmagickcore-dev -yPer coloro che abbiano Raspbian Trixie digitare:
5)
Codice:
sudo apt-get install php8.4 libapache2-mod-php8.4 php8.4-cli php8.4-common php8.4-mbstring php8.4-gd php8.4-intl php8.4-xml php8.4-mysql php8.4-zip php8.4-curl php8.4-ldap php8.4-bz2 php-gmp php8.4-bcmath php-ssh2 php-apcu php-smbclient php-imagick libmagickcore-dev -yaccettiamo ogni richiesta da parte del terminale, fatto cio dobbiamo procedere nell'installazione del database Mysql che per raspbian Bokworm risulta essere MariaDb 15.1 per trixie e 11.8.3.
Installazione del Database Mysql per Apache 2
Per il Mysql Raspbian Bookworm e Trixie usano entrambi Maria DB
il comando da dare al terminale è :
Per Pios Bookworm e Trixie
6)
Codice:
sudo apt install mariadb-server -y[Durante l'installazione del database Maria Db non verrà impostata nessuna password di root del database, operazione che verrà fatta subito dopo installazione con questo comando:
6.1) accedere come root (importante), chi non avesse impostato una password per utente root puo farlo tramite comando
6.1.1)
Codice:
sudo passwd rootfatto ciò dare comando per accedere con password root appena creata o che avevamo già creato con:
6.1.2)
Codice:
su6.1.3) digitare per PiOs Bookworm
Codice:
mysql_secure_installationPer PiOs Trixie
Codice:
sudo mariadb-secure-installation6.1.4) premere Enter alla richiesta password root database in quanto è vuota inizialmente (non è impostata)
6.1.5) dare Y alla richiesta per cambiare password
6.1.6) creare password per root mariadb
6.1.7) digitare Y a tutte le altre domande
Tranne a quella che chiede di utilizzare nuovo set di password
li premere N
cosi anche per PiOs Bookworm e Trixie abbiamo il nostro utente root con password per il database Maria Db
Installazione di Phpmyadmin
digitare
7)
Codice:
sudo apt-get install phpmyadmin durante installazione ci verrà chiesto di inserire la password di root creata del nostro database,
importante è metterla e ripeterla correttamente , va messa la stessa come password dello stesso phpmyadmin.
Con queste Operazioni abbiamo installato un web server apache 2 con database mysql e gestione dello stesso tramite Gui di Phpmyadmin.
Non ci resta che creare un database tramite phpmyadmin per poter poi installare Nextcloud sul nostra Raspberry.
Prima procedura da fare è settare i permessi dell utente predisposto alla gestione apache (utente Data) sulla cartella www dove andrà ospitato il nostro sito o nel nostro caso Nextcloud per fare cio da terminale digitiamo:
8)
Codice:
sudo chown -R www-data:www-data /var/www/9) creiamo una cartella Chiamata Nextcloud nella directory www con questi comandi
9.1)
Codice:
sudo chmod -R 777 /var/www
        sudo mkdir /var/www/Nextcloudabilitiamo modulo rewrite php per la gestione degli url tramite
10)
Codice:
sudo a2enmod rewritemodifichiamo il file conf di apache per gestire il rewrite e non permettere la visualizzazione del contenuto delle carte ove non permesso con queste due voci da inserire in /etc/apache2/apache2.conf
quindi digitiamo
10.1)
Codice:
sudo nano /etc/apache2/apache2.confqui andremo ad inserire le 2 voci che ci interessano la prima va solo modificata in quanto gia esiste la voce, va solo settata la dicitura All alla voce AllowOverride
Citazione: <Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
nella seconda presupponendo che abbiate creato la cartella Nextcloud in /var/www
aggiungiamo sempre al file apache2.conf la voce:
Citazione: <Directory "/var/www/Nextcloud">
Options -Indexes
</Directory>
cosi facendo nessuno potrà vedere il contenuto delle cartelle ove non permesso.
Ora abilitiamo i moduli php necessari per il corretto funzionamento di nextcloud digitiamo i seguenti comandi:
11)
Citazione:sudo a2enmod headers
sudo a2enmod env
sudo a2enmod dir
sudo a2enmod mime
sudo chown -R www-data:www-data /var/www/Nextcloud/
Ho pensato di inserire installazione del php 8.2/8.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
Per PiOs Bookworm digitare
12)
Citazione:1) sudo systemctl stop apache2
2) sudo apt-get install php8.2-fpm
3) sudo a2enmod proxy_fcgi setenvif
4) sudo a2enconf php8.2-fpm
5) sudo a2dismod php8.2
6) sudo a2dismod mpm_prefork
7) sudo a2enmod mpm_event
8) sudo systemctl start apache2
Per PiOs Trixie
12.1)
Citazione:1) sudo systemctl stop apache2
2) sudo apt-get install php8.4-fpm
3) sudo a2enmod proxy_fcgi setenvif
4) sudo a2enconf php8.4-fpm
5) sudo a2dismod php8.4
6) sudo a2dismod mpm_prefork
7) sudo a2enmod mpm_event
8) sudo systemctl start apache2
Procediamo con la creazione dei certificati tls, in questo ci verrà in aiuto CertBot, pacchetto per os linux che si preoccupa dell'installazione dei nostri certificati gratuiti e del loro rinnovo dopo 90 gg
Citazione: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
preventivamente tramite qualunque programma ftp copiamo il nostro file
sul nostro desktop e rinominiamolo in nextcloud.conf
al suo interno modifichiamo solo il puntamento del nostro sito da /var/www/html in /var/www/Nextcloud
cartella che va creata nella directory /var/www
(chi avesse problemi in questo passaggio può postare sotto i suoi dubbi li risolveremo)
fatto ciò copiare il file nextcloud.conf in /etc/apache2/sites-available
digitiamo da terminale
12.2) diamo permessi di scrittura alla cartella site available
Citazione:sudo chmod -R 777 /etc/apache2/sites-available
con un software ftp o via terminale copiamo poi il file Nextcloud.conf sul nostro desktop in /etc/apache2/sites-available
digitiamo poi da terminale
13)
Citazione:sudo a2dissite 000-default.conf
sudo a2ensite nextcloud.conf
abbiamo disattivato il puntamento alla cartella html e abilitato quello che punta alla cartella Nextcloud.
Provvediamo a installare i certificati tls per far si che il nostro sito sia attendibile anche tramite protocollo https
per fare ciò ci avvaliamo di Certbot, gestore per os linux che provvederà anche al rinnovo dei certificati.
digitiamo da terminale usando gli Snap
14)
Citazione:1) sudo apt-get update
2) sudo apt install snapd
2.1) sudo snap install --classic certbot
2.2) sudo ln -s /snap/bin/certbot /usr/bin/certbot
a questo punto io preferisco generare certificati a curve ellitiche e non rsa accettate da qlc broser per farlo dare comando:
3) sudo certbot --apache --elliptic-curve secp384r1 -d miosito.it,www.miosito.it
(qui vi verrà chiesto la vostra email e il vostro url di riferimento, di solito un ddns che punta dall'esterno all ip del vostro raspberry porta 80 e 443)
anche qui chi avesse dubbi può postare sotto le proprie perplessità.
finito certbot creerà da solo il file https relativo al vostro file conf della porta 80 abilitando di suo tutti i moduli necessari per il corretto funzionamento del protocollo https
Il comando impostura in automatico lo script per il rinnovo certificati prima della scadenza
Per coloro che volessero aggiornarli in automatico o verificate se serve aggiornamento dare il comando:
15)
Codice:
sudo certbot renewbene ora installiamo il protocollo http/2.0 che velocizzerà e migliorerà di molto il caricamento delle nostre pagine web...
digitiamo da terminale
16)
Citazione:sudo a2enmod http2
nel file di configurazione di apache inseriamo questa voce per abilitare http/2.0
17)
Citazione:sudo nano /etc/apache2/apache2.conf
È inseriamo la voce
Citazione:Protocols h2 h2c http/1.1
diamo un bel:
18)
Citazione:sudo systemctl restart apache2
abbiamo finito nel configurare protocollo https e installazione del protocollo di comunicazione http/2.0
-------------------------------------
19) Per Nextcloud scaricare il file php di installazione dal link:
Codice:
https://download.nextcloud.com/server/installer/setup-nextcloud.phpe copiatelo nella vostra cartella Nextcloud: Es. (/var/www/Nextcloud)
aprite il vostro browser preferito e fatelo puntare al file php "setup-nextcloud.php"
esempio:=
Codice:
 https://www.sitovostro/setup-nextcloud.phpda li partirà step di configurazione in automatico che scaricherà tutto il pacchetto nextcloud in automatico e vi porterà poi alla pagina di prima configurazione,
dove dovrete poi inserire nome utente e password dell'amministratore, e i parametri del database
che se avete seguito la guida saranno:
nome utente = root
password = (quello che avete scelto quando avete installato mariadb sopra)
nome database= Nextcloud (o quello che avete creato accedento a phpmyadmin)
(ricordo che url per creare un database tramite phpmyadmin è https://www.vostrosito/phpmyadmin)
accedete con root e password del database Maria Db che avete scelto cliccate sul pulsante nuovo e date un nome al vostro database (es. nextcloud)
come ip database lasciate "localhost" e cliccate sul pulsante conferma.
----------------------------
20) Dopo installazione Nextcloud egli ci avvertirà di sistemare 4 errori non gravi da sistemare:
1) error hsts in rosso,
2) la memcache
3) opcache
4) error http referrer
questo per gestire al meglio il cloud,
Per errore hsts e Referrer Policy basta aggiungere la seguente stringa al file nextcloud-ssl.conf in precedenza creato grazie a certbot
(il nome cambia in base a quello che volete voi dare basta sia il conf che richiama la porta 443 ssl)
Citazione:Codice:<IfModule mod_headers.c>
Header set Referrer-Policy "no-referrer"
Header always set Strict-Transport-Security "max-age=15552000; includeSubDomai$
</IfModule>
per gli altri 2 errori invece basta modificare il file config.conf di nextcloud situato in
(https://www.sitovostro/Nextcloud/config/config.php)
aggiungendo la seguente voce sotto le altri simili:
20.1) Per memcache
Codice:
Per Bookworm
1) sudo nano /etc/php/8.2/cli/conf.d/20-apcu.ini
Per Trixie 
1 sudo nano /etc/php/8.4/cli/conf.d/20-apcu.ini
aggiungere la direttiva 
2) apc.enable_cli = 1
inserendolo poi con il comando:
3) sudo nano /var/www/Nextcloud/config/config.php
La voce:
3) 'memcache.local' => '\OC\Memcache\APCu',20.2) Per opcache modificare il file php.ini situato in /etc/php/8.2/fpm per bookworm e /etc/php/8.4/fpm per Trixie
con il comando
Per PiOs Bookworm
Codice:
sudo nano /etc/php/8.2/fpm/php.iniPer PiOs Trixie
Codice:
sudo nano /etc/php/8.4/fpm/php.iniaggiungere le seguenti voci al file:
Codice:
opcache.enable=1
opcache.interned_strings_buffer=64
opcache.max_accelerated_files=100000
opcache.memory_consumption=1024
opcache.save_comments=1
opcache.revalidate_freq=1riavviamo il servizio php fpm con il comando:
Per PiOs Bookworm
Codice:
sudo service php8.2-fpm restartPer PiOs Trixie
Codice:
sudo service php8.4-fpm restartdiamo un bel
Codice:
sudo reboote abbiamo così finito
ci ritroveremo quindi installato e configurato il nostro cloud personale.
Grazie di cuore a chi ha avuto la costanza di leggermi fino in fondo... See You Ti@er

![[-] [-]](https://forum.raspberryitaly.com/images/square/collapse.png)

 


 
	

 ).
  ). 
 
	 Facebook
  Facebook
			 Twitter
  Twitter
			 Google +
  Google +
				 Youtube
  Youtube
			 Telegram
  Telegram