• Benvenuti su RaspberryItaly!
Benvenuto ospite! Login Login con Facebook Registrati Login with Facebook


Valutazione discussione:
  • 1 voto(i) - 5 media
  • 1
  • 2
  • 3
  • 4
  • 5

[-]
Tags
phpmyadmin mysql apache nextcloud 2 guida

Guida: Apache 2 + Mysql + Phpmyadmin + Nextcloud
#1
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 Raspbian Jessie o Stretch) 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 1/2/3

2) Microsd/Sd Classe 10 da 16 o 32gb (io consiglio 32Gb in quanto lo spazio non basta mai..)

3) OS installato Raspbian Jessie o Stretch la cui differenza è sul database e versione php

mysql e php 5.x per Raspian Jessie, 

Maria DB e php 7.0 per Raspian Stetch

------------


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-upgrade

diamo la nostra password utente

2)
Codice:
sudo rpi-update

3) diamo comando
Codice:
sudo reboot

finito possiamo procedere all'installazione del nostro web server apache 2

sempre da terminale digiteremo:

4) 
Codice:
sudo apt-get install apache2 -y

attendiamo che finisca 

poi fatto cio dobbiamo installare php e mysql e phpmyadmin

Installazione php v.5.x per raspbian Jessie

versione 7.0 per Raspbian Stretch

cambiano le versioni del Php ma la modalità di installazione resta la stessa

Installazione PHP su Raspbian Apache 2

Per coloro che abbiano Raspbian Jessie digitare:

5) 
Codice:
sudo apt-get install php5 libapache2-mod-php5 php5-mysql php5-curl php5-gd php5-IDN php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl php5-ldap php-apcu php-ssh2 php-smbclient php-imagick libmagickcore-dev -y



Per coloro che abbiano Raspbian Stretch digitare:

5.1) 
Codice:
sudo apt-get install php7.0 libapache2-mod-php7.0 php7.0-cli php7.0-common php7.0-mbstring php7.0-gd php7.0-intl php7.0-xml php7.0-mysql php7.0-mcrypt php7.0-zip php7.0-curl php7.0-ldap php-ssh2 php-apcu php-smbclient php-imagick libmagickcore-dev -y

accettiamo ogni richiesta da parte del terminale, fatto cio dobbiamo procedere nell'installazione del database Mysql che per raspbian Jessie risulta essere Mysql mentre per raspbian Stretch si è passati alla gestione del database tramite Maria DB.

Importante ricordare che mentre per Mysql Jessie la password di root viene impostata nella fase di installazione del database, per Maria Db la password di root della release Raspbian Stretch essa viene impostata successivamente all'installazione.

Installazione del Database Mysql per Apache 2


Per il Mysql Raspbian Jessie e Maria DB per Raspbian Stretch 
il comando da dare al terminale è simile
sebbene vengano installate due diverse tipologie di Database,
ripeto: Mysql per Jessie e Maria DB per Raspbian Stretch

6) 
Codice:
sudo apt-get install mysql-server -y

Raspbian Jessie

[con questo comando nel terminale per Jessie andrà impostata la password di root del Database 

importante segnarla e ricordarla

perchè ci servirà per gestire il database tramite poi phpmyadmin]

Raspbian Stretch

[Durante l'installazione del database Maria Db a differenza di Jessie non verra impostata nessuna password di root del database, operazione che verra 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 root
 
   fatto cio dare comando per accedere con password root appena creata o che avevamo già creato con:

6.1.2) 
Codice:
su
 

6.1.3) digitare 
Codice:
mysql_secure_installation

6.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

cosi anche per Raspbian Stretch abbiamo il nostro utente root con password per il database Maria Db

Installazione di Phpmyadmin

digitare 

7) digitare 
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.

N.B.= Per raspbian Stretch con database mariadb si puo ricevere errore tentando di accedere al proprio PhpMyAdmin:

phpmyadmin #1698 - Access denied for user 'root'@'localhost'
Mysql tries to authenticate root using plugin, not password. You need to disable plugin usage for root.


Per risolverlo digitiamo a terminale:

7.1)    
Codice:
sudo mysql -u root
use mysql;
update user set plugin='' where User='root';
flush privileges;
\q
sudo reboot

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/Nextcloud


abilitiamo modulo rewrite php per la gestione degli url tramite

10) 
Codice:
sudo a2enmod rewrite

modifichiamo 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 chmod -R 777 /etc/apache2/apache2.conf 
      
       sudo nano /etc/apache2/apache2.conf 


qui 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 7.0 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 Raspian Jessie digitare

12)
Citazione:1) sudo systemctl stop apache2
    
2) sudo apt-get install php5-fpm

3) sudo a2enmod proxy_fcgi setenvif

4) sudo a2enconf php5-fpm 

5) sudo a2dismod php5 

6) sudo a2dismod mpm_prefork 

7) sudo a2enmod mpm_event

8) sudo systemctl start apache2

Per Raspian stretch

12.1)
Citazione:1) sudo systemctl stop apache2
    
2) sudo apt-get install php7.0-fpm

3) sudo a2enmod proxy_fcgi setenvif

4) sudo a2enconf php7.0-fpm 

5) sudo a2dismod php7.0 

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/Nexcloud 

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 cio ci avvaliamo di Certbot, gestore per os linux che provevdere anche al rinnovo dei certificati.

digitiamo da terminale

14) 
Citazione:    sudo wget https://dl.eff.org/certbot-auto

    sudo chmod a+x certbot-auto

     sudo apt update && sudo apt dist-upgrade

partiamo con la configurazione da terminale digitiamo

15) 
Citazione:sudo /path/to/certbot-auto --apache

dove per path to both si intende il percorso dove avete salvato il file certbot-auto

(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)

fatto cio vi verrà chiesto se certbot dovra redirigere le chiamate http in https seconda opzione sceglietela

anche qui chi ha dubbi può postare sotto i propri dubbi.

finito certbot creerà da solo il modulo nextcloud-ssl.conf abilitando di suo tutti i moduli necessari per il corretto funzionamento del protocollo https

Citazione:Siccome i certificati hanno una durata di tre mesi per effettuare il rinnovo automatico, impostiamo nel crontab di raspbian il controllo e il rinnovo automatico 2 volte al giorno, per evitare di ritrovarci con i certificati scaduti, per fare ciò digitiamo a terminale:

15.1) sudo crontab -e
         
         e inseriamo come ultima riga la seguente voce:

15.2) 0 0,12 * * * python -c 'import random; import time; time.sleep(random.random() * 3600)' && /home/pi/certbot-auto renew >/dev/null 2>&1


cosi facendo il sistema provvederà al rinnovo automatico dei certificati https lets encrypts

bene ora installiamo il protocollo http/2.0 che velocizera 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.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"

esempio:=

Codice:
 https://www.sitovostro/setup-nextcloud.php

da 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:<IfModule mod_headers.c>
 Header always 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.conf)

aggiungendo la seguente voce sotto le altri simili:

20.1) Per memcache

Codice:
'memcache.local' => '\OC\Memcache\APCu',

20.2) Per opcache modificare il file php.ini situato in /etc/php/7.0/fpm con il comando

Codice:
sudo nano /etc/php/7.0/fpm/php.ini

aggiungere le seguenti voci al file:

Codice:
opcache.enable=1
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1

riavviamo il servizio php fpm con il comando:

Codice:
sudo service php7.0-fpm restart

diamo un bel 

Codice:
sudo reboot
e 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
Risposta
#2
To Be Continued...
Risposta
#3
occhio ai tag [ b ] e agli spazi davanti le righe nei quote Wink
Coltiva linux, che windows si pianta da solo! (cit.)
Risposta
#4
sistemato...
Risposta
#5
Continuerò la guida se vedrò una partecipazione degli utenti maggiore questo per evitare di fare il classico post della Pastina bella è pronta.

Non vedo domande o commenti e non voglio che i giorni passati a capire come arrivare a tanto siano lasciati così.

Manca sezione certificati TLS per https, installazione protocollo http/2.0 per Apache

E installazione nextcloud con annesse configurazioni opcache e memcache hsts

Ma non voglio ripeto arrivare a dare la minestra bella è pronta così senza una partecipazione reale. Guida che mi è costata notti di studio
Risposta
#6
condivido parzialmente il punto di vista.
il fatto che nessuno scriva non vuol dire che non lo farà qualcuno nel prossimo futuro, non c'è la stessa visibilità di una pubblicità su facebook ovviamente Smile

se ti rincuora sono interessato alla guida per adattare un raspy per una applicazione simile e avevo la pagina nei preferiti.
non ho domande perchè sono pratico nel mondo linux. ciò non significa che non interessi.

se vorrai proseguire sarà a valore aggiunto per l'utenza del forum in ogni caso.

saluti.
Coltiva linux, che windows si pianta da solo! (cit.)
Risposta
#7
(10/01/2018, 00:00)Tiger Ha scritto: Continuerò la guida se vedrò una partecipazione degli utenti maggiore questo per evitare di fare il classico post della Pastina bella è pronta.

Non vedo domande o commenti e non voglio che i giorni passati a capire come arrivare a tanto siano lasciati così.

Manca sezione certificati TLS per https, installazione protocollo http/2.0 per Apache

E installazione nextcloud con annesse configurazioni opcache e memcache  hsts

Ma non voglio ripeto arrivare a dare la minestra bella è pronta così senza una partecipazione reale. Guida che mi è costata notti di studio

Io sono interessato anche perché la guida ad una prima occhiata mi sembra molto dettagliata. Ho tentato senza riuscirci di installare sul mio Rpy owncloud (vedi i miei post) e vorrei ritentare. Per il mio livello le operazioni che descrivi le trovo molto complesse e vorrei decidere se dedicarmici una volta che sarà completata e che ho un po' di tempo a disposizione (che quello manca sempre Sad ).

Quindi ti chiedo di non mollare !!!

Saluti

LaPa
With a little/big help from my friends Rolleyes
Risposta
#8
Come vedi siamo tutti "con le orecchie dritte" Smile

Inviato dal mio Redmi Note 4X utilizzando Tapatalk
Coltiva linux, che windows si pianta da solo! (cit.)
Risposta
#9
Ok perfetto. Datemi tempo che organizzo bene il resto. Stay Tuned.
Risposta
#10
aggiornata guida con aggiornamento modulo php con la nuova configurazione php fmp fast cgi,

inserita procedura per creare certificati tls (https) gratuiti con rinnovo automatico, e installazione protocollo http/2.0 consigliato per un caricamento ultra veloce del nostro sito web o cloud.

manca creazione database tramite phpmyadmin e installazione nextcloud con le modifiche necessarie per tenerlo a puntino

Per qualunque dubbio non esitate a scrivere risponderò al più presto

GRR
Risposta
  


Vai al forum:


Navigazione:
Forum con nuovi Post
Forum senza nuovi post
Forum bloccato
Forum Redirect