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.

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.

Elegant Themes Prodotti

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!

0 commenti

Lascia un Commento

Vuoi partecipare alla discussione?
Sentitevi liberi di contribuire!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *