IT | <alebal web Blog> | Appunti di PHP, MySql, javascript, Css, HTML, HTML5 e altro...

IT

Http to https usando apache conf file Per convertire in modo permanente tutto un sito da http a https si possono usare i file di configurazione del virtual host di apache e url_rewriter. Si fa cosi, si aggiungono alla fine del file di configurazione di apache (es: sudo nano /etc/apache2/sites-available/example.com.conf) queste righe: RewriteEngine on RewriteCond %{SERVER_NAME} =example.com [OR] RewriteCond %{SERVER_NAME} =www.example.com RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent] Cambiando il dominio. Poi si riavvia apache: sudo service apache2 restart Finito! Ora

Aggiornare Ubuntu server a 18.04 Finalmente è uscito Ubuntu 18.04 Bionic Beaver, dopo qualche ritardo perchè hanno fatto qualche casino, ora se ne parla come fosse una meraviglia, quindi aggiorniamo. Io sono partito da 16.04 su server vultr. Allora prima di tutto si aggiorna 16.04: sudo apt update && sudo apt dist-upgrade && sudo apt autoremove Poi si installa il nuovo update-manager: sudo apt-get install update-manager-core Si controlla di ricevere solo gli aggiornamenti lts, su questo file: sudo nano /etc/update-manager/release-upgrades Default behavior for

Backup automatico MySql su server Ubuntu Con questo giochino creo uno script che può essere lanciato via cronjob (giornaliero, settimanale, mensile), che in automatico fa il backup di tutte le tabelle mysql sul mio server e crea un unico file .zip. Si comincia creando la necessaria struttura cartelle: sudo mkdir /var/backup sudo mkdir /var/backup/mysql Poi si assegnano i permessi per scrivere file in queste cartelle: chown -R www-data:www-data /var/backup chmod -R 755 /var/backup chown -R www-data:www-data /var/backup/mysql chmod -R 755 /var/backup/mysql A questo punto si crea il file vero e proprio che

Password su directory (Apache, htaccess, htpasswd) Per consentire l'accesso solo con password a una directory si fa cosi Si crea un file htaccess sulla directory che vuoi proteggere con password: sudo nano /url/directory/da/proteggere/.htaccess Nel file appena creato incolli questo: AuthType Basic AuthName "Restricted Files" AuthUserFile /url/directory/da/proteggere/.htpasswd Require valid-user Poi controlla di avere installato questo: sudo apt-get install apache2-utils Quindi creaiamo il file htpasswd con questo comando da terminale: sudo htpasswd -c /url/directory/da/proteggere/.htpasswd

Disabilitare sql_mode=only_full_group_by in Ubuntu 16.04 Con le nuove versioni di mysql in Ubuntu 16.04 capita di ritrovarsi questo errore: <b>Fatal error</b>: Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'tags_search.id_search' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by in E se il tuo codice è magari un pò vecchiotto, vuole usare GROUP_BY. Come se ne esce? O modifiche tutto il tuo codice o

Aggiungere regole a iptables da lista IP e renderla persistente su Ubuntu Bloccare un singolo ip Si fa cosi: sudo iptables -I INPUT -s 93.105.187.11 -j DROP (P.S. Questo è l'IP dello stronzo che mi clonava i siti) Bloccare una lista di ip Innanzitutti abbiamo bisogno della lista di IP da bloccare, la possiamo prelevare ad esempio da qui: https://www.ip2location.com/free/robot-whitelist Poi ci serve uno script che va a leggere la lista e aggiunge le regole a iptables, lo creiamo: sudo nano blockip (viene creato in root) Nel file appena creato incolliamo questo codice: for i in `cat /root/ips|grep -v

Ubuntu server ufw (Uncomplicated firewall) bloccare IP o lista di IP (via CIDR) Per bloccare un IP, si fa cosi: ufw insert 1 deny from 93.105.187.11 to any; "insert 1" inserisce la nuova regola in alto, sembra che l'ordine conti, ci devono essere prima tutte le regole DENy, poi alla fine tutte le regole ALLOW. Un CIDR, praticamente una lista di IP, si fa cosi: Per prima cosa si fa un wois sull'IP da bloccare su un sito come questo http://whois.arin.net/, che riporta anche i CIDR. Poi copia la riga CIDR e incollala nel comando ufw deny ufw insert 1 deny from 39.0.0.0/8 to any; Compreso / e numeretto. Bloccare lista IP

Form select con cambio pagina su onchange solo javascript Come si fa una select che quando selezioni un valore ti manda su un altra pagina? Cosi: <select name="mia select" onchange="javascript:location.replace('nuova_pagina.php?valore_select=' + this.options[this.selectedIndex].value + '');"> <option value="1">1</option> <option value="2">2</option> </select> e che ricarica la stessa pagina? Cosi: <select name="mia_select" onchange="javascript:location.replace('?valore_select=' + this.options[this.selectedIndex].value + '');"> <option value="1">1</option> <option

Rimuovere certificato (Let's Encrypt) dal server Utile ad esempio se sposti un sito su un altro server, i rinnovi dei certificati sul vecchio server si impallano perchè non trovano più il virtual host del sito rimosso, oppure quando provi a richiederlo nel nuovo server Let's Encrypt ti rompe le balle perchè c'è n'è già uno, sul tuo vecchio server... Si fa cosi: Innanzitutto controlla sul server se hai la cartella "/etc/letsencrypt/" oppure "/etc/certbot/" e cambia i link di conseguenza. Si revoca il certificato: certbot revoke --cert-path

Comandi utili per gestire un server Ubuntu Tail Mostra le ultime righe, ad esempio di un log tail /var/log/syslog Tailf Segue la crescita del log tailf /var/log/syslog (Si ferma con Ctrl+C, penso...) Less Mostra una versione leggera, ad esempio di un log less /var/log/syslog Grep Cerca, ad esempio i cronjob all'interno di un log grep CRON /var/log/syslog MySql console Accede alla console di MySql mysql -u root -p (si esce con quit)   Dove sono i log: Syslog, il