Internet è il postino dei nostri tempi che nessun cane azzannerà.
Ancora con queste guide LAMP ? No, non preoccupatevi, questa è ben lontana da essere come le altre. Meno approfondita e meno "tecnica". In fondo in fondo cosa ce ne facciamo di un servizio di questo genere nella nostra Small Business ? Molto, poco o nulla del tutto. Non siamo un provider, in questo caso installiamo LAMP solo perchè ci serve il suo aiuto come "spalla" per altri servizi come ad esempio webmail e magari altre applicazioni da "corredo".
Come, non sapete cosa sia LAMP ? Lo sapete ? Bhè io vi annoio un pochino lo stesso per l' 1% delle persone che capitano qui e che ancora non hanno ben chiaro di cosa stia parlando.
LAMP è un acronimo che indica una piattaforma per lo sviluppo di applicazioni web che prende il nome dalle iniziali dei componenti software con cui è realizzata.
Papale papale a quanto scrive wikipedia.
Ecco i nostri interpreti :
Senza dubbio una delle piattaforme più usate al mondo. Credo di non essere distante se dico che il 95% del blog mondiali poggiano su questa struttura, se poi aggiungiamo le varianti WAMP (Windows al posto di Linux) e quelle che poggiano su BSD credo si possa raggiungere una quota ancora più bulgara.
L' installazione non è certo una sfida di alto livello, bisogna solo aggiungere libxml2 alla lista dei pacchetti che tutti oramai abbiamo in mente:
sudo pacman -Sy apache php mysql libxml2
==> PHP modules
PHP has been built with optional modules. To enable these modules,
uncomment the modules from php.ini
Some of them require extra packages to be installed:
* bz2 : bzip2
* curl : curl
* dba : gdbm
* gd : libpng, libjpeg, freetype2
* imap : pam
* ldap : libldap
* mcrypt : mcrypt, libtool
* mysql/mysqli : libmysqlclient
* odbc/pdo_odbc : unixodbc
* openssl : openssl
* pgsql/pdo_pgsql : postgresql-libs
* pspell : aspell
* snmp : net-snmp
* sqlite : sqlite3
* tidy : tidyhtml
* xsl : libxslt
pacman -Sy libpng libjpeg freetype2
Vediamo le due cose due da configurare per il nostro minuscolo LAMP :
Cominciamo dal nostro web server editando il file :
sudo nano /etc/httpd/conf/httpd.conf
#LoadModule unique_id_module modules/mod_unique_id.so
ServerAdmin admin@mede.it
ServerName archi.mede.it:80
PHP è quasi configurato a dovere, dobbiamo solo abilitare il modulo di Apache e poco altro.
sudo nano /etc/httpd/conf/httpd.conf
LoadModule php5_module modules/libphp5.so
AddHandler php5-script php
<IfModule dir_module>
DirectoryIndex index.html index.php
Nel nostro esempio precedente abbiamo installato anche le librerie grafiche gd, in questo caso dobbiamo abilitare il relativo modulo di PHP :
sudo nano /etc/php/php.ini
extension=gd.so
extension=mysql.so
extension=mysqli.so
sudo /etc/rc.d/httpd start
Di base non c'e' molto da fare, devo ricordarmi solo di impostare una password all'utente root. Per fare questo avviamo il servizio:
sudo /etc/rc.d/mysqld start
/usr/bin/mysqladmin -u root password archimede
PhpMyAdmin è un'applicazione PHP open source che consente di amministrare in modo semplificato database di MySQL tramite un qualsiasi browser. Ci può tornare utile, installiamolo e configuriamolo.
sudo pacman -S phpmyadmin
sudo ln -s /srv/http/phpMyAdmin/ /home/httpd/phpmyadmin
sudo nano /etc/php/php.ini
open_basedir = /home/:/tmp/:/usr/share/pear/:/srv/www/
sudo /etc/rc.d/httpd restart
sudo nano /home/httpd/html/phpmyadmin/config.inc.php
<?php
$i = 0;
$cfg['PmaAbsoluteUri'] = 'http://archi.mede.it/phpmyadmin';
$cfg['blowfish_secret'] = ;
$i++;
$cfg['Servers'][$i]['auth_type'] = 'http';
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['AllowRoot'] = TRUE;
$cfg['UploadDir'] = ;
$cfg['SaveDir'] = '';
?>
Vediamo se funziona ?
Creiamo un piccolo file di test per PHP (/home/httpd/html/ è la "root" del nostro web server):
sudo nano /home/httpd/html/test.php
<?php
phpinfo();
?>
http://archi.mede.it/test.php
Proviamo anche mySQL, digitiamo questo indirizzo :
http://archi.mede.it/phpmyadmin
Io mi fermo qui. Certo non è il massimo che si possa fare ma per i nostri scopi è più che sufficiente dal momento che il server http ci serve solo da "accessorio" per altri servizi.
Ripeto: attenzione al firewall. MySQL dovrebbe essere accessibile solo dal server stesso, quindi non è necessario "aprire" la sua porta (per la cronaca è la "3306") verso la rete interna. Deve invece essere aperta la porta "80" di http aggiungendo al file:
sudo /etc/shorewall/rules
HTTP/ACCEPT loc $FW
HTTP/ACCEPT net $FW
Ricordiamoci, per concludere, di abilitare i servizi nel solito array DAEMONS di rc.conf:
DAEMONS=(...httpd mysqld ...)
Alla prossima.
Come posso rendere httpd raggiungibile dall'esterno?
Io riesco a vedere le pagine da un altro pc in locale, ma dall'esterno non si riesce a caricare la pagina (risulta irrangiungibile).