Go to top

Schema delle operazioni eseguite


Descrizione dettagliata degli step

1. Sistema operativo (Ubuntu 22.04 LTS)

  • Descrizione: Installazione di Ubuntu come sistema operativo principale. Questo step crea il punto di partenza per l'intero processo, fornendo un ambiente sicuro e stabile.
  • Azioni:

Configurazione iniziale del sistema.

Impostazioni di rete e aggiornamenti di sistema con:

sudo apt update

sudo apt upgrade.


Controllo Ubuntu:

Controlla la versione di Ubuntu:

parallels@ubuntu-linux-22-04-02-desktop:~$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 22.04.5 LTS
Release:	22.04 

Assicurati che il sistema sia aggiornato:

parallels@ubuntu-linux-22-04-02-desktop:~$ sudo apt update && sudo apt upgrade
[sudo] password for parallels: 
Get:1 http://security.ubuntu.com/ubuntu jammy-security InRelease [129 kB]
Hit:2 http://us.archive.ubuntu.com/ubuntu jammy InRelease                       
Get:3 http://security.ubuntu.com/ubuntu jammy-security/main amd64 DEP-11 Metadata [43.1 kB]
Get:4 http://security.ubuntu.com/ubuntu jammy-security/restricted amd64 DEP-11 Metadata [208 B]
Get:5 http://security.ubuntu.com/ubuntu jammy-security/universe amd64 DEP-11 Metadata [125 kB]
Get:6 http://us.archive.ubuntu.com/ubuntu jammy-updates InRelease [128 kB]
Get:7 http://security.ubuntu.com/ubuntu jammy-security/multiverse amd64 DEP-11 Metadata [208 B]
Get:8 http://us.archive.ubuntu.com/ubuntu jammy-backports InRelease [127 kB]
Get:9 http://us.archive.ubuntu.com/ubuntu jammy-updates/main amd64 DEP-11 Metadata [103 kB]
Get:10 http://us.archive.ubuntu.com/ubuntu jammy-updates/restricted amd64 DEP-11 Metadata [212 B]
Get:11 http://us.archive.ubuntu.com/ubuntu jammy-updates/universe amd64 DEP-11 Metadata [356 kB]
Get:12 http://us.archive.ubuntu.com/ubuntu jammy-updates/multiverse amd64 DEP-11 Metadata [940 B]
Get:13 http://us.archive.ubuntu.com/ubuntu jammy-backports/main amd64 DEP-11 Metadata [7,016 B]
Get:14 http://us.archive.ubuntu.com/ubuntu jammy-backports/restricted amd64 DEP-11 Metadata [212 B]
Get:15 http://us.archive.ubuntu.com/ubuntu jammy-backports/universe amd64 DEP-11 Metadata [17.7 kB]
Get:16 http://us.archive.ubuntu.com/ubuntu jammy-backports/multiverse amd64 DEP-11 Metadata [212 B]
Fetched 1,038 kB in 2s (607 kB/s)                                     
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
All packages are up to date.
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 


2. Installazione di MySQL

  • Descrizione: Installazione del database MySQL, necessario per archiviare i dati di MediaWiki.
  • Azioni:

Installazione con il comando:sudo apt install mysql-server.

Configurazione iniziale di MySQL, inclusa la creazione di directory e file di configurazione.

Risoluzione di problemi legati ai permessi e alla directory /var/run/mysqld.

Controllo Ubuntu:

Controlla se MySQL è installato:

parallels@ubuntu-linux-22-04-02-desktop:~$ mysql --version
mysql  Ver 8.0.40-0ubuntu0.22.04.1 for Linux on x86_64 ((Ubuntu))

Controlla lo stato del servizio MySQL: Info.pngTesto breve che mostra l'analisi del risultato del comandoLa risposta che hai riportato mostra lo stato del servizio MySQL su un sistema Ubuntu. Ecco un'analisi dettagliata: Comando eseguito: sudo systemctl status mysql, che controlla lo stato del servizio MySQL. Richiesta di password: [sudo] password for parallels:, normale per comandi amministrativi. Stato del servizio: ● mysql.service - MySQL Community Server, attualmente in fase di avvio (activating). Dettagli del processo: PID principale 135576 (mysqld), risorse utilizzate: 256.1 MB memoria, 12 task, CPU 330ms. Log recenti mostrano che il servizio è stato avviato. Conclusione: il server è in fase di avvio e potrebbe richiedere tempo in base alla configurazione. Per approfondire: sudo journalctl -u mysql.service per i log dettagliati o sudo tail -n 50 /var/log/mysql/error.log per controllare eventuali errori.

parallels@ubuntu-linux-22-04-02-desktop:~$ sudo systemctl status mysql

[sudo] password for parallels:

● mysql.service - MySQL Community Server

     Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)

     Active: activating (start) since Sat 2025-01-04 16:48:38 CET; 41s ago

    Process: 135568 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)

   Main PID: 135576 (mysqld)

     Status: "Server startup in progress"

      Tasks: 12 (limit: 2258)

     Memory: 256.1M

        CPU: 330ms

     CGroup: /system.slice/mysql.service

             └─135576 /usr/sbin/mysqld

Jan 04 16:48:38 ubuntu-linux-22-04-02-desktop systemd[1]: Starting MySQL Community Server...

Revisione:

  • Se MySQL non è installato, usa: Info.pngComando per installare MySQL ServerIl comando sudo apt install mysql-server è stato eseguito per installare il pacchetto MySQL Server. La risposta del sistema indica che: 1) La password amministrativa è stata richiesta tramite sudo. 2) Sono state lette le liste dei pacchetti e controllato lo stato. 3) Il pacchetto mysql-server è già installato nella versione più recente (8.0.40-0ubuntu0.22.04.1). Nessun aggiornamento o modifica ai pacchetti è stata effettuata.

parallels@ubuntu-linux-22-04-02-desktop:~$ sudo apt install mysql-server

[sudo] password for parallels:

Reading package lists... Done

Building dependency tree... Done

Reading state information... Done

mysql-server is already the newest version (8.0.40-0ubuntu0.22.04.1).

0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

3. Configurazione di MySQL

  • Descrizione: Personalizzazione del server MySQL per la gestione del database.
  • Azioni:

Configurazione del file /etc/mysql/my.cnf, con l’aggiunta di parametri come:

bind-address = 0.0.0.0.

Avvio di MySQL con:

sudo mysqld_safe --skip-grant-tables --skip-networking

Creazione di utenti e modifica delle password, inclusi problemi legati a plugin (auth_socket).

Verifica:

  1. Controlla il file di configurazione di MySQL:  Info.png{{Tooltip|Visualizzazione del file di configurazione di MySQL|Il comando cat /etc/mysql/my.cnf mostra il contenuto del file di configurazione principale di MySQL. La sezione [mysqld] include la direttiva bind-address = 0.0.0.0, che consente connessioni da tutte le interfacce. Il file fornisce istruzioni per configurazioni globali (/etc/mysql/my.cnf) o specifiche dell'ut

parallels@ubuntu-linux-22-04-02-desktop:~$ cat /etc/mysql/my.cnf

[mysqld]

bind-address = 0.0.0.0

#

# The MySQL database server configuration file.

#

# You can copy this to one of:

# - "/etc/mysql/my.cnf" to set global options,

# - "~/.my.cnf" to set user-specific options.

#

# One can use all long options that the program supports.

# Run program with --help to get a list of available options and with

# --print-defaults to see which it would actually understand and use.

#

# For explanations see

# http://dev.mysql.com/doc/mysql/en/server-system-variables.html

#

# * IMPORTANT: Additional settings that can override those from this file!

#   The files must end with '.cnf', otherwise they'll be ignored.

#

!includedir /etc/mysql/conf.d/

!includedir /etc/mysql/mysql.conf.d/




4. Installazione di PHP

  • Descrizione: PHP è necessario per l’interfaccia di MediaWiki.
  • Azioni:

Installazione con il comando: sudo apt install php php-mysql. Configurazione di PHP per la compatibilità con MediaWiki.

---

5. Installazione di Apache

  • Descrizione: Apache è utilizzato come server web per ospitare MediaWiki.
  • Azioni:

Installazione con il comando: sudo apt install apache2. Configurazione per abilitare moduli necessari come mod_rewrite.


6. Download e configurazione di MediaWiki

  • Descrizione: Installazione e configurazione di MediaWiki come piattaforma collaborativa.
  • Azioni:

* Download di MediaWiki: wget https://releases.wikimedia.org/mediawiki/1.39/mediawiki-1.39.0.tar.gz.

Estrazione del pacchetto in /var/www/html.

Configurazione iniziale tramite l’interfaccia web:

http://localhost/mediawiki.

---

7. Connessione a MediaWiki locale

  • Descrizione: Verifica che il setup MediaWiki sia funzionante e collegato a MySQL.
  • Azioni:

* Configurazione del file LocalSettings.php per collegare MediaWiki al database MySQL.

Test tramite browser:

http://localhost/mediawiki.

---

8. Connessione a Masticationpedia

  • Descrizione: Connessione al server di Masticationpedia partendo dall’installazione locale.
  • Azioni:

* Configurazione delle chiavi API di Masticationpedia (se applicabile). Verifica della sincronizzazione tra MediaWiki locale e Masticationpedia per esportare contenuti e configurazioni.

---


9. Risoluzione dei problemi

  • Descrizione: Gestione degli errori durante il processo.
  • Azioni:

* Errori di MySQL (e.g., auth_socket non caricato).

Permessi della directory /var/run/mysqld.

Modifiche ai file di configurazione come my.cnf e LocalSettings.php.

---

10. Testing finale

  • Descrizione: Verifica che l’intera infrastruttura funzioni correttamente.
  • Azioni:

Test di MySQL tramite comandi SQL e connessioni al database.

Test dell’interfaccia MediaWiki tramite browser.

Connessione a Masticationpedia per la gestione collaborativa.


Se hai bisogno di ulteriori dettagli su uno specifico step o di personalizzare qualcosa, fammi sapere!


Revisione Ubunto



1. Avvio e gestione del servizio MySQL

sudo systemctl start mysql

sudo systemctl stop mysql

sudo systemctl status mysql


  • **Esito:**

* Il servizio inizialmente non si avviava correttamente (rimaneva in "Starting").

* Successivamente è stato avviato con successo e risulta ora **attivo**.

---

2. Creazione e gestione della directory per il socket

  • **Problema rilevato:**

* Errore: `Directory '/var/run/mysqld' for UNIX socket file don't exist.`

sudo mkdir -p /var/run/mysqld
sudo chown mysql:mysql /var/run/mysqld
  • **Dettagli directory:**

* **Directory create:** `/var/run/mysqld` * **Permessi assegnati:** * Utente: `mysql` * Gruppo: `mysql`

  • **Esito:**

* Directory creata correttamente per il file socket.

---

3. Avvio MySQL in modalità `--skip-grant-tables`

sudo mysqld_safe --skip-grant-tables --skip-networking &
  • **Motivo:**

* Superare il problema dei privilegi per accedere al database con root senza password.

  • **Esito:**

* MySQL avviato con questa modalità.

---

4. Modifica della password di root

  • **Problemi incontrati:**

* Non è stato possibile utilizzare `ALTER USER` perché il server era in modalità `--skip-grant-tables`.

* Errore di sintassi nei tentativi iniziali.

UPDATE mysql.user SET authentication_string='Rosa!01011925' WHERE User='root' AND Host='localhost';
FLUSH PRIVILEGES;
  • **Esito:**

* La password di root è stata aggiornata.

---

5. Problema con il plugin `auth_socket`

  • **Errore rilevato:**
ERROR 1524 (HY000): Plugin 'auth_socket' is not loaded
  • **Analisi:**

* Questo problema si verifica perché MySQL sta cercando di autenticare l'utente root usando il plugin `auth_socket`, che consente l'accesso solo tramite socket UNIX, ignorando la password.

---

6. Diagnostica del plugin per root

  • **Comando tentato (senza successo):**
SELECT User, Host, plugin FROM mysql.user WHERE User='root';

* **Errore:**

* `SELECT: command not found` perché il comando è stato eseguito fuori dal terminale MySQL.

---

7. Comandi in sospeso

  • **Risolvere il problema di `auth_socket`:**

1. Avviare MySQL con `--skip-grant-tables`.

2. Modificare il plugin di autenticazione di root:

UPDATE mysql.user SET plugin='mysql_native_password' WHERE User='root' AND Host='localhost';
FLUSH PRIVILEGES;
  • **Controllare i plugin disponibili:**
SELECT plugin FROM mysql.plugin;
  • **Verifica del login con root:**
mysql -u root -p

---

Schema delle directory principali coinvolte

  • **Directory socket:** `/var/run/mysqld`

* **Stato:** Creato. * **Permessi:** `mysql:mysql`.

  • **File di configurazione principale:**

* `/etc/mysql/my.cnf` * **Modifica effettuata:** `bind-address` impostato a `0.0.0.0`.

  • **Log degli errori:**

* `/var/log/mysql/error.log`

---

Se preferisci rappresentare queste informazioni in un diagramma grafico o hai bisogno di ulteriori chiarimenti, fammi sapere!