mercoledì 13 gennaio 2010

Sito dinamico su virtual host locale [01-03] - Fedora How-to


Ultima revisione: 12 gennaio 2011

Un how-to per far girare un sito dinamico in locale sotto Fedora ? Con tutte le guide che ci sono in giro ? Si.
Maccome, si dirà, basta prendere un CMS open source come Joomla!, andare su Joomla.org o su Joomla.it o su Joomlaitalia.com, e si trova tutto ciò che si vuole.
Mmmmmhhh, proprio tutto ? Direi di no. C'è sempre qualcosa che non funziona, o un'istruzione non adatta, o un piccolo intoppo interpretativo, o un settaggio da rivedere, e io mi sono rotto le scatole di perdere tempo.
Questo è un pro-memo completo che consente di arrivare a far girare un sito dinamico (PHP, Perl, Phyton) come Joomla!, ma anche Drupal od altri, in locale su sito virtuale per provarlo offline con tutti i template che vogliamo, con RDBMS - Relational database management system - funzionanti, superando tutta una riga di problemini che normalmente si incontrano, e che è ben difficile che vengano presi in considerazione tutti insieme da ognuna delle singole fonti, prima che il sito riesca ad attivarsi.
Insomma, un semplice step by step per i niubbi come me, del tipo "conosci, ad es., Joomla ? No ? Allora, se mi dai 20 minuti te lo faccio provare sulla tua Linuxbox..." :-D

N.B. per tutto quanto riguarda l'installazione dei pacchetti di seguito riportata, cercate con yumex quelli da installare, più facili da trovare se selezionate vista gruppi; in alternativa, digitate l'installazione del pacchetto in console root (premettendo sudo se appartenete al gruppo sudoers, oppure loggandovi come root con su (enter) e password (enter))

Primo passo: do per scontato che si parta da zero, cioè che nella Linuxbox non ci sia installato ed attivato un server LAMP/LAPP, cioè un gruppo di programmi server-side:
- Linux - sistema operativo;
- Apache http server - server Web
- MySQL o postgreSQL RDBMS - sistema di gestione di database relazionale server side
- PHP - linguaggio di scripting.

Due precisazioni:
- come è noto, la seconda P può stare, anzichè a Php, a Perl o Phyton a seconda del linguaggio scelto.
- il server da installare può essere può essere LAMP anzichè LAPP; ciò significa che il RDBMS può essere scelto (la P che sostituisce la M) tra MySQL e Postgres.. Entrambi questi RDBMS sono presenti nei repository. La scelta dovrebbe basarsi sull'effettivo supporto che il provider di Hosting scelto offre (ad es. piattaforma Linux anzichè Win). Creare un sistema, cioè, basato su postgreSQL per poi scoprire che non è pienamente supportato, diversamente da MySQL, potrebbe non essere simpatico. Il privilegio a postgreSQL imo sarebbe da dare non solo perche questo RDBMS è oggettivamente superiore a MySQL, ma anche perchè postgreSQL, oltre che essere anch'esso open source, è tutt'ora in fase di sviluppo, mentre lo sviluppo di MySQL, dopo la recente acquisizione, da parte di Oracle, di Sun (Java, OpenOffice, Solaris, MySQL) e le dichiarazioni del suo CEO, resta per ora, tristemente, una grande incognita.
Purtroppo per Postgres, il suo supporto in Joomla è più complesso, ed è quindi consigliabile per una installazione rapida usare MySQL; di seguito vengono comunque riportate anche le istruzioni per la sua installazione.

Visto che LAMP è indispensabile ai nostri scopi, andiamo a scaricarlo ed ad attivarlo.


Linux.
Se non lo avete ancora installato allora andate subito su Fedora project e scaricatevelo. NB per voi ci vorrà un po' di più di 20 minuti... :-DDD

Apache 2
# yum -y install httpd

va comunque controllato che siano installati anche i seguenti pacchetti, con il seguente comando:
# yum -y install httpd-manual mod_ssl mod_perl mod_python mod_auth_mysql mod_auth_pgsql awstats distcache crypto-utils

Per avviare il server:
# /etc/init.d/httpd start

Per verifica, nel browser digitare
http://localhost
verrà visualizzata la pagina di benvenuto di Apache

Per fermare il server:
# /etc/init.d/httpd stop

Per riavviare il server:
# /etc/init.d/httpd restart

Per semplificare, al posto di
# /etc/init.d/nomeservizio nomecomando
può essere utilizzato
# service nomeservizio nomecomando

Nell'esempio di httpd:
# service httpd restart

PHP
[N.B. non ho voglia di cercare in rete il modo per evitare che il codice php da scrivere interferisca con il codice nativo con cui è scritto il blog, risultandone modificato se non cancellato. Il sistema più rapido, per tutte le righe di codice php che seguiranno, è stato quello di sostituire l'elemento iniziale (<) e finale (>) di uno script con l'elemento (§).
Ovviamente, le righe di codice eventualmente copincollate da questo articolo non funzioneranno fino al ripristino degli elementi originali.]

Installiamo php
# yum -y install php

va comunque controllato che siano installati anche i seguenti pacchetti, con il seguente comando:
# yum -y install php-mysql php-pgsql phpMyAdmin tomcat5 phpldapadmin php-odbc php-ldap php-pdo php-pgsql perl-DBD-MySQL perl-DBI

Per verificarne il funzionamento:
# /etc/init.d/httpd restart
# gedit /var/www/html/testphp.php

inserire nel file questo script
§?php phpinfo(); ?§

Salvate e nel browser digitate:
http://localhost/testphp.php

MySQL
# yum -y install mysql

va comunque controllato che siano installati anche i seguenti pacchetti, con il seguente comando:
# yum -y install mysql-server php-mysql MySQL-python libdbi-dbd-mysql mysql-devel mod_auth_mysql perl-DBD-MySQL mysql-gui-common mysql-gui-tools mysql-libs mysql-query-browser

Per installare MySQL control center (dalla release F14):
# yum -y install mysql-workbench

od anche, e probabilmente meglio
# yum install phpMyAdmin

mysql-administrator è un'interfaccia grafica che si lancia dal menu sistema.
phpMyAdmin, invece, è un'interfaccia grafica che si lancia nel browser scrivendo nello spazio dell'URL:
http://localhost/phpmyadmin/

Ciò verrà utile più avanti (post 03 di 03) parlando della gestione del database.


PostgreSQL
In alternativa a MySQL si può installare Postgres.
# yum -y install postgresql

va comunque controllato che siano installati anche i seguenti pacchetti, con il seguente comando:
# yum -y install postgresql-jdbc postgresql-phyton postgresql-contrib unixODBC libdbi-dbd-pgsql perl-DBD-Pg postgresql-ODBC rhdb-utils postgresql-test qt-postgresql postgresql-server

Installare pgSQL control center
# yum -y install pgadmin3 phpPgAdmin

(vai al 02 di 03 --> )

2 commenti:

  1. This is a Great piece of work. The style of your writing is very good and inspiring. Keep it up. I will bookmark your site and check regularly.

    Joomla groupon

    RispondiElimina
  2. Grazie Mille.
    Articolo di semplice lettura ,senza tanti fronzoli.

    RispondiElimina