Su Mac o Windows, per installazioni locali di ambienti di development abbiamo tool come MAMP o XAMPP.
XAMPP è presente anche per linux, ma in questo articolo spiego come gestire il tutto da soli da terminale, il che aiuta a capire un po’ di più come funziona Apache.
- Installare Apache
- Installare MySql
- Installare PHP
- Installare phpMyAdmin
- Impostare i Virtual Host
- Proprietà e permessi dei file
Attenzione: questa guida è per installare Apache, MySql, PHP in un ambiente di development in locale. Su un server online che deve ospitare siti bisogna fare ulteriori procedimenti per garantirne la sicurezza, come l’installazione di un firewall ecc…
Installare Apache
Apri il terminale e scrivi
sudo apt update
sudo apt install apache2
Apriamo il file di configurazione generale di Apache con nano
sudo nano /etc/apache2/apache2.conf
Aggiungiamo questa riga all’interno del file
ServerName localhost
Altrimenti quando facciamo partire il server abbiamo un messaggio che ci notifica che non sa qual è il dominio.
Per fare ripartire apache dopo che abbiamo cambiato le sue configurazioni usiamo
sudo service apache2 restart
Per controllare lo stato di Apache usiamo
sudo service apache2 status
Ci vengono restituite diverse informazioni. Se non vedi messaggi di errore, bene!
Ora puoi aprire il browser e andare in localhost, oppure 127.0.0.1 e vedere la pagina di benvenuto di Apache.
Installare MySql
sudo apt update
sudo apt install mysql-server
Segui la procedure rispondendo alle domande, come user, password ecc…
Installare il PHP
sudo apt install php libapache2-mod-php
Con questo comando installiamo il php ed il modulo per Apache.
Ci servono però molti altri moduli, come quello per il MySql, così come altri per far girare bene per esempio un sito in WordPress.
sudo apt install php-mysql php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip
Passiamo alle impostazioni per il PHP aprendo il famoso file php.ini
sudo nano /etc/php/7.4/apache2/php.ini
Se usi una versione diversa, allora cambia il path del file.
All’interno di questo file dobbiamo cambiare alcuni parametri. Per trovarli con nano premi F6.
upload_max_filesize = 48M
post_max_size = 48M
memory_limit = 256M
max_execution_time = 600
max_input_vars = 3000
max_input_time = 1000
display_errors = On
Cambiare questi valori secondo le tue necessità.
display_errors
lo impostiamo su On perché logicamente vogliamo vedere a monitor quando c’è qualche errore. Fosse su Off viene restituito solo il messaggio dell’errore critico / contattare il webmaster.
Per controllare che le impostazioni siano giuste crea un file info.php ed inserisci questo codice
<?php
phpinfo();
?>
Sposta questo file in /var/www/html che è la document root del tuo server. Ovvero dove dovrai mettere i file.
Torna nel browser e vai a localhost/info.php
ora puoi vedere tutto il resoconto delle impostazioni di PHP.
Installare PhpMyAdmin
Il PhpMyAdmin richiede molti dei pacchetti php che abbiamo installato prima. Se non lo hai fatto rischia di non andare, o al massimo installi quelli che ti mancano.
sudo apt install phpmyadmin
Durante la fase d’installazione essere sicuri di flaggare la voce Apache premendo SPACE. Quindi premere TAB per spostarsi e poi ENTER.
PhpMyAdmin per funzionare necessita di un utente, quindi bisogna crearlo.
Entriamo nel Mysql scrivendo
sudo mysql --user=root mysql
e creiamo un utente per il phpMyAdmin con
CREATE USER 'phpmyadmin'@'localhost' IDENTIFIED BY 'metti_la_password';
GRANT ALL PRIVILEGES ON *.* TO 'phpmyadmin'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
Al posto di metti_la_password inserisci ovviamente la tua password.
Ora andiamo nel file di configurazione del phpMyAdmin per impostare la user e la password dell’utente appena creato
sudo nano /etc/dbconfig-common/phpmyadmin.conf
e modifica dbc_dbuser e dbc_dbpass con i tuoi valori.
Impostazioni per i virtual host
Dato che siamo nel ambiente di development non ci serve impostare virtual host differenti, uno per ogni sito.
Siamo ok nel avere installazioni di questo tipo
- http://localhost/sito-a
- http://localhost/sito-b
- http://localhost/sito-c
Quindi le impostazioni le facciamo una volta nel file 000-default.conf
e valgono per tutti.
sudo nano /etc/apache2/sites-available/000-default.conf
Aggiungi questa direttiva all’interno di <VirtualHost *:80>
<Directory /var/www/html/>
AllowOverride All
</Directory>
In questo modo permettiamo l’uso del file .htaccess, tramite il quale si possono sovrascrivere alcune impostazioni del server.
Per esempio WordPress ne fa largo uso e senza di questo file non potrebbe funzionare.
Attiviamo il modulo rewrite
sudo a2enmod rewrite
Senza di questo modulo non potremmo avere le URL pretty come
sito.it/pesca/fiume/carpe-a-go-go
Dopo tutte queste modifiche fai un bel restart di Apache.
Proprietà e permessi dei file
Proprietà
Dobbiamo ora abilitare il server a poter gestire i file che sono nella cartella /var/www/html
Infatti non ti scordare che applicazioni come WordPress devono avere i permessi per creare, modificare, cancellare file.
Chi è www-data?
www-data è il nome dell’utente ed il nome del gruppo che utilizza Apache. Pertanto tutti i file e le cartelle all’interno di /var/www/html
devono essere assegnate ad essi.
sudo chown -R www-data:www-data mioSito
Con questo comando diciamo al pc “Hey, cambiami il proprietario (chown – change owner) ed il gruppo della cartella mioSito in www-data
, e non ti scordare di farlo sia per questa cartella, ma anche per tutti i file e sottocartelle che ci trovi dentro (-R
)”.
Permessi di cartelle e file
Ora dobbiamo assegnare i permessi ai file e alle cartelle.
Solitamente per WordPress le cartelle devono avere permessi 755, mentre i file devono avere permessi 644.
Nota: Visto che siamo in locale, in un ambiente di development, potresti volere abilitare il tuo utente ad aprire e modificare al volo i file che ci sono nella cartella del sito senza doverti ogni volta autenticare come root, visto che si trova in una “zona non consentita”. Se vuoi questo, allora le cartelle devono avere i permessi a 775 ed i file a 664, aumentando così anche i permessi del gruppo, a cui poi assegnerai il tuo utente.
Per le cartelle usa
sudo find /path/al/tuo/sito/ -type d -exec chmod 755 {} \;
Per i file
sudo find /path/al/tuo/sito/ -type f -exec chmod 644 {} \;
Ora (se hai impostato 775 e 664) devi aggiungere il tuo utente al gruppo www-data tramite
usermod -a -G www-data tuoUtente
Mi sembra tutto, buon lavoro!
Lascia un Commento
Vuoi partecipare alla discussione?Sentitevi liberi di contribuire!