Visualizzazione post con etichetta server. Mostra tutti i post
Visualizzazione post con etichetta server. Mostra tutti i post

martedì 24 febbraio 2015

Copia del file di default di Apache 000-default.conf


<VirtualHost *:80>
        # The ServerName directive sets the request scheme, hostname and port that
        # the server uses to identify itself. This is used when creating
        # redirection URLs. In the context of virtual hosts, the ServerName
        # specifies what hostname must appear in the request's Host: header to
        # match this virtual host. For the default virtual host (this file) this
        # value is not decisive as it is used as a last resort host regardless.
        # However, you must set it for any further virtual host explicitly.
        #ServerName www.example.com

        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html

        # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
        # error, crit, alert, emerg.
        # It is also possible to configure the loglevel for particular
        # modules, e.g.
        #LogLevel info ssl:warn

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        # For most configuration files from conf-available/, which are
        # enabled or disabled at a global level, it is possible to
        # include a line for only one particular virtual host. For example the
        # following line enables the CGI configuration for this host only
        # after it has been globally disabled with "a2disconf".
        #Include conf-available/serve-cgi-bin.conf
</VirtualHost>

mercoledì 13 agosto 2014

Creare nuovo utente MySql e assegnargli un database.

Se si utilizza un database con diversi progetti potrebbe essere utile creare vari utenti che siano in grado di gestire esclusivamente il database che gli viene assegnato. Questo per non dover per forza utilizzare l’utente root, specialmente se gli amministratori sono diversi.

La prima cosa da fare è aprire il terminale e accedere a MySql

mysql -u root -p

Ora bisogna creare il nuovo utente.

CREATE USER 'nome_nuovo_utente'@'localhost' IDENTIFIED BY 'password_nuovo_utente';


chiaramente nome_nuovo_utente andrà sostituito con il nome dell’utente che si sta creando e password_nuovo_utente va sostituita con la password per l’utente che si sta creando


Ora non rimane che aggiungere il database da collegare a questo nuovo utente e dargli i permessi.

mysql> use mysql;

mysql> INSERT INTO db (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv) VALUES ('%','nome_database','nome_nuovo_utente
','Y','Y','Y','Y','Y','N');

mysql> flush privileges;


Ovviamente nome_database andrà sostituito con il nome del database che si vuole associare all’utente e nome_nuovo_utente andrà sostituito con il nome dell’utente precedentemente creato.



A questo punto abbiamo ottenuto un nuovo utente che ha privilegi solo su un determinato database, in questo modo si potrà anche utilizzare per effettuare il login di phpmyadmin e utilizzare solo il database associatogli.

Amazon EC2 Cambiare chiave .pem (key pair) per un'istanza

Potrebbe capitare di dover accedere a un’istanza Amazon EC2 spenta da tempo, da un PC dove non è presente la chiave ssh .pem.
In questi casi conviene creare una nuova chiave e associarla alla vecchia istanza.

Per creare una nuova chiave non é un problema, si può fare facilmente da pannello di controllo di Amazon, andando su Key Pairs.

Per quanto riguarda l’associazione con l’istanza é leggermente più complicato.

  • La prima cosa da fare é spegnere, non terminare, solo stoppare l’istanza EC2 alla quale si vuole associare la nuova chiave.
  • Staccare il volume associato.
  • Creare e lanciare una nuova istanza EC2, automaticamente collegata alla nuova chiave, quella che si vuole collegare alla vecchia istanza.
  • Collegare il vecchio volume alla nuova istanza creata, come /dev/xvdf (oppure /dev/sdf).
  • Ora é necessario entrare, con la chiave, dentro la nuova istanza creata, per esempio, posizionandosi con il terminale nella cartella dove é salvata la chiave: ssh -l ubuntu -i chiave.pem 111.111.111.111

  • Una volta dentro bisognerà montare il vecchio disco, quello che abbiamo collegato come /dev/xvdf.
  • Per fare una cosa del genere controllare i dischi con sudo fdisk -l se non dovessero esistere, creare le cartelle sudo mkdir /mnt/tmp e poi per montare sudo mount /dev/xvdf /mnt/tmp.

  • A questo punto non rimane che copiare la nuova chiave nel vecchio disco, quindi cp ~/.ssh/authorized_keys /mnt/tmp/home/ubuntu/.ssh/authorized_keys
  • A questo punto logout, uscire da ssh.
  • Terminare la nuova istanza.
  • Staccare il vecchio volume dalla nuova istanza appena terminata.
  • Attaccare il vecchio volume alla vecchia istanza come /dev/sda1
  • Lanciare la vecchia istanza e autenticarsi con la nuova chiave.




giovedì 20 marzo 2014

Server Amazon EC2 - Terza parte - Il protocollo FTP

E' possibile che si abbia la necessità di utilizzare il protocollo FTP per caricare dei file nel server.

Per fare questo è necessario installare un server FTP sull' EC2.
Io utilizzo vsftpd, quindi per per l'installazione basterà

sudo apt-get install vsftpd

Una volta installato il server, andrà configurato.
Per configurarlo bisognerà editare il file /etc/vsftpd.conf.
In questo file ci sono un sacco di parametri da configurare, io descriverò le importazioni più comuni.

Per prima cosa, facciamo una copia di backup del file.

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.old

Ora apriamolo con un editor, come sempre uso nano.

sudo nano /etc/vsftpd.conf

Questa è la lista dei parametri che ho configurato.

listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=NO
chroot_local_user=YES

"connect_from_port_20 Quando abilitata, vsftpd viene eseguita con privilegi sufficienti per aprire la porta 20 sul server, durante i trasferimenti dei dati in modalità attiva. Disabilitare questa opzione permette a vsftpd di essere eseguito con meno privilegi, ma potrebbe essere non compatibile con alcuni client FTP." 
(CIT.)


Aggiungiamo anche questa stringa alla fine del file
seccomp_sandbox=NO
Serve per evitare l'errore:
500 OOPS: priv_sock_get_cmd

Ora non rimane che rendere effettive le modifiche riavviando il server FTP.

sudo /etc/init.d/vsftpd restart

Per poter utilizzare il servizio ftp bisogna scaricare e installare un client come ad esempio filezilla.

Ci si potrebbe collegare utilizzando la chiave.pem scaricata in fase di configurazione (Prima parte) oppure si potrebbero creare degli utenti appositi, ognuno con il proprio permesso.

Come creare utenti reali per connessione FTP.

Io consiglio anche di modificare i proprietari della cartella www.

sudo chown ubuntu /var/www/

sudo chgrp www-data /var/www/

 Anche in questo caso, se si cerca di accedere non si otterrà niente.
Questo sempre perchè il server EC2 ha la porta 21 di connessione FTP chiusa.

A questo punto bisogna procedere esattamente come è stato fatto per abilitare la porta 80 per il protocollo HTTP, però questa volta bisognerà scegliere Custom TCP Rule e inserire la porta che si desidera aprire, in questo caso la porta 21.



A questo punto sarà possibile connettersi esclusivamente utilizzando una modalità di trasferimento attiva.

Se si vuole utilizzare la modalità passiva, o la modalità di default su filezilla, bisogna aggiungere 3 nuove stringhe al file di configurazione vsftpd.conf.

pasv_address=54.186.141.53
pasv_min_port=12000
pasv_max_port=12100

pasv_address — Specifica l'indirizzo IP per l'indirizzo IP 'public facing' del server, per i server situati dietro i firewall Network Address Translation (NAT). Ciò abilita vsftpd a fornire l'indirizzo di ritorno corretto per i collegamenti in modalità passiva.  

Io ho inserito l'indirizzo del mio server, ma ognuno deve inserire l'indirizzo del server che sta utilizzando

pasv_max_port — Specifica la porta più alta inviata ai client FTP per i collegamenti in modalità passiva. Questa impostazione viene usata per limitare la gamma della porta, in modo da semplificare la creazione delle regole del firewall.
Il valore di default è 0, il quale non limita la gamma della porta passiva più alta. Il valore non deve eccedere 65535

pasv_min_port — Specifica la porta più bassa inviata ai client FTP per i collegamenti in modalità passiva. Questa impostazione viene usata per limitare la gamma della porta, in modo da semplificare la creazione delle regole del firewall.
Il valore di default è 0, il quale non limita la gamma della porta passiva più bassa. Il valore non deve essere minore di 1024
(CIT.)

Ovviamente a questo punto bisognerà anche aprire le porte nel server, quindi dal solito security groups




 

mercoledì 19 marzo 2014

Server Amazon EC2 - Seconda parte - Installare LAMP (Linux, Apache, MySQL, PHP)

Ora che abbiamo un server funzionante con un accesso SSH, se si vuole far girare un sito web o un'applicazione PHP, non rimane che installare una LAMP, ovvero Linux, Apache, MySQL, PHP.

Per quanto riguarda Linux non c'è problema, è gia stato installato nella prima parte, durante la configurazione della machcina.

Per installare tutto il resto, per questioni di praticità consiglio di utilizzare tasksel.
Qui un tutorial sull'utilizzo.

Una volta che installata la LAMP si potrà testare il funzionamento digitando su un browser l'indirizzo IP pubblico del server.

Con ogni probabilità il sistema non funzionerà... per fortuna...
Questo perchè le porte in entrata del server sono tutte chiuse.
Per utilizzare la LAMP dall'esterno abbiamo bisogno di utilizzare il protocollo HTTP, quindi abilitare la porta 80 del server.

Quindi tornare nella pagina di Amazon con la console del server.

Cerchiamo nel menù di sinistra la voce Security Groups, da qui avremo accesso al gruppo di default di cui fa parte il nostro server, diciamo un vero e proprio firewall.


Come vediamo l'unica porta aperta è quella per l'accesso SSH, che viene impostata di default al momento della creazione dell'istanza.

Dobbiamo aggiungere una nuova regola utilizzando il tasto EDIT


dal pulsante ADD RULE possiamo aggiungere la nuova regola. Cerchiamo nell'elenco la voce HTTP. Ora salviamo e andiamo a controllare il browser di prima, se tutto è stato fatto nella maniera corretta basterà aggiornare la pagina per avere questo risultato
Questo vuol dire che Apache è installato correttamente e che la porta 80 è aperta per le connessione dall'esterno.

A questo punto potremo fare una prova per controllare che anche php stia girando correttamente.
Per fare questo si può scrivere un piccolo file .php dentro il server e provare a farlo girare, un phpinfo() può bastare.

Gli script php vanno messi di default nella cartella /var/www/

Quindi, apriamo il terminale e colleghiamoci tramite protocolle SSH, come spiegato nella seconda parte e posizioniamoci nella cartella /var/www/.




Ora è possibile creare il file con qualsiasi editor di testo, io per praticità uso nano, ma si può utilizzare anche vi o qualsiasi altro, ovviamente non gedit.

Quindi digitare
cd /var/www
sudo nano info.php
info.php è un nome qualsiasi scelto per il file, potete chiamarlo come volete.
Una volta aperto il programma inserire il codice

<?php
phpinfo();
?>
Ora non ci rimane che andare a vedere se php è effettivamente installato correttamente.

Apriamo il solito browser e dopol'indirizzo IP del server inseriamo /info.php

Se il risultato dovesse essere questo
Allora vuol dire che tutto è installato come si deve.

Ora è il momento di installare il tool grafico di amministrazione del database MySql, e cioè PhpMyAdmin.

Prima di installarlo verifichiamo che MySql stia girando correttamente controllando i processi.
ps aux | grep mysql
In questo modo controlleremo se tra i nostri processi in corso c'è anche il database MySql.

A questo punto non rimane che installare PhpMyAdmin.
sudo apt-get install phpmyadmin
Bisognerà seguire l'installazione perchè verranno chieste alcune cose riguardanti il database, cliccare su ok e andare avanti.

Verrà chiesto di riconfigurare i file della piattaforma presente, quindi selezionate Apache.



Ora inserire la password per l'utente principale e la password del database MySql, inseriamola, confermiamola e andiamo avanti.



A questo punto basterà andare sempre sul solito browser, scrivere l'indirizzo IP seguito da /phpmyadmin


Per poter accedere basterà inserire il nome dell'utente principale, root di default, e la password scelta in fase di installazione.

Ora la LAMP è pronta e funzionante.

martedì 18 marzo 2014

Server Amazon EC2 - Seconda parte - Connessione SSH

Per connetterci al server configurato e installato nell'articolo precedente ora dobbiamo utilizzare la chiave che abbiamo scaricato.

Si presume che la chiave sia in una cartella del pc o sul desktop.

Per una connessione SSH bisogna utilizzare il terminale, quindi la prima cosa da fare è andare nella cartella dove si tiene conservata la chiave di accesso, cioè il file.pem.

Per spostarsi in una determinata cartella, ad esempio il desktop:
cd /home/nomeutente/Scrivania/
Oppure:
cd ~/Scrivania/ 
In questo momento sto utilizzando, nel pc con cui voglio collegarmi al server, Ubuntu 13.4.

Da qui potremo utilizzare il comando ssh con la chiave e l'indirizzo ip del server.
Ipotizziamo di avere come indirizzo ip pubblico 54.186.141.53. Possiamo vedere quale è il nostro indirizzo dalla pagina di gestione del server.

a questo punto sarà sufficiente fare
ssh -l ubuntu -i serverUbuntu.pem 54.186.141.53
ubuntu è il nome dell'utente di default, serverUbuntu.pem è la chiave che ho scaricato in fase di installazione e 54.186.141.53 è l'indirizzo ip del mio server.

Server Amazon EC2 - Prima parte - Una nuova istanza

Per utilizzare un serve Amazon EC2 dopo essersi registrati, la prima cosa da fare è andare nella console del sistema.

Da qui sarà possibilegestire tutto il sistema.
Siccome dobbiamo usare un Amazon Elastic Compute Cloud (Amazon EC2), bisognerà andare su EC2 virtual servers in the cloud.



Ci troveremo all'interno del pannello di controllo del nostro EC2.

Sulla sinistra troviamo tutti i tools di gestione.
Cerchiamo ISTANCES e lanciamo una nuova istanza dal pulsante blu Launch Istance.

 
A questo punto dovremmo scegliere il sistema operativo da utilizzare sul server. Se non si vuole spendere niente e si vuole solo provare il sistema, consiglio di selezionare la casella free tier only in modo da vedere solo i sistemi gratuiti.
 

Nella colonna di destra si possono scorrere tutti i sistemi operativi disponibili gratuitamente. Io ho scelto Ubuntu Server 13.10 (PV).
Basta andare su Select per proseguire. A questo punto non potremo che prendere una micro istanza, e cioè l'unica macchina che ci può venire offerta gratuitamente per prova.


Ora io consiglio di andare su Configure Istance details per abilitare la prootezione dallo spegnimento accidentale. 



Il resto dovrebbe andar bene lasciato tutto di default.
Ora che abbiamo creato l'istanza che vogliamo utilizzare possiamo procedere attraverso il pulsante blu Review and Launch

Potremmo vedere un resoconto di quanto fatto e a questo punto potremmo lanciare effettivamente l'istanza creata.


Ci verrà chiesto di utilizzare una vecchia chiave o di crearne una nuova.


Io ne ho creato una nuova. Verrà chiesto di inserire il nome della chiave, si può scrivere quello che si vuole, io l'ho chiamata serverUbuntu. A questo punto è importante effettuare il download della chiave e conservarla sul pc. Questa chiave ci servirà più avanti per utilizzare il server tramite protocollo SSH.

Una volta scaricata la chiave si può procedere tramite il pulsante blu Launch Istances, che ora sarà diventato attivo.

A questo punto vedremo il processo avviarsi.


Ci sarà da aspettare un pochino.


Quando vedremo questa immagine vorrà dire che è andato tutto nel modo giusto e che ora potremmo iniziare a utilizzare il nostro server.



              /---------------------------------------------------------------------------------/


Se si vuole eliminare l'istanza appena creata, bisogna usare il tasto destro sulla riga dell'istanza che si vuole terminare.


Si avrà accesso a un menù. Non sarà possibile terminare subito la macchina perchè durante la configurazione abbiamo abilitato la protezione per la terminazione accidentale. Bisogna disabilitare la protezione e poi terminare l'istanza.

Si arriverà a questa schermata.


A questo punto bisogna solo aspettare che illavoro venga fatto...



mercoledì 26 febbraio 2014

Installare al volo una LAMP e tanti altri pacchetti su Ubuntu

Per installare al volo una LAMP e tanti altri pacchetti, esiste un praticissimo tool chiamato tasksel.

Per installarlo è sufficiente digitare:

# sudo apt-get install tasksel

Per avviarlo basta digitare

# sudo tasksel
O eventualmente

# sudo tasksel install lamp-server

Il programma si avvierà sul terminale e sarà possibile selezionare i pacchetti da installare, tra questi è presenta anche la LAMP.


A questo punto bisognerà attendere l'installazione e fare attanzione a questa schermata


Verrà chiesta la password di MySql per l'utente root, ovvero l'utente di default del database.
Inserite la password e poi confermatela.


A questo punto bisogna attendere ancora qualche secondo per concludere l'installazione e avere una LAMP funzionante.



Per approfondire lascio questo link: Tasksel

mercoledì 19 febbraio 2014

Ricevere email con zoho.com

Se si utilizza il servizio di zoho.com per la propria posta elettronica, sarà possibile avere dei problemi con la ricezione delle email. Sarà quindi possibile inviare email dalla casella creata, ma non sarà possibile riceverle.
Questo perchè bisogna indirizzare gli MX records nel proprio pannello DNS da cui si è acquistato lo spazio.

In questa guida ufficiale è spiegato come farlo in generale e nello specifico per i principali servizi di hosting inglesi.
Guida zoho.com

Io ho utilizzato tophost.it, e nello specifico, questo è quello che ho fatto.


Ho semplicemente modificato il valore facendoli puntare verso zoho.

Quindi per quello di priorità 10 ho inserito mx.zohomail.com, mentre in quello di priorità 20 ho inserito mx2.zohomail.com.

Fatto questo dovrebbe essere possibile ricevere e-mail.

giovedì 12 dicembre 2013

Configurazione Apache2 per inserire alias PhpMyAdmin in ogni sito del server.

Per inserire l'alias per raggiungere la pagina di PhpMyadmin per un sito presente nel server, bisogna editare il file di configurazione che sta dentro la certella sites-enabled.

Per editarlo io uso nano, ma è possibile usare vi o qualsiasi altro editor.

Quindi:

nano /etc/apache2/sites-enabled/www.tuosito.it

Inserire nel file la seguente riga:

 Alias /phpmyadmin /usr/share/phpmyadmin

Subito dopo DocumentRoot.

Ovviamente prima di fare questo è necessario installare PhpMyadmin, altrimenti l'alias che si inserisce non punterà a niente.



/---------------------------------------------------------/

UPDATE 14/10/2014

Ultima versione di apache 

esempio di alias:
http://stackoverflow.com/questions/23337446/getting-a-403-forbidden-error-for-simplesaml-after-apache-upgrade

mercoledì 18 settembre 2013

Script bash per pulire cache e impostare diritti 777 alle cartelle cache e logs in Symfony2

Mi capita spesso, con i siti costruiti utilizzando Symfony2, di dover dare i diritti 777 alle cartelle cache e logs sia prima che dopo aver ripulito la cache.

Ovviamente questo avviene sui siti che stanno sul server, non il locale.

Nel casi specifico sto parlando di un server Amazon EC2 con Ubuntu 13.04.

Essendo parecchio pigro ho scritto un piccolissimo e semplicissimo script in bash che si occupa di dare i diritti alle cartelle, pulire la cache e poi ridare i diritti alle cartelle.

Il procedimento per questo script è lo stesso per qualsiasi altro script in bash.

Ipotizzio di fare tutto tramite una connessione SSH al server.

Prima cosa creare il file nella posizione che si preferisce.
#nano nomefile.sh

Ogni file bash deve iniziare con
#!/bin/bash
                   (il cancelletto bisogna lasciarlo)

Quindi scrivere i comandi del terminale che si vogliono far eseguire dallo script.


 Il testo completo dello script è il seguente:
#!/bin/bash

chmod 777 -R /var/www/nomecartella/app/cache/
chmod 777 -R /var/www/nomecartella/app/logs/  

cd /var/www/nomecartella/
php app/console cache:clear --env=prod --no-debug          

chmod 777 -R /var/www/nomecartella/app/cache/        
chmod 777 -R /var/www/nomecartella/app/logs/

             Ovviamente nomecartella va sostituito con il nome della cartella che contiene l'applicazione symfony2.

Una volta salvato il file, bisogna dargli i permessi di esecuzione.
#sudo chmod +x nomefile.sh

A questo punto basta solo richiamarlo, ogni volta che serve, con questo comando:
#sudo ./nomefile.sh

Connessione SSH si blocca dopo inattività

Spesso accade che la nostra connessione SSH si blocchi dopo pochi minuti di inattività.

Ho trovato la soluzione in questa pagina:
http://startbyzero.com/webmaster/connessioni-ssh-che-si-bloccano-dopo-pochi-minuti-di-inattivita/

Per risolvere il problema, a me è bastato modificare la configurazione sul lato client, modificando il file ssh_config.

E' bastato aggiungere  due righe di codice per mantenere aperta la connesisone, in questo modo si evita l'inattività perchè il client manda dei pacchetti al server ogni 60 secondi.

Aprire con l'editor che si preferisceil file ssh_config.
Ad esempio:

                  #sudo nano /etc/ssh/ssh_config

e aggiungere alla fine del file le seguenti righe:

                   ServerAliveInterval 60
                   ServerAliveCountMax 3


Se questo non dovesse bastare, date un'occhiata al post originale, scritto in italiano, da cui ho preso queste informazioni.