1

Installare MySQL su Debian 10 e non MariaDB

MySQL e non Maria DB

Installare MySQL e non MariaDB su Debian 10.

Nel 2008 la SUN Microsystem ha acquistato MySQL AB, la società finlandese proprietaria del codice sorgente di MySQL che veniva però distribuito con la licenza GNU GPL oltre che con una licenza commerciale.  Michael “Monty” Widenius è il programmatore finlandese che ha iniziato e guidato per molti anni MySQL. Quando, all’inizio del 2008, la Sun Microsystems ha acquistato MySQL AB, Widenius si è trovato a disagio nella nuova situazione lavorativa, criticando la gestione dello sviluppo della versione 5.1 di MySQL e da vita a MariaDB, ovvero un fork della comunità del progetto MySQL.  Sebbene MariaDB funzioni bene nella maggior parte dei casi, se hai bisogno di funzionalità trovate solo in Oracle MySQL, puoi installare e utilizzare i pacchetti da un repository gestito dagli sviluppatori di MySQL.

Installando il pacchetto mysql attraverso i repository debian verrà proposto in modalità predefinita MariaDB, per questo per utilizzare Oracle MySQL è necessaria una installazione a parte.

LAMP/LEMP e la M di MySQL

MySQL è la M nello stack LAMP, un insieme di software open source comunemente usato che include anche Linux, il server Web Apache e il linguaggio di programmazione PHP.

A differenza di Apache nel LAMP nello stack LEMP troviamo il Web Server NginX.

Installazione Oracle MySQL

Per installare l’ultima versione di MySQL, aggiungeremo questo repository, installeremo il software MySQL stesso, proteggeremo l’installazione e infine verificheremo che MySQL sia in esecuzione e risponda ai comandi.

Iniziamo installando gnupg:

apt-get install gnupg

spostiamoci nella directory temporanea, scarichiamo l’ultimo pacchetto .deb di MySQL e installiamo i repositry

cd /tmp
wget https://dev.mysql.com/get/mysql-apt-config_0.8.19-1_all.deb
dpkg -i mysql-apt-config_0.8.19-1_all.deb

a questo punto avremo il seguente contenuto nel file /etc/apt/sources.list.d/mysql.list

### THIS FILE IS AUTOMATICALLY CONFIGURED ###
# You may comment out entries below, but any other modifications may be lost.
# Use command 'dpkg-reconfigure mysql-apt-config' as root for modifications.
deb http://repo.mysql.com/apt/debian/ buster mysql-apt-config
deb http://repo.mysql.com/apt/debian/ buster mysql-8.0
deb http://repo.mysql.com/apt/debian/ buster mysql-tools
#deb http://repo.mysql.com/apt/debian/ buster mysql-tools-preview
deb-src http://repo.mysql.com/apt/debian/ buster mysql-8.0

 

durante l’installazione verrà proposta una finestra di dialogo con la possibilità di personalizzare l’installazione

procediamo ora con l’aggiornamento del package manager e l’installazione del pacchetto mysql-server:

apt-get update && apt-get install mysql-server -y

Potremmo ricevere l’errore di “importazione della chiave PGP”, in questo caso non ci resta che scaricarla:

apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29

e ora ripetere il comando per aggiornare la lista dei pacchetti tramite APT e poi l’installazione del nostro RDBMS

ultimo passo per completare l’installazione  è l’inserimento della password dell’utente root del RDBMS Oracle MySQL. Prestiamo attenzione a questa password in quanto ci servirà per la gestione amministrativa del nostro database.

 

 

Verifichiamo che il demone sia attivo:

systemctl status mysql

e ora lanciamo il comando per mettere in sicurezza la nostra installazione di MySQL

mysql_secure_installation

Si conclude l’installazione di MySQL, da questo momento in poi è possibile gestire il nostro database da command line con il seguente comando:

mysql -u root -p

Abilitiamo il demone all’avvio del sistema

systemctl enable mysql

Tutto pronto, possiamo ora inziare a creare i nostri database e i relativi utenti.




Upgrade Zabbix 5.2 to Zabbix 5.4 Debian 10

Questa guida descrive i passaggi per eseguire l’aggiornamento di Zabbix dalla versione 5.2 alla 5.4.

Il primo step è fermare Zabbix.

# systemctl stop zabbix-server

Creiamo un backup del database e dei file della release 5.2

# mysqldump -u user_zabbix -ppassword_zabbix db_zabbix > zabbix_server.sql
# mkdir /opt/zabbix-backup/
# cp /etc/zabbix/zabbix_server.conf /opt/zabbix-backup/
# cp /etc/nginx/conf.d/zabbix.conf /opt/zabbix-backup
# cp -R /usr/share/zabbix/ /opt/zabbix-backup/
# cp -R /usr/share/doc/zabbix-* /opt/zabbix-backup/

Installiamo il repostory per la versione 5.0:

# rm -Rf /etc/apt/sources.list.d/zabbix.list
# wget https://repo.zabbix.com/zabbix/5.4/debian/pool/main/z/zabbix-release/zabbix-release_5.4-1+debian10_all.deb
# dpkg -i zabbix-release_5.2-1+debian10_all.deb
# apt-get update

Passiamo all’upgrade dei pacchetti:

# apt-get install --only-upgrade zabbix-server-mysql zabbix-frontend-php zabbix-agent -y

Per finire la configurazione di Apache, anche se potrebbe non essere necessaria:

# apt-get install zabbix-apache-conf

Abbiamo terminato, avviamo Zabbix 5.4

# systemctl start zabbix-server
# systemctl start zabbix-agent

A questo punto parte l’upgrde del DB, possiamo seguire lo stato di aggiornamento direttamente dal file di log:

tail -f /var/log/zabbix/zabbix_server.log

Nota importante, dovremo aggiornare tutti i proxy, la procedura è identica solo che il comando di upgrade è il seguente:

# apt-get install --only-upgrade zabbix-proxy-mysql zabbix-agent -y

Aggiornamento completato, nuova release in funzione!




Upgrade Zabbix 5.0 to Zabbix 5.2 Debian 10

Questa guida descrive i passaggi per eseguire l’aggiornamento di Zabbix dalla versione 5.0 alla 5.2.

Il primo step è fermare Zabbix.

# systemctl stop zabbix-server

Creiamo un backup del database e dei file della release 5.0

# mysqldump -u user_zabbix -ppassword_zabbix db_zabbix > zabbix_server.sql
# mkdir /opt/zabbix-backup/
# cp /etc/zabbix/zabbix_server.conf /opt/zabbix-backup/
# cp /etc/nginx/conf.d/zabbix.conf /opt/zabbix-backup
# cp -R /usr/share/zabbix/ /opt/zabbix-backup/
# cp -R /usr/share/doc/zabbix-* /opt/zabbix-backup/

Installiamo il repostory per la versione 5.0:

# rm -Rf /etc/apt/sources.list.d/zabbix.list
# wget https://repo.zabbix.com/zabbix/5.2/debian/pool/main/z/zabbix-release/zabbix-release_5.2-1+debian10_all.deb
# dpkg -i zabbix-release_5.2-1+debian10_all.deb
# apt-get update

Passiamo all’upgrade dei pacchetti:

# apt-get install --only-upgrade zabbix-server-mysql zabbix-frontend-php zabbix-agent -y

Per finire la configurazione di Apache, anche se potrebbe non essere necessaria:

# apt-get install zabbix-apache-conf

Abbiamo terminato, avviamo Zabbix 5.2

# systemctl start zabbix-server
# systemctl start zabbix-agent

A questo punto parte l’upgrde del DB, possiamo seguire lo stato di aggiornamento direttamente dal file di log:

tail -f /var/log/zabbix/zabbix_server.log

Nota importante, dovremo aggiornare tutti i proxy, la procedura è identica solo che il comando di upgrade è il seguente:

# apt-get install --only-upgrade zabbix-proxy-mysql zabbix-agent -y

Aggiornamento completato, nuova release in funzione!




Migrare Zabbix 5.0 da CentOS 7 LAMP a Debian 10 LEMP

Migrazione Zabbix 5.0 da un server CentOS 7 a Debian 10 Buster con Nginx e MySQL.

 

Iniziamo con una premessa: seguire questa procedura in produzione senza creare disservizio è possibile solo nel caso in cui si abbia un database esterno al server che ospita Zabbix. In caso contrario, il disservizio si presenterà nel momento in cui verrà spostato il database.

Per ambienti non troppo grandi in cui il server Zabbix è anche server SQL, è bene calcolare i tempi per eseguire il DUMP completo del DB e il relativo import nel nuovo server. In tal modo sarà possibile indicare nella dichiarazione di disservizio il tempo corretto.

Iniziamo subito con la preparazione del server Debian 10 come server stand alone. Durante l’installazione di Debian viene richiesta la scelta dell’ambiente, a quel punto dobbiamo togliere la spunta su “Ambiente Grafico” e metterla su “server ssh” per poter prendere accesso da remoto (se necessario). Dobbiamo selezionare solo “Sistema base” senza altri pacchetti, prestando attenzione a non selezionare “Server web” poiché di default viene installato Apache2.

Primo passo, quindi, installare WGET e il repository ZABBIX 5.0:

# apt update && apt install -y wget vim
# wget https://repo.zabbix.com/zabbix/5.0/debian/pool/main/z/zabbix-release/zabbix-release_5.0-1+buster_all.deb
# dpkg -i zabbix-release_5.0-1+buster_all.deb

Passiamo subito all’installazione di Zabbix 5.0:

# apt-get update && apt install zabbix-server-mysql zabbix-nginx-conf

Ora che abbiamo installato Zabbix 5.0, passiamo a NGINX, PHP 7.3 e MySQL (quest’ultimo se non abbiamo già un server dedicato per i database):

# apt install nginx php-fpm php-mysql

Ora creiamo il classico file info.php:

# vim /var/www/html/info.php

Inseriamo il codice seguente:

<?php phpinfo(); ?>

Ora apriamo il file /etc/nginx/sites-available/default e aggiungiamo le direttive per poter interpretare le pagine scritte in php:

location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
}

Inoltre, cambiamo la porta di ascolto di NGINX così quando metteremo il virtualhost per Zabbix non andrà in conflitto con il default.

Sostituiamo queste direttive:

listen 80 default_server;
listen [::]:80 default_server;

con le seguenti:

listen 82 default_server;
listen [::]:82 default_server;

ed ora riavviamo NGINX:

# systemctl restart nginx

Verifichiamo il corretto funzionamento aprendo al url http://<P_SERVER>:82/info.php

Passiamo all’installzione del RDBMS MySQL:

# apt-get install gnupg
# wget https://dev.mysql.com/get/mysql-apt-config_0.8.16-1_all.deb
# dpkg -i mysql-apt-config_0.8.16-1_all.deb
# apt-get update
# apt-get install mysql-community-server
# systemctl status mysql.service

Procediamo con la sicurezza di base del db server con il seguente comando:

# mysql_secure_installation

Ora creiamo database ed utente per Zabbix:

# mysql -u root -p -e "CREATE DATABASE zabbix character set utf8 collate utf8_bin;"
# mysql -u root -p -e "CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'password';"
# mysql -u root -p -e "GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';"

Non ci resta che verificare la connessione al DB tramite il PHP, apriamo il nostro file info.php

# vim /var/www/html/info.php

ed inseriamo queste righe di php prestando attenzione nella valorizzazione delle fariabile alle prime righe:

<?php
$user = "zabbix";
$password = "password";
$database = "zabbix";
$table = "todo_list";
try {
$db = new PDO("mysql:host=localhost;dbname=$database", $user, $password);
echo "<h2>CONNESSIONE AL DATABASE AVVENUTA CON SUCCESSO</h2><ol>";
foreach($db->query("SELECT content FROM $table") as $row) {
echo "<li>" . $row['content'] . "</li>";
}
echo "</ol>";
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();
}

Qualora ci fossero problemi di connessione apriamo il fie mysqld.cnf:

# vim /etc/mysql/mysql.conf.d/mysqld.cnf

aggiungiamo la entry “default_authentication_plugin= mysql_native_password”  subito sotto “[mysqld]“:

[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
log-error = /var/log/mysql/error.log
default_authentication_plugin= mysql_native_password

Verifichiamo il corretto funzionamento aprendo al url http://<P_SERVER>:82/info.php, a questo punto dovremmo vedere il messaggio “CONNESSIONE AL DATABASE AVVENUTA CON SUCCESSO“.

A questo punto abbiamo davanti due possibilità: provare Zabbix 5.0 prima di importare il DB dal server CentOS oppure iniziare la migrazione dei dati. In questo secondo caso, passare direttamente alla connessione al DB (punto successivo).

Scegliendo la prima opzione, invece, importiamo i dati di default di Zabbix:

# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

Connessione al DB

A questo punto abbiamo NGINX e PHP correttamente funzionanti, non resta che verificare l’installazione di ZABBIX 5.0: il primo passaggio è quello di configurare il file /etc/zabbix/zabbix.conf con gli stessi parametri che avevamo sul server CentOS.

Arrivati al momento dalla configurazione delle credenziali di connessione al DB possiamo scegliere tra le seguenti opzioni:

  • inserire i parametri del DB locale,
  • inserire i dati del DB del server CentOS,
  • inserire i parametri del DB centralizzato.

Dobbiamo inserire i dati di connessione qui:

vim /etc/zabbix/zabbix_server.conf

e sostituire le seguenti entry:

DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=password

Nel caso in cui avessimo scelto la prima opzione, cioè qualora avessimo inserito i parametri del DB locale, potremmo provare la nostra installazione di Zabbix accedendo con nome utente e password di default alla seguente url http://<P_SERVER>. Il nome utente è “Admin” e la password è “zabbix”.

Qualora avessimo scelto la seconda o la terza opzione, cioè nel caso in cui avessimo inserito i dati del DB del server CentOS o del DB centralizzato, vedremmo la GUI lavorare con i dati di esercizio pertanto l’accesso alla url http://<P_SERVER> avvverrebbe con le utenze di produzione. Prestare attenzione: si tratta di dati di esercizio.

SCENARIO RDBMS ESTERNO

La procedura è praticamente terminata, non ci resta che iniziare ad acquisire i dati invertendo gli IP tra Debian 10 e CentOS 7, in questo modo non dovremo modificare nessun proxy o agent.

SCENARIO MYSQL INTERNO

Andiamo sul server CentOS e fermiamo Zabbix in modo da interrompere la scrittura dei dati sul DB:

# systemctl stop zabbix-server

Lanciamo il comando mysqldump per esportare tutto il DB su di un file:

# mysqldump -u user_zabbix -ppassword_zabbix db_zabbix > zabbix_server.sql

Portiamo il file zabbix_server.sql sul nostro server Debianb 10:

# scp zabbix_server.sql utente@IP_Debian:/tmp

Torniamo su Debian 10,  fermiamo Zabbix ed importiamo il DB:

# systemctl stop zabbix-server
# mysql -u user_zabbix -ppassword_zabbix db_zabbix < zabbix_server.sql

Attendiamo il tempo di import del DB, una volta terminato avremo spostato ZABBIX 5.0 da CentOS a Debian 10. Non ci resta ora che iniziare ad acquisire i dati invertendo gli IP tra Debian 10 e CentOS 7 ed eseguire lo start di zabbix-server:

# systemctl start zabbix-server

Finito!

 

Articolo correlato: Upgrade Zabbix 4.4 to Zabbix 5.0 Cenots 7.X




Upgrade Zabbix 4.4 to Zabbix 5.0 Debian 10

Questa guida descrive i passaggi per eseguire l’aggiornamento di Zabbix dalla versione 4.4 alla 5.0.

Il primo step è fermare Zabbix.

# systemctl stop zabbix-server

Creiamo un backup del database e dei file della release 4.2

# mysqldump -u user_zabbix -ppassword_zabbix db_zabbix > zabbix_server.sql
# mkdir /opt/zabbix-backup/
# cp /etc/zabbix/zabbix_server.conf /opt/zabbix-backup/
# cp /etc/apache2/conf-enabled/zabbix.conf /opt/zabbix-backup
# cp -R /usr/share/zabbix/ /opt/zabbix-backup/
# cp -R /usr/share/doc/zabbix-* /opt/zabbix-backup/

Installiamo il repostory per la versione 5.0:

# rm -Rf /etc/apt/sources.list.d/zabbix.list
# wget https://repo.zabbix.com/zabbix/5.0/debian/pool/main/z/zabbix-release/zabbix-release_5.0-1+buster_all.deb
# dpkg -i zabbix-release_5.0-1+buster_all.deb
# apt-get update

Passiamo all’upgrade dei pacchetti:

# apt-get install --only-upgrade zabbix-server-mysql zabbix-frontend-php zabbix-agent

Per finire la configurazione di Apache, anche se potrebbe non essere necessaria:

# apt-get install zabbix-apache-conf

Abbiamo terminato, avviamo Zabbix 5.0

# systemctl start zabbix-server
# systemctl start zabbix-agent

A questo punto parte l’upgrde del DB, possiamo seguire lo stato di aggiornamento direttamente dal file di log:

tail -f /var/log/zabbix/zabbix_server.log

Aggiornamento completato, nuova release in funzione!




Next Cloud Debian 10

Una rapida guida per installare la piattaforma di collaborazione online NextCloud.

Alla pagina “About Us” del sito nextcloud.com troviamo questo slogan:

La nostra tecnologia unisce la praticità e la facilità d’uso di soluzioni di livello consumer come Dropbox e Google Drive con le esigenze aziendali di sicurezza, privacy e controllo.

NextCloud è una piattaforma che racchiude la potenza dei file in cloud con strumenti di collaborazione come la chat, le video chiamate, calendari, webmail, autenticazione LDAP, gestione task, progetti e molto altro.

Durante il lockdown dei primi mesi del 2020 la LBIT ha messo a disposizoine strumenti per lo smart working, uno di questi è proprio un server con a bordo Next Cloud: https://www.lbit-solution.it/wp-content/uploads/2020/03/COVID-19_SMARTWORKING.pdf

La storia di ownCloud e NextCloud

Nel 2010, Frank Karlitschek ha avviato il progetto ownCloud annunciandolo durante una sessione al Camp KDE keynote.

ownCloud interface

ownCloud interface

È iniziato come una soluzione di archiviazione su un cloud personale per offrire agli utenti la possibilità di avere il controllo dei propri dati senza fare affidamento su altri fornitori di archiviazione su cloud.

Sfortunatamente, Frank Karlitschek, insieme a diversi altri sviluppatori, ha lasciato OwnCloud Inc. Il gruppo non ha dichiarato alcun motivo per l’uscita dal progetto, ma ha accennato che il problema era quello di avere un modello di business che non comprendeva una soluzione open source.

Ora ownCloud si concentra principalmente sulle offerte Enterprise e offre agli utenti un’edizione server separata da installare sui propri server.

Frank Karlitschek ha avviato Nextcloud come fork di ownCloud, subito dopo aver lasciato ownCloud Inc. Considerando che si tratta di un fork, si troveranno molte somiglianze, tuttavia il prodotto si è evoluto molto nel corso degli anni rendendolo probabilmente più popolare di OwnCloud stesso.  Frank Karlitschek  sta lavorando per far diventare NextCloud una piattaforma di collaborazione come Microsoft Office 365 e Google Docs.

 

Nextcloud interface

Nextcloud interface

Installazione su Debian 10

È possibile usare diverse configurazioni oltre alle du eclassiche LAMP e LEMP, in questo caso andremo ad implementarlo con Apache2.

Il primo passo è installare i pacchetti Apache2 e PHP7:

apt-get -y install apache2 apache2-doc apache2-utils libapache2-mod-php php7.3 php7.3-common php7.3-gd php7.3-mysql php7.3-imap php7.3-cli php7.3-cgi libapache2-mod-fcgid apache2-suexec-pristine php-pear mcrypt imagemagick libruby libapache2-mod-python php7.3-curl php7.3-intl php7.3-pspell php7.3-recode php7.3-sqlite3 php7.3-tidy php7.3-xmlrpc php7.3-xsl memcached php-memcache php-imagick php-gettext php7.3-zip php7.3-mbstring memcached libapache2-mod-passenger php7.3-soap php7.3-fpm php7.3-opcache php-apcu

 

Se si vorrà integrare l’applicazione con l’LDAP aziendale installare anche la libreria php7.3-ldap:

apt-get install -y php7.3-ldap
A questo punto è sufficiente abilitare i moduli di apache

a2enmod suexec rewrite ssl actions include dav_fs dav auth_digest cgi headers actions proxy_fcgi alias

 

Ora prepariamo i certificati SSL se non abbiamo quelli rilasciati da una CA ufficiale:

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /var/www/vhosts/acme.org/ssl/acme.org.key -out /var/www/vhosts/acme.org/ssl/acme.org.crt
Prepariamo il virtualhost creando il file /etc/apache2/sites-available/cloud.acme.org.conf

<VirtualHost *:80>
   ServerAdmin admin@acme.org
   ServerName acme.org
   DocumentRoot /var/www/vhosts/acme.org/httpdocs
   ErrorLog ${APACHE_LOG_DIR}/error.log
   CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
<VirtualHost *:443>
   ServerAdmin admin@acme.org
   ServerName acme.org
   DocumentRoot /var/www/vhosts/acme.org/httpdocs
      <IfModule mod_ssl.c>
      SSLEngine on
      SSLProtocol All -SSLv2 -SSLv3
      SSLCertificateFile /var/www/vhosts/acme.org/ssl/acme.org.crt
      SSLCertificateKeyFile /var/www/vhosts/acme.org/ssl/acme.org.key
      SSLCACertificateFile /var/www/vhosts/acme.org/ssl/acme.org.bundle
</IfModule>
   ErrorLog ${APACHE_LOG_DIR}/error.log
   CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Abilitiamo il sito e riavviamo apache

a2ensite cloud.acme.org
systemctl restart apache2

A questo punto non resto che scaricare l’archivio ZIP dal sito ufficiale, estrarlo nella root del nostro sito:

apt-get install wget
cd /var/www/vhosts/acme.org/httpdocs/
wget https://download.nextcloud.com/server/releases/nextcloud-19.0.0.zip
unzip nextcloud-19.0.0.zip

Non ci resta che aprire il browser al link del virtualhost https://cloud.acme.org/nextcloud e seguire gli step dell’installazione. Potremo optare su usare un database locale SQLite, consigliato per piccole installazioni oppure se collegarci ad un MySQL/MariaDB.

Tra le applicazioni consigliate Talk, Calendar, JavaScript XMPP Chat, LDAP user and group backend, Tasks, RainLoop.

L’installazione al link https://nxc.moresolution.it/public/ è a disposizione, per richiedere le credenziali di accesso scrivere a info@lbit-solution.it

 

LBIT offre sia installazioni NextCloud su server dedicati, sia nell’infrastruttura LBIT che on-premises oppure in hosting cloud.

Per informazioni:

Telefono: 06 83960858 o

WhatsApp: 06 5656 8784

Mail: info@lbit-solution.it