In questo tutorial tratteremo l’installazione della piattaforma per la gestione delle risorse aziendali (Tool di Asset Management) chiamata Snipe-IT su Ubuntu 22.04.
Il software Snipe-IT è basato sul framework Laravel e per la sua installazione necessita anche del PHP Composer che è il gestore di pacchetti e dipendenze del linguaggio PHP.
In questa guida installerò Snipe-IT con Apache, MariaDB, PHP 8.1, PHP Composer
PREREQUISITI
Server con Installato Ubuntu 22.04
Un accesso utente root o un utente normale con privilegi amministrativi
AGGIORNAMENTO DEL SISTEMA
Eseguire i comandi in sequenaza per l’aggiornamento del sistema:
0 1 2 |
sudo apt update sudo apt list --upgradable sudo apt upgrade |
INSTALLAZIONE DELLE DIPENDENZE
Installare la dipendenza unzip con il seguente comando:
0 |
sudo apt-get install unzip git -y |
INSTALLAZIONE DI APACHE
Proseguire con l’installazione di Apache eseguendo il comando:
0 |
sudo apt install apache2 -y |
Per verificare che Apache sia in esecuzione digitare il comando seguente:
0 |
sudo systemctl status apache2 |
Se è tutto ok dovremmo vedere un output come mostrato nell’immagine sovrastante
Inoltre se da un qualsiasi browser richiamiamo il seguente link:
http://server-ip-address
Dovremmo visualizzare il messaggio di benvenuto di Apache come mostrato nell’immagine sovrastante
Abilitare il modulo mod_rewrite in Apache con il comando:
0 |
sudo a2enmod rewrite |
Dovremmo visualizzare il seguente output:
0 1 2 |
Enabling module rewrite. To activate the new configuration, you need to run: systemctl restart apache2 |
Riavviare il webserver Apache con il comando:
0 |
sudo systemctl restart apache2 |
INSTALLAZIONE DEL DATABASE MARIADB
Procedere con l’installazione del database MariaDB con il comando:
0 |
sudo apt install mariadb-server mariadb-client -y |
L’installazione predefinita di MariaDB viene fornita con impostazioni deboli, che comportano potenziali rischi per i database.
Pertanto, si consiglia vivamente di eseguire alcune operazioni di rafforzamento per proteggere il server del database.
Per migliorare la sicurezza di MariaDB eseguire lo script di sicurezza con il seguente comando:
0 |
sudo mysql_secure_installation |
Rispondere a tutte le domande come mostrato nell’immagine sovrastante.
INSTALLAZIONE DEL PHP
Ubuntu 22.04 fornisce già PHP 8.1 nel suo repository. E’ possibile installarlo col seguente comando:
0 |
sudo apt install php -y |
Per visualizzare la versione di PHP installata, eseguire il comando:
0 |
php --version |
Dovremmo vedere un output come mostrato nell’immagine sovrastante
Installare tutti i moduli necessari al corretto funzionamento di Snipe-IT con il comando:
0 |
sudo apt install php-common php-bcmath php-bz2 php-intl php-gd php-mbstring php-mysql php-zip php-opcache php-intl php-json php-mysqli php-readline php-tokenizer php-curl php-ldap -y |
INSTALLAZIONE DEL PHP COMPOSER
Procedere con l’installazione del PHP Composer che è uno strumento di gestione delle dipendenze PHP ed è indispensabile per installare e aggiornare le librerie di Snipe-IT.
Scaricare il pacchetto di installazione del Composer con il comando:
0 |
sudo curl -sS https://getcomposer.org/installer | php |
Se è andato tutto a buon fine dovremmo vedere una schermata come quella sovrastante
Verificare la versione installata del Composer con il comando:
0 |
composer -V |
Dovremmo vedere un output come di seguito:
0 |
Composer version 2.6.6 2023-12-08 18:32:26 |
Spostare l’eseguibile composite.phar nella cartella /usr/local/bin/ con il comando:
0 |
sudo mv composer.phar /usr/local/bin/composer |
CREAZIONE DEL DATABASE
Creare un database e un utente del database per Snipe-IT. Accedere a MariaDB come utente root con il comando:
0 |
sudo mysql -u root -p |
Quindi inserire la password di root del database
Eseguire i seguenti comandi in sequenza.
Creare il database con il comando:
0 |
CREATE DATABASE snipe_it; |
Creare l’utente per l’accesso al database con il comando:
0 |
CREATE USER 'snipe_it_user'@'localhost' IDENTIFIED BY 'PASSWORD'; |
NOTA BENE: al posto di PASSWORD inserire la password desiderata
Fornire all’utente appena creato i diritti di accesso al database con il comando:
0 |
GRANT ALL PRIVILEGES ON snipe_it.* TO 'snipe_it_user'@'localhost'; |
Fare il flush dei privilegi con il comando:
0 |
FLUSH PRIVILEGES; |
Uscire con il comando:
0 |
EXIT |
INSTALLAZIONE DI SNIPE-IT
Posizionarsi nella root directory del webserver con il comando:
0 |
cd /var/www/html |
Usare git per clonare l’ultimo repository Snipe-IT dall’URL https://github.com/snipe/snipe-it e copiare i file scaricati in una directory snipe-it.
Eseguire il comando:
0 |
sudo git clone https://github.com/snipe/snipe-it snipe-it |
Se il comando ha dato esito positivo dovremmo vedere il seguente output:
0 1 2 3 4 5 6 7 |
Cloning into 'snipe-it'... remote: Enumerating objects: 170461, done. remote: Counting objects: 100% (3513/3513), done. remote: Compressing objects: 100% (1971/1971), done. remote: Total 170461 (delta 1544), reused 3382 (delta 1464), pack-reused 166948 Receiving objects: 100% (170461/170461), 182.15 MiB | 20.75 MiB/s, done. Resolving deltas: 100% (111951/111951), done. |
Posizionarsi all’interno della cartella appena creata con il comando:
0 |
cd /var/www/html/snipe-it |
Snipe-IT viene fornito con un file di configurazione di esempio. Copiarlo nella cartella snipe-it con il comando:
0 |
sudo cp /var/www/html/snipe-it/.env.example /var/www/html/snipe-it/.env |
Editare il file di configurazione con il comando:
0 |
sudo nano /var/www/html/snipe-it/.env |
Nel file di configurazione individuare i seguenti settaggi:
0 1 2 3 4 5 6 7 8 9 10 |
APP_URL=null APP_TIMEZONE=’UTC’ DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_DATABASE=null DB_USERNAME=null DB_PASSWORD=null DB_PREFIX=null DB_DUMP_PATH='/usr/bin' DB_CHARSET=utf8mb4 DB_COLLATION=utf8mb4_unicode_ci |
Quindi inserire i seguenti dati:
0 1 2 3 4 5 6 7 8 9 10 |
APP_URL=http://snipeit.example.com APP_TIMEZONE=Europe/Rome DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_DATABASE=snipe_it DB_USERNAME=snipe_it_user DB_PASSWORD=PASSWORD DB_PREFIX=null DB_DUMP_PATH='/usr/bin' DB_CHARSET=utf8mb4 DB_COLLATION=utf8mb4_unicode_ci |
ATTENZIONE: inserire al posto snipeit.example.com l’URL del server Snipe-IT. Quindi inserire tutte le info relative al database creato in precedenza
Salvare e chiudere il file di configurazione
Continuare con l’installazione delle dipendenze di Snipe-IT con Composer.
Poisizonarsi all’interno della cartella snipe-it con il comando:
0 |
cd /var/www/html/snipe-it/ |
Impostare la proprietà e le autorizzazioni corrette per la directory dei dati di Snipe-IT con i seguenti comandi:
0 1 |
sudo chown -R www-data:www-data /var/www/html/snipe-it sudo chmod -R 777 storage |
Quindi eseguire il comando:
0 |
sudo composer update --no-plugins --no-scripts |
Comparirà il seguente output:
0 1 |
Do not run Composer as root/super user! See https://getcomposer.org/root for details Continue as root/super user [yes]? |
Premere INVIO per procedere
Quindi eseguire il comando:
0 |
sudo composer install --no-dev --prefer-source --no-plugins --no-scripts |
Comparirà il seguente output:
0 1 |
Do not run Composer as root/super user! See https://getcomposer.org/root for details Continue as root/super user [yes]? |
Premere INVIO per procedere
ATTENZIONE: questa installazione potrebbe durare anche 10 minuti
Se è andato tutto a buon fine dovremmo vedere una schermata come quella sovrastante
Una volta terminata l’esecuzione del Composer, generare un valore Laravel APP_Key nel file di configurazione /var/www/snipe-it/.env creato in precedenza con il comando:
0 |
sudo php artisan key:generate |
Dovremmo vedere il seguente output:
0 1 2 3 4 5 |
************************************** * Application In Production! * ************************************** Do you really wish to run this command? (yes/no) [no]: > |
Scrivere yes e premere INVIO
Se è andato tutto a buon fine dovremmo vedere il seguente output:
0 |
Application key set successfully. |
CREAZIONE DEL VIRTUAL HOST SU APACHE
Per Snipe-IT creare un file di configurazione di Apache. Ma prima disabilitare il file di configurazione predefinito di apache con il comando:
0 |
sudo a2dissite 000-default.conf |
Creare un file di configurazione per Snipe-IT con il comando:
0 |
sudo nano /etc/apache2/sites-available/snipe-it.conf |
Incollare all’interno del file di configurazione il seguente output:
0 1 2 3 4 5 6 7 8 9 |
<VirtualHost *:80> ServerName snipeit-test.com DocumentRoot /var/www/html/snipe-it/public <Directory /var/www/html/snipe-it/public> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory> </VirtualHost> |
NOTA BENE: al posto di snipeit-test.com inserire l’FQDN del server Snipe-IT
Salvare e chiudere il cile di configurazione
Abilitare il nuovo file di configurazione con il comando:
0 |
sudo a2ensite snipe-it.conf |
Quindi riavviare il server Apache affinché le modifiche vengano applicate con il comando:
0 |
sudo systemctl restart apache2 |
CONFIGURAZIONE DI SNIPE-IT DA INTERFACCIA WEB
Da un qualsiasi browser aprire il link
http://IP_DEL_SERVER_o_FQDN
Se vediamo una schermata come quella sovrastante con i controlli tutti in verde cliccare su Next:Create Database Tables
Cliccare Next: Create User
Compilare tutti i campi evidenziati in rosso per la creazione dell’utente quindi cliccare Next: Save User
Se abbiamo fatto correttamante dovremmo accedere alla Dashboard di Snipe-IT come mostrato nell’immagine sovrastante.
Scusami tanto che poi non ho commentato, perchè impegnato in un altro progetto (erp). Ho rivisto adesso, e mettendo app_url “localhost” il Key Lavarel ha funzionato. Grazie tantissimo, per il tuo immenso lavoro!
Buongiorno Fabrizio
è strano che ti da quest errore. Se hai seguito step by step il tutorial (compresi i pre-requisiti) dovrebbe andare tutto liscio. Ti consiglio di dare un occhio a questo link https://github.com/snipe/snipe-it/issues/11213 che ti spiega come fare debug.
Saluti
Correggo il commento precedente
sulla creazione artisan key:generate mi restituisce il seguente errore:
Argument 1 passed to Symfony\Component\HttpFoundation\Request::create() mus
t be of the type string, null given, called in /var/www/html/snipe-it/vendo
r/laravel/framework/src/Illuminate/Foundation/Bootstrap/SetRequestForConsol
e.php on line 32
Salve,
nella creazione della Key Lavarel mi restituisce errore.