
LAMP – Aggiornamento 2020
ATTENZIONE
Le configurazioni sono pensate per un utilizzo come sistema di sviluppo!
NON sono quindi adatte per un server da utilizzare effettivamente per fornire servizi web!
Apache
Ok l’installazione di APACHE con la modifica della Document root (Spostata su altro disco). In questo modo tutti i file PHP non si troveranno in /var/www (o /var/www/html), ma in altra locazione; in caso di reinstallazione del Sistema Operativo, si può stare tranquilli.
Mysql
OK l’installazione di MYSQL, ma non modifico più la Database root. Per il ripristino dei DB, in caso di guai, si può procedere in due modi diversi. (Si suppone che il nome del DB da ricreare sia NOMEDATABASE)
A) Copiare “brutalmente” da database di backup
|
1 2 3 4 5 6 7 8 9 10 |
1) Con phpmyadmin creare il database NOMEDATABASE. Al momento della creazione viene richiesta la "Codifica caratteri" che è possibile visualizzare all’interno del file "db.opt" che si trova nella cartella di backup. Al termine dell’operazione, nella "Database root", verrà creata la cartella NOMEDATABASE con all’interno il solo file "db.opt" che non dovrà essere sovrascritto. 2) A questo punto copiare tutti i file ".frm, .MYD, .MYI" dalla cartella di backup nella nuova cartella presente nella "Document root" (RIPETO: non copiare il dile "db.opt"). |
B) Importazione database (Phpmyadmin)
|
1 2 3 4 5 6 7 8 |
1) Avere una copia di esportazione del database nel formato SQL effettuata da Phpmyadmin. La "Codifica caratteri" è possibile visualizzarla in Phpmyadmin e non nel file di esportazione, indi, conviene ricordarsela altrimenti bisogna fare più tentativi. In genere la "Codifica caratteri" può essere: latin1_swedish_ci oppure utf8_general_ci. Per database di grandi dimensioni conviene eseguire una compressione (gzip) 2) Con Phpmyadmin creare il database NOMEDATABASE. 3) Selezionare NOMEDATABASE e completare la procedura di importazione. |
Passaggio PHP da 5.6 a 7+
Per adesso il mio host supporta la 5.6. Molti dei mie lavori utilizzano mysql_connect() supportata solo da questa versione. In futuro, se l’host deciderà di non supportare più la 5.6, gli script php presenteranno degli errori e dovrei sistemare la cosa.
1) Riscrittura delle pagine del sito
Non ce n’è bisogno. Ho trovato una libreria di funzioni mysql-fix che permette di risolvere il problema. Basta caricare il file php sul server e inserire il seguente codice nella prima riga degli script che producono l’errore: include_once(’PATH/mysql-fix.php’);
2) Pannello di controllo personalizzato (Admin_RELAX)
Admin_RELAX, oltre ad usare mysql_connect(), utilizza delle chiamate all’information_schema che non sono sovrascritte da php-mysql-fix, pertanto non funziona utilizzando tale libreria. Potrei usare Admin_RELAX in locale (con PHP 5.6) ed accedere ai database in remoto oppure utilizzare un sostituto che ho trovato in rete. Non ha tutte le funzioni che avevo scritte AD-HOC, ma sembra andare bene: Adminer
Apache
ATTENZIONE
Le configurazioni sono pensate per un utilizzo come sistema di sviluppo!
NON sono quindi adatte per un server da utilizzare effettivamente per fornire servizi web!
Installazione
sudo apt-get install apache2
Se dopo l’installazione tutto è andato a buon fine, aprendo un browser e digitando nella barra degli indirizzi http://localhost/, dovrebbe comparire una pagina con il messaggio It works!.
La document root di default è /var/www (Nell’ultima installazione /var/www/html … mah)
Modifica della “document root”
- Aprire il file /etc/apache2/sites-enabled/000-default
- Sostituire DocumentRoot /var/www con DocumentRoot /NEWPATH
- Aprire il file /etc/apache2/apache2.conf
- Sostituire Directory /var/www con Directory /NEWPATH (Io l’ho spostata su un altro disco: attenzione ai permessi. Eventualmente rinominare la vecchia DIR in /var/www_OLD invece di eliminarla)
- Riavviare Apache per rendere effettive le modifiche effettuate:
sudo /etc/init.d/apache2 restart
|
1 2 3 4 |
In alternativa, creare il seguente link simbolico ln -s PATH/NUOVACARTELLA www (cartella var) oppure ln -s PATH/NUOVACARTELLA html (cartella var/www) Dipende da come è impostata la DocumentRoot |
Disabilitare l’avvio automatico di Apache
sudo update-rc.d apache2 disable 5 4 3 2
Comandi base
sudo /etc/init.d/apache2 start
sudo /etc/init.d/apache2 stop
sudo /etc/init.d/apache2 restart
MySql
ATTENZIONE
Le configurazioni sono pensate per un utilizzo come sistema di sviluppo!
NON sono quindi adatte per un server da utilizzare effettivamente per fornire servizi web!
Installazione
sudo apt-get install mysql-server
Verrà richiesta password per l’utente root di mysql
Modifica della “Database Root”
Procedura eseguita per spostare dir di default su altro DiSCO (meglio se extN, ntfs deve essere montato con particolari impostazioni). Attenzione ai permessi, a partire dalla cartella /media fino alla nuova cartella.
Default >>> /var/lib/mysql/
- Fermare il servizio mysql:
sudo /etc/init.d/mysql stop - Copiare i file nella nuova dir:
sudo mv /var/lib/mysql /NUOVA_DIRECTORY - Dare i permessi alla nuova dir:
sudo chown -R mysql:mysql /NUOVA_DIRECTORY - Aprire il file (APPARMOR):
sudo gedit /etc/appamor.d/usr.sbin.mysqlde modificare le seguenti righe:
|
1 2 3 4 5 6 7 8 9 10 11 |
/var/lib/mysql/ r, /var/lib/mysql/** rwk, con /NUOVA_DIRECTORY/ r, /NUOVA_DIRECTORY/** rwk, NOTA: Alcuni dicono di aggiungere quest’ultime due righe dopo le precedenti. Sembra funzionare in entrambi i casi. |
- Riavviare il servizio apparmor:
sudo /etc/init.d/apparmor restart - Modificare il file (MY.CNF):
sudo gedit /etc/mysql/my.cnf(NOTA: in Mint 19 il file da modificare è /etc/mysql/mysql.conf.d/mysqld.cnf)
|
1 2 |
* nella riga relativa alla “datadir” “datadir= NUOVA_DIRECTORY” * la vecchia directory “/var/lib/mysql”, se esiste, può essere rinominata |
- Riavviare il servizio mysql:
sudo /etc/init.d/mysql start
- Come ultimo step, assegnare i diritti di “ALL PRIVILEGES” ai database per lo user root. (NON NECESSARIO)
|
1 |
mysql> GRANT ALL PRIVILEGES ON *.* to root@’%’ IDENTIFIED BY ‘xxxPSWxxx’; |
Disabilitare avvio automatico di MySQL
Aprire il file /etc/init/mysql.conf ed inserire il carattere # (commento) all’inizio delle righe:
|
1 2 3 4 5 6 7 8 9 10 11 |
start on (net-device-up and local-filesystems and runlevel [2345]) che diventeranno quindi: #start on (net-device-up # and local-filesystems # and runlevel [2345]) Alcuni file "mysql.conf" contengono solo la riga "start on runlevel [2345]" |
Stranezza (da capire)
Dopo aver modificato la document_root dopo una nuova installazione. I “vecchi database che si trovavano nella document_root” e “mysql da riga di comando” sono accessibili mediante la vecchia password di root e non con la nuova.
Collegamenti
Cambiare la password di root in MySQL
Come reinstallare il server MySql da zero
Php 5.6/7.0
ATTENZIONE
Le configurazioni sono pensate per un utilizzo come sistema di sviluppo!
NON sono quindi adatte per un server da utilizzare effettivamente per fornire servizi web!
Installazione
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install php7.0 php5.6 php5.6-mysql php-gettext php5.6-mbstring php-mbstring php7.0-mbstring php-xdebug libapache2-mod-php5.6 libapache2-mod-php7.0
Cambio versione 5.6 > 7.0: sudo a2dismod php5.6; sudo a2enmod php7.0; sudo service apache2 restart
Cambio versione 7.0 > 5.6: sudo a2dismod php7.0; sudo a2enmod php5.6; sudo service apache2 restart
File di configurazione: /etc/php/phpX.X/apache2/php.ini
Aumentare dimensione file in upload
All’interno del file di configurazione php.ini, modificare le due voci:
upload_max_filesize
post_max_size
Al termine dell’operazione riavviare Apache
Phpmyadmin (relativa ad una installazione obsoleta)
Se phpmyadmin non è già nella document root di apache, si può installare da terminale o tramite SYNAPTIC.
La directory è /usr/share/phpmyadmin spostata brutalmente (e rinominata) nella Document root di APACHE.
Problema con la password: Configurare phpmyadmin su linux mint 19
Soluzione errore “Impossibile caricare l’estensione mysqli”:
sudo apt-get install php5-mysql
/etc/init.d/apache2 restart
Soluzione errore “mcrypt”:
sudo apt-get install php5-mcrypt
NOTA: Negli ultimi due casi conviene prima purgare le due installazioni
Abilitare visualizzazione degli errori
Nel caso le pagine non venissero visualizzate e viene restituito il codice di errore HTTP 500 e’ possibile che all’interno della pagina vi siano errori, ma sul server non e’ attivata la loro visualizzazione.
E’ giusto che sia cosi’, ma per un server di sviluppo e’ necessario modificare tale impostazione modificando alcune voci del file /etc/php/XX.XX/apache2/php.ini nel modo seguente:
display_errors = On
display_startup_errors = On
error_reporting = E_ALL | E_STRICT
oppureerror_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
Al termine della modifica riavviare Apache.
Se non si vuole modificare il file di configurazione, è possibile ottenere lo stesso risultato inserendo le seguenti righe all’inizio del file PHP:
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
Installazione SQLite (PDO)
sudo apt-get install php7.0-sqlite
Al termine riavviare Apache.
Sendmail
Modifica di /etc/php5/apache2/php.ini
In genere la voce sendmail_path è disabilitata; sostitutirla con sendmail_path = /usr/sbin/sendmail -t -i e riavviare apache: /etc/init.d/apache2 restart
Comandi demone SENDMAIL
/etc/init.d/sendmail start
/etc/init.d/sendmail stop
/etc/init.d/sendmail restart
SSH
Lato server
Installazione: sudo apt-get install openssh-server
Avvio/Riavvio: sudo /etc/inid.d/ssh restart
Non c’è stato bisogno di alcuna configurazione particolare. Per visualizzare gli IP di rete: ifconfig
Su qualche Raspberry il server non sembra essere funzionante all’avvio del sistema. Ho modificato il file /etc/rc.local nel seguente modo:…
…
sudo /etc/init.d/ssh restart
exit 0
Lato client
Installazione: sudo apt-get install openssh-client
Accesso: sudo ssh NomeUtente@IndirizzoIPEsempio: sudo ssh harlock@192.168.1.2Accesso grafico: sudo ssh -X harlock@192.168.1.2 (NOTA: non funziona. Soluzione: VNC Viewer)
Montare partizione remota
Installare ssh file system: sudo apt-get install sshfs (eventualmente anche sul server)
Creare una directory come punto di mount: mkdir /media/MYDIR
Montare la partizione:
sudo sshfs UTE_REM@IND_REM:/DIRREM /media/MYDIRLOC -o allow_other
Esempio: sudo sshfs harlock@192.168.1.2:/ /media/sshHarlock -o allow_other
Smontare la partizione:
sudo fusermount -u /media/MYDIR
Esempio: sudo fusermount -u /media/sshHarlock
