Quando ho iniziato a sviluppare in PHP mi sono trovato di fronte al problema di crearmi un ambiente di lavoro confortevole e pratico con i tool di sviluppo che prediligo configurati e pronti all’uso. Voglio condividere con voi la mia impostazione senza pretesa di insegnare nulla, ma sperando possa essere utile a qualche neo-programmatore in PHP.
Seguendo queste istruzioni vi troverete con una workstation con Apache, MySQL, PHP 7.x, Xdebug, Netbeans installati e configurati nelle opzioni principali.
Installazione Ubuntu
Procedere con un’installazione standard di Ubuntu Workstation standard. Ho provato queste istruzioni con le versioni 17.04 e 17.10
Aggiornamento
Utilizzare l’utility di gestione pacchetti da linea di comando in una finestra terminale:
sudo apt update -y sudo apt upgrade -y
Installazione Pacchetti
Ora installiamo il software per creare il nostro ambiente di sviluppo.
Installazione LAMP
L’acronimo LAMP significa Linux Apache Mysql Php, e grazie a tasksel possiamo installare tutto con un unico comando:
sudo apt install tasksel -y sudo tasksel install lamp-server
Dopo la richiesta della password per l’utente root di MySQL, il software installerà i diversi pacchetti.
Installazione Netbeans
Netbeans è installabile sia dal gestore pacchetti di Ubuntu che tramite linea di comando, procedete come preferite.
Sempre da linea di comando:
sudo apt install netbeans -y
Avviare Netbeans e installare i plugin per PHP ed eventuali framework aggiuntivi
Correzione problema con Java
C’è un problema con Netbeans 8.4 su Ubuntu 17 che crea frequenti crash del programma. Per ovviare al problema modificare il file /etc/java-8-openjdk/accessibility.properties. Per ovviare all’inconveniente conviene modificare la configurazione.
Installiamo prima il mio editor preferito:
sudo apt install vim -y
Poi passiamo a modificare il file di configurazione:
sudo vim /etc/java-8-openjdk/accessibility.properties
e commentare la riga:
# assistive_technologies=org.GNOME.Accessibility.AtkWrapper
Installazione MySQL Workbench
Uno strumento che risulta molto utile per gestire i database MySQL
sudo apt install mysql-workbench -y
Installazione Xdebug
Ubuntu workstation 17 include già un package per Xdebug
sudo apt install php-xdebug -y sudo service apache2 restart
Controlliamo che il modulo sia attivo:
php -m [PHP Modules] ... xdebug Zend OPcache zlib [Zend Modules] Xdebug Zend OPcache
A questo punto dobbiamo aggiungere alla configurazione di Apache I parametri per xDebug.
sudo vim /etc/php/7.0/apache2/php.ini
Per Ubuntu workstation 17.10 modificare il file .ini di PHP 7.1
sudo vim /etc/php/7.1/apache2/php.ini
Aggiungere alla fine queste righe di configurazione:
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.max_nesting_level=300
Configurazione Public Home
Personalmente trovo molto comodo eseguire i progetti da una cartella sotto la mia home di utente in modo da copiare ( o meglio far copiare a Netbeans) gli script senza dovermi preoccupare dei permessi come avverrebbe utilizzando il percorso /var/www
Creazione della cartella
Per prima cosa creiamo la cartella e la rendiamo pubblica:
mkdir ~/public_html chmod -R 755 ~/public_html
Configurazione Apache
Poi attiviamo la funzionalità delle user directory in Apache
sudo a2enmod userdir sudo service apache2 reload
Occorre anche attivare PHP nelle user dir perché disattivato di default. Per farlo occorre modificare il file di configurazione di apache relativo a php.
sudo vim /etc/apache2/mods-available/php7.0.conf
Per Ubuntu workstation 17.10 modificare il file .ini di PHP 7.1
sudo vim /etc/apache2/mods-available/php7.1.conf
Occorre commentare una parte di configurazione come spiegato nel file stesso.
Quindi questa parte:
# Running PHP scripts in user directories is disabled by default
#
# To re-enable PHP in user directories comment the following lines
(from <IfModule ...> to </IfModule>.) Do NOT set it to On as it
prevents .htaccess files from disabling it.
<IfModule mod_userdir.c>
<Directory /home/*/public_html>
php_admin_flag engine Off
</Directory>
</IfModule>
Diventa così:
# Running PHP scripts in user directories is disabled by default
#
# To re-enable PHP in user directories comment the following lines
# (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it
# prevents .htaccess files from disabling it.
#<IfModule mod_userdir.c>
# <Directory /home/*/public_html>
# php_admin_flag engine Off
# </Directory>
# </IfModule>
Alla fine riavviare apache per applicare le modifiche
sudo service apache2 restart
Controllo finale
A questo punto controlliamo che tutto sia andato a buon fine. Iniziamo registrando un file index.php nella nostra userdir:
vim ~/public_html/index.php
All’interno scriviamo la funzione per controllare la configurazione di PHP:
<?php phpinfo() ?>
e visualizziamolo tramite browser all’indirizzo http://localhost/~nomeutente/
NOV