Clicca per il Menu:

Installazione Apache+MySQL+PHP+PhpMyAdmin su Freebsd e PC-BSD

Questa miniguida si rivolge ad un'installazione in locale, ad esempio per poter effettuare delle prove di gestione di siti WEB dinamici. Non ha quindi la pretesa di considerare gli aspetti della sicurezza tipici di un'installazione di un server WEB. Comunque, a parte l'aspetto della sicurezza da affrontare con le configurazioni, i passi fondamentali per l'installazione sono sempre questi. Il titolo fa riferimento anche alla derivata di FreeBSD PC-BSD ma da settembre 2016 ha cambiato nome in TrueOS.

Poichè non è possibile usare il comodo pacchetto XAMPP (esistente per Win, Mac e Linux e molto comodo per i nostri usi) bisognerà installare i 3 componenti separatamente. A dire la verità per PC-BSD è disponibile un pacchetto denominato AMP – InmateTuttavia non è un normale pacchetto .pbi ma in altro formato, da installare all'interno delle Jail gestite da Warden.

Installare i singoli componenti non è semplicissimo, soprattutto per le configurazioni e le guide in giro sulla rete propongono di tutto e di più. Questa l'ho trovata sintetica ma efficace. Qui propongo una mia personale via per installare il tutto. Intanto è meglio usare la compilazione. Quindi andare nella directory /usr/ports. Stesso problema con PC-BSD che pur installa di suo Apache e MySQL (non PHP), mentre ha il solo Apache come pacchetto .pbi  Attenzione perché ultimamente c'è parecchia confusione con i numeri delle versioni di Apache, PHP e MySQL (installabile al suo posto anche MariaDB). PC-BSD installa di suo Apache e MySQL (non PHP), mentre ha il solo Apache come pacchetto .pbi ma è meglio non usarlo.

La strada consigliata è da terminale come root:

- installare Apache2x (ultima versione consigliata la 2.4) dando cd /usr/ports/www/apache24 e poi il solito make config install clean oppure usare portmaster;

- installare PHP dando cd /usr/ports/lang/php5x (verificare l'ultima versione disponibile) e poi il solito make config install clean oppure con portmaster;

- installare Php5-extensions (o l'ultima versione che si trova nei ports) dando cd /usr/ports/lang/php5-extensions e poi il solito make config install clean o portmaster

- Infine installare /usr/ports/www/mod_php5. Facendolo con portmaster probabilmente verrano esaudite delle dipendenze dovute a versioni diverse.

Alla fine dell'installazione, modificare/controllare il file di configurazione di Apache httpd.conf (directory /usr/local/etc/apache24) come previsto nella guida segnalata prima. E' un punto delicato, comunque le cose importanti presenti devono essere:

a) nella sezione LoadModule la presenza di una riga “LoadModule php5_module libexec/apache22/libphp5.so” (significa che il modulo per gli script PHP è presente);

b) subito dopo questa sezione l'aggiunta di due righe con:

AddType application/x-httpd-php .php

AddType application/x-httpd-php-source .phps

c) nella sezione DirectoryIndex, l'aggiunta di “index.php”

d) avere abilitato (togliendo il segno '#') il modulo rewrite, cioè avera la riga: "LoadModule rewrite_module modules/mod_rewrite.so"

Per lanciare il server Apache è meglio dare il comando /usr/local/etc/rc.d/apache24 onestart (stop e onerestart sono le altre 2 opzioni utili) e non quello segnalato sulla  guida ufficiale.  Per convincersene, guardare questo Forum. Se, durante l'avvio, pur partendo il server vi dice qualcosa sull'impossibilità di trattare il nome di dominio, dovete aggiungere nel file httpd.conf una riga con ServerName localhost (nella sezione ServerName).

Fate inoltre una copia del file php.ini-production (o analogo) nella directory /usr/local/etc/ così: cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini

Ora, per vedere se tutto funziona, aprite il browser e scrivete nella barra indirizzi localhost. Se vi appare una scritta "it works", significa che il server Apache funziona. Per vedere se funziona anche lo scripting di PHP, aprite un file di testo e inserite:

<?php

echo "OK";

?>

salvate con il nome prova.php e inseritelo nella directory /usr/local/www/apache24/data. Ricordate: questa è la directory dove dovrete piazzare le vostre pagine PHP. Ora, riscrivendo sul browser localhost/prova (oppure localhost/prova.php), dovreste vedere solo la scritta OK. Se è così, allora è fatta e passiamo a installare MySQL. Attenzione, se usate TrueOS forse potete saltare questo passo. Per controllare se una versione MySQL è installata date il comando pkg info e scorrete in ordine alfabetico. Se trovate MySQL server e client allora è già installato, sennò dovete andare su /usr/ports/database/mysql55-server (potrebbe esserci una versione successiva alla 55 allora installate quella). Da lì il solito make install clean. Mysql-server installerà anche il client.

Su MySQL dovreste lavorare sulla sicurezza. Qui non mi dilungo, supponendo che state in ambiente locale e su computer sicuri e non avete database di particolare importanza da proteggere! I comandi da usare in tal caso sono: /usr/local/etc/rc.d/mysql-server start (avvia MySQL) e

/usr/local/bin/mysql_install_db (installa il database per i permessi, ecc.)

Ora non resta che testare se possiamo connetterci attraverso uno script PHP al database sito in MySQL. Per farlo potete scrivere un altro file di testo da mettere nella directory /data di apache, come quello di prima. Solo che il testo sarà:

 <?php

// Connessione a MySQL

$link = mysql_connect('localhost', 'root', '') or die('Connessione fallita: ' . mysql_error());

// Selezione database di test

mysql_select_db('test') or die('Selezione DB fallita: ' . mysql_error());

// E' tutto ok e chiudo la connessione

echo 'OK. Prova di collegamento al database test di MySQL con scripting PHP: entrambi risultano funzionanti!';

mysql_close($link);

?>

Salvate e chiamatelo connect.php e inseritelo nella directory /data. Ora nel browser scrivete l'indirizzo localhost/connect (oppure localhost/connect.php). Se tutto funziona, magicamente vedrete la scritta che dà l'OK della connessione. Se è così significa che da ora in poi potrete accedere ad un database MySQL con pagine PHP; ovviamente si suppone che sappiate cosa farne di tutto questo.

ATTENZIONE!: Può darsi che lo script di prova per la connessione fallisca con un messaggio più o meno simile:

Fatal error: Call to undefined function: mysql_connect() in /usr/local/www/data/connect.php on line 3

Ciò significa che bisogna verificare se in /usr/local/etc/php/extension.ini (che è un semplice file di testo) ci sia una riga uguale a: extension=mysql.so

Se non c'è bisogna installare il modulo da /usr/ports/databases/php5-mysql sempre con il comando make install clean. Alla fine dovreste avere la riga aggiunta nel file citato in automatico. Fate ripartire Apache e riprovate.

Per far partire Apache e MySQL in automatico all'avvio del computer aggiungere al file /etc/rc.conf due righe:

apache24_enable="YES"

mysql_enable="YES"

Attenzione:se notate strani messaggi (tipo: “Invalid argument: Failed to enable the 'httpready' Accept Filter...”) lanciando il server Apache o dando il comando /usr/local/sbin/httpd(con il server ovviamente non in funzione), è probabile che dobbiate inserire anche una riga apache22_http_accept_enable="YES"al file /etc/rc.conf e inserire questa direttiva nel file /usr/local/etc/apache22/httpd.conf

<IfDefine !NOHTTPACCEPT>

 AcceptFilter http httpready

 AcceptFilter https dataready

 </IfDefine>

 

Nel caso seguiate la strada (non sbagliata) di rendere più sicura la connessione cambiando la password e l'utente d'accesso di MySQL (ricordarsi che l'utente root non è l'utente root del sistema ma vale solo per MySQL), nello script precedente dovrete inserire il nome dell'utente scelto al posto di "root" e inserire l'eventuale password al posto dei due apici "" ma sempre dentro due virgolette. Se poi il computer dove si trova il database è diverso da "localhost", dovrete inserire l'IP del computer sempre tra tra virgolette.

Per correttezza segnalo una guida molto completa soprattutto per chi volesse cimentarsi nell'installazione con Apache server versione 2 e successive

A questo punto possiamo installare il PhpMyAdmin che ci permette di gestire i databases MySQL (crearli, vederli, modificarli, ecc.). L'installazione di PhpMyAdmin, che si gestisce attraverso un browser richiamandolo in genere all'indirizzo “localhost/phpMyAdmin”, non è difficile in sé ma può comportare malfunzionamenti dovuti alle configurazioni non proprio agevoli da fare. Per installarlo, andare nella directory /usr/ports/databases/phpmyadmin e dare il solito comando make config install clean o portmaster. Poi seguire questo WIKI che dà un'idea delle cose da configurare. Fate attenzione: la guida segnalata in precedenza su caffetine.org va seguita solo in parte, perchè un pò datata. In particolare, usate la procedura della creazione di una sub-directory config (con permessi assegnati 777) e poi accedete dal browser alla configurazione con <nomehost>/phpmyadmin/setup (esempio: localhost/phpmyadmin/setup). Cliccate per aggiungere un server e poi per la configurazione si presuppone che abbiate un minimo di conoscenza della gestione dei database MySql. Alla fine salvate, scegliete il server aggiunto che dovrebbe comparire nella lista e la lingua da usare e salvate di nuovo. Se tutto è a posto, sarete avvertiti che un file config.inc.php è stato creato nella directory config. Copiatelo nella directory principale di PhpMyAdmin, restringete i permessi a 444 del file e cancellate la directory config.

Comunque se qualcosa non funziona, non vi scoraggiate e cercate soluzioni sul Web (oppure scrivetemi che se sono in grado rispondo). Ricordarsi comunque che potrebbe essere necessario nel file config.inc.php avere le due righe:

$cfg['UploadDir'] = '/tmp';

$cfg['SaveDir'] = '/tmp';

Dove la directory /tmp è aperta alla lettura e scrittura per gli utenti.

Inoltre nel file “httpd.confdi Apache (versione 2.4) avere le righe nella sezione <Directory>:

<Directory "/usr/local/www/phpMyAdmin"> (ovviamente la directory può cambiare e anche le opzioni)

Options Indexes FollowSymLinks ExecCGI Includes

AllowOverride

AllRequire all granted

</Directory>

e questa nella sezione <IfModule mod_alias.c>:

Alias /phpmyadmin "/usr/local/www/phpMyAdmin"

Per aiutare riporto un file config.inc.php d'esempio:

<?php

/* Servers configuration */
$i = 0;

/* Server: localhost [1] */
$i++;
$cfg['Servers'][$i]['verbose'] = '';
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['port'] = '';
$cfg['Servers'][$i]['socket'] = '';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['extension'] = 'mysql';
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['user'] = '';
$cfg['Servers'][$i]['password'] = '';
$cfg['Servers'][$i]['AllowNoPassword'] = true;
$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
$cfg['Servers'][$i]['bookmarktable'] = 'pma_bookmark';
$cfg['Servers'][$i]['relation'] = 'pma_relation';
$cfg['Servers'][$i]['userconfig'] = 'pma_userconfig';
$cfg['Servers'][$i]['table_info'] = 'pma_table_info';
$cfg['Servers'][$i]['column_info'] = 'pma_column_info';
$cfg['Servers'][$i]['history'] = 'pma_history';
$cfg['Servers'][$i]['recent'] = 'pma_recent';
$cfg['Servers'][$i]['table_uiprefs'] = 'pma_table_uiprefs';
$cfg['Servers'][$i]['tracking'] = 'pma_tracking';
$cfg['Servers'][$i]['table_coords'] = 'pma_table_coords';
$cfg['Servers'][$i]['pdf_pages'] = 'pma_pdf_pages';
$cfg['Servers'][$i]['designer_coords'] = 'pma_designer_coords';
$cfg['Servers'][$i]['MaxTableUiprefs'] = 200;
$cfg['Servers'][$i]['controluser'] = 'pma';

/* End of servers configuration */

$cfg['blowfish_secret'] = '4f9586ee0efa53.72722816';
$cfg['DefaultLang'] = 'it';
$cfg['ServerDefault'] = 1;
$cfg['UploadDir'] = '';
$cfg['SaveDir'] = '';
?>

Nell'esempio, notare l'Allow no password settato a true se volete in locale lasciare sprotetto l'accesso a PhpMyAdmin.

Attenzione: è molto probabile che dopo l'installazione PhpMyAdmin fornisca dei warning relativi a delle funzioni disabilitate. Infatti, per rendere completa l'installazione, è opportuno creare un user "pma" e un database "phpmyadmin" su MySql. L'utente deve essere creato prima a livello di sistema (con il comando adduser) e poi aggiunto nella tabella user del database mysql. Controllate comunque se esista già un utente _pma (con l'underscore) installato di default durante la compilazione da FreeBSD. In tal caso modificherete solo il nome dell'utente in _pma nella tabella user e nel file config.inc.phpIl database va invece creato importando il file create_tables.sql presente nella directory /usr/local/www/phpMyAdmin/examples/. Solo così le righe presenti nell'esempio a partire da quella con $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin' e fino alla fine della configurazione del server avranno effetto. Ricordatevi di riavviare il server MySql dopo queste operazioni.

Infine se volete avere una miniguida completa sul mondo *BSD uso desktop (basata su FreeBSD), potete leggere questa mia personale guida all'installazione e configurazione sistemi FreeBSD (in formato HTML, mentre nella sezione download del sito trovate una versione in formato .pdf);

Privacy Policy