SlideShare uma empresa Scribd logo
1 de 9
Baixar para ler offline
Installazione di Joomla nel cloud di Red Hat
                                                     di Danilo Abbasciano



Vedremo dei semplici passi per l'installazione dell'ultima versione ad oggi stabile di Joomla, la 1.7
sul cloud OpenShift di Red Hat.


Nel documento useremo per convenzione che i comandi shell preceduti dal # (cancelletto)
dovranno essere lanciati dall'utente amministratore o in alternativa utilizzando sudo. I comandi
preceduti da $ (dollaro) possono essere lanciati da un normale utente che non ha i privilegi di root.


Per prima cosa abbiamo bisogno del client OpenShift che ci servirà per la creazione del cloud, la
configurazione e l’aggiunta di applicazioni e servizi. E` possibile scegliere 3 profili di OpenShift, noi
faremo riferimento a quella gratuita chiamata Express, ci sono poi la Flex e la Power in caso
abbiamo bisogno di maggiori performance.


Di seguito i passi per l'installazione del client OpenShift su un sistema RHEL 6 o superiore, oppure
Fedora 14 o una versione più recente. Questa guida non ha lo scopo di coprire tutti i casi, per gli
altri sistemi operativi si rimanda alla documentazione del progetto.


Installazione del client per OpenShift:


# cd /etc/yum.repos.d/
# wget https://openshift.redhat.com/app/repo/openshift.repo
# yum -y install rhc


Al termine dell'installazione abbiamo sul nostro computer tutti i pacchetti necessari per lanciare il
nostro portale Joomla. Vedremo che grazie a GIT non sarà necessario neanche scaricare il
pacchetto di Joomla. Ora possiamo utilizzare i comandi appena installati di OpenShift per creare il
nostro sotto dominio che chiameremo joomla. Quando questo comando verrà eseguito per la
prima volta verranno create delle chiavi SSH che saranno usate per comunicare con Openshift
Express. E` possibile creare un solo sottodominio per ogni utente registrato.


$ rhc-create-domain -n joomla -l guest@example.it
Password:
Generating OpenShift Express ssh key to /home/guest/.ssh/libra_id_rsa
Generating public/private rsa key pair.

BABEL S.r.l. - P.zza S.Benedetto da Norcia 33 - 00040, Pomezia (RM) - Tel:. +39 06.9826.9600 - Fax. +39 06.9826.9680
E-Mail: info@babel.it – PEC: babel@pec.babel.it – WEB: http://www.babel.it
Reg. Imprese di Roma N° 06062681009 - N.R.E.A. 953123 - P.I. e C.F. 06062681009 Cap. Soc. € 102.774,00 i.v.
Società soggetta alla direzione e coordinamento della Par-tec S.p.A - Società iscritta al registro delle Imprese di Milano al numero 1293820015
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/guest/.ssh/libra_id_rsa.
Your public key has been saved in /home/guest/.ssh/libra_id_rsa.pub.
The key fingerprint is:
3e:88:b7:e9:a4:c8:6c:e3:9a:16:d4:32:b7:70:06:61 guest@example.com
The key's randomart image is:
+--[ RSA 2048]----+
| E.                            |
|..                             |
|     o                         |
| = =                           |
|. B .          S               |
| . . . o                       |
|     . . + o                   |
| =o. + o .                     |
|++=...+                        |
+-----------------+
Contacting https://openshift.redhat.com
Creation successful


You may now create an application.


Ora possiamo creare la nostra applicazione, prima però vediamo il contenuto del file di
configurazione:


$ cat .openshift/express.conf
# SSH key file
#ssh_key_file = 'libra_id_rsa'
# Default rhlogin to use if none is specified
default_rhlogin=guest@example.it


C'è specificato l'rhlogin che userà di default se non specificato. Questo ci semplifica il lancio dei
successivi comandi perché da ora in poi non sarà più necessario specificarlo.


Ora possiamo creare un'applicazione, Joomla necessita del PHP ed è la prima cosa che andremo
ad installare nel nostro cloud. Con rhc-create-app --help abbiamo la lista delle applicazioni
supportate.



BABEL S.r.l. - P.zza S.Benedetto da Norcia 33 - 00040, Pomezia (RM) - Tel:. +39 06.9826.9600 - Fax. +39 06.9826.9680
E-Mail: info@babel.it – PEC: babel@pec.babel.it – WEB: http://www.babel.it
Reg. Imprese di Roma N° 06062681009 - N.R.E.A. 953123 - P.I. e C.F. 06062681009 Cap. Soc. € 102.774,00 i.v.
Società soggetta alla direzione e coordinamento della Par-tec S.p.A - Società iscritta al registro delle Imprese di Milano al numero 1293820015
Creiamo una directory che diventerà il repository di GIT, in poche parole la nostra directory di
lavoro:


$ mkdir rhc-joomla
$ cd rhc-joomla
$ rhc-create-app -a test -t php-5.3
Password:


Found a bug? Post to the forum and we'll get right on it.
       IRC: #openshift on freenode
       Forums: https://www.redhat.com/openshift/forums


Attempting to create remote application space: test
Contacting https://openshift.redhat.com
API version:                1.1.1
Broker version: 1.1.1


RESULT:
Successfully created application: test


Checking ~/.ssh/config
Contacting https://openshift.redhat.com
       Adding rhcloud.com to ~/.ssh/config
Now your new domain name is being propagated worldwide (this might take a
minute)...
Pulling new repo down
Warning: Permanently added 'test-joomla.rhcloud.com,107.22.25.216' (RSA) to the
list of known hosts.
Confirming application test is available
   Attempt # 1


Success!         Your application is now published here:


          http://test-joomla.rhcloud.com/


The remote repository is located here:


       ssh://791a8fe8bd1c48c1820f933c6cad3579@test-
joomla.rhcloud.com/~/git/test.git/



BABEL S.r.l. - P.zza S.Benedetto da Norcia 33 - 00040, Pomezia (RM) - Tel:. +39 06.9826.9600 - Fax. +39 06.9826.9680
E-Mail: info@babel.it – PEC: babel@pec.babel.it – WEB: http://www.babel.it
Reg. Imprese di Roma N° 06062681009 - N.R.E.A. 953123 - P.I. e C.F. 06062681009 Cap. Soc. € 102.774,00 i.v.
Società soggetta alla direzione e coordinamento della Par-tec S.p.A - Società iscritta al registro delle Imprese di Milano al numero 1293820015
To make changes to your application, commit to test/.
Then run 'git push' to update your OpenShift Express space


Abbiamo creato la nostra applicazione chiamata test e gli abbiamo specificato che userà il php.
Niente di più semplice, non dobbiamo installare il php direttamente sul cloud partendo dal
pacchetto o dai sorgenti perché OpenShift lo fa per noi in modo del tutto trasparente.


Vediamo se è altrettanto semplice aggiungere un altro servizio di cui Joomla ha bisogno, un server
MySql.


$ rhc-ctl-app -a test -e add-mysql-5.1
Password:
Contacting https://openshift.redhat.com
Contacting https://openshift.redhat.com
API version:                1.1.1
Broker version: 1.1.1


RESULT:


Mysql 5.1 database added.                       Please make note of these credentials:


     Root User: admin
     Root Password: Q2eXtiXqcXXX
     Database Name: test


Connection URL: mysql://127.1.33.XXX:3306/


In meno di un secondo abbiamo anche il nostro database server installato ed avviato. L'output ci
fornisce le informazioni per l'accesso e ci comunica che è stato creato un database con lo stesso
nome che abbiamo scelto per la nostra applicazione.


Ora il nostro ambiente è pronto per l'installazione di Joomla.
Grazie alla potenza di GIT possiamo fare tutto in modo molto pulito e veloce. GIT infatti ci
permettere di aggiungere un ulteriore repository al nostro branch di lavoro. Dopo essere entrati
nella directory “test” digitiamo il comando


$    git      remote        add      upstream          -m      master            git://github.com/openshift/joomla-
example.git



BABEL S.r.l. - P.zza S.Benedetto da Norcia 33 - 00040, Pomezia (RM) - Tel:. +39 06.9826.9600 - Fax. +39 06.9826.9680
E-Mail: info@babel.it – PEC: babel@pec.babel.it – WEB: http://www.babel.it
Reg. Imprese di Roma N° 06062681009 - N.R.E.A. 953123 - P.I. e C.F. 06062681009 Cap. Soc. € 102.774,00 i.v.
Società soggetta alla direzione e coordinamento della Par-tec S.p.A - Società iscritta al registro delle Imprese di Milano al numero 1293820015
Fatto. Facciamo ora il fetch e il merge con il nuovo repository:


$ git pull -s recursive -X theirs upstream master
warning: no common commits
remote: Counting objects: 3805, done.
remote: Compressing objects: 100% (2963/2963), done.
remote: Total 3805 (delta 818), reused 3805 (delta 818)
Receiving objects: 100% (3805/3805), 4.83 MiB | 340 KiB/s, done.
Resolving deltas: 100% (818/818), done.
From git://github.com/openshift/joomla-example
 * branch                            master              -> FETCH_HEAD


*** Please tell me who you are.


Run


   git config --global user.email "you@example.com"
   git config --global user.name "Your Name"


to set your account's default identity.
Omit --global to set the identity only in this repository.


fatal: empty ident                 <guest@example.com.(none)> not allowed


Ci ha restuito un errore perché il repository di github necessita dell'autenticazione. Quindi andiamo
sul sito http://github.com ed effettuiamo la registrazione. Poi diciamo a git di utilizzare lo username
appena registrato.


$ git config user.name "guest"


Lanciamo il comando precedente ed ora vediamo che l'operazione va a buon fine.


$ git pull -s recursive -X theirs upstream master


From git://github.com/openshift/joomla-example
 * branch                            master              -> FETCH_HEAD
Auto-merging .openshift/action_hooks/build
Auto-merging php/index.php
Merge made by recursive.


BABEL S.r.l. - P.zza S.Benedetto da Norcia 33 - 00040, Pomezia (RM) - Tel:. +39 06.9826.9600 - Fax. +39 06.9826.9680
E-Mail: info@babel.it – PEC: babel@pec.babel.it – WEB: http://www.babel.it
Reg. Imprese di Roma N° 06062681009 - N.R.E.A. 953123 - P.I. e C.F. 06062681009 Cap. Soc. € 102.774,00 i.v.
Società soggetta alla direzione e coordinamento della Par-tec S.p.A - Società iscritta al registro delle Imprese di Milano al numero 1293820015
.openshift/action_hooks/build                                                               |      38 +-
 .openshift/action_hooks/joomla.sql                                                          | 1860 +++
 README.md                                                                                   |      51 +
 php/LICENSE.txt                                                                             |    340 +
 php/README.txt                                                                              |      70 +
 php/administrator/cache/index.html                                                          |       1 +
 php/administrator/components/com_admin/admin.php                                            |      20 +
 php/administrator/components/com_admin/admin.xml                                            |      30 +
 .../components/com_admin/controller.php                                                     |      24 +
 .../components/com_admin/controllers/index.html                                             |       1 +
 .../components/com_admin/controllers/profile.php                                            |      89 +
 .../com_admin/helpers/html/directory.php                                                    |      61 +
 .../components/com_admin/helpers/html/index.html                                            |       1 +
 .../com_admin/helpers/html/phpsetting.php                                                   |      81 +
 .../components/com_admin/helpers/html/system.php                                            |      37 +
 .../components/com_admin/helpers/index.html                                                 |        1 +
 php/administrator/components/com_admin/index.html                                           |       1 +
 .../components/com_admin/models/forms/index.html                                            |       1 +
 .../components/com_admin/models/forms/profile.xml                                           |    136 +
[...]


Facciamo il push del repository upstream, questa operazione serve per aggiornare refs remoto
usando quello locale, e va fatta ogni volta che vogliamo pubblicare le modifiche di Joomla.


$ git push
Counting objects: 3811, done.
Compressing objects: 100% (2966/2966), done.
Writing objects: 100% (3805/3805), 4.83 MiB | 327 KiB/s, done.
Total 3805 (delta 819), reused 3800 (delta 818)
remote: Stopping application...
remote: Waiting for stop to finish
remote: Done
remote: Running .openshift/action_hooks/build
remote: ERROR 1146 (42S02) at line 1: Table 'test.tt7ki_assets' doesn't exist
remote:
remote: Database schema not found, importing 'joomla.sql' schema.
remote:
remote:
remote: done.
remote: ==================================================

BABEL S.r.l. - P.zza S.Benedetto da Norcia 33 - 00040, Pomezia (RM) - Tel:. +39 06.9826.9600 - Fax. +39 06.9826.9680
E-Mail: info@babel.it – PEC: babel@pec.babel.it – WEB: http://www.babel.it
Reg. Imprese di Roma N° 06062681009 - N.R.E.A. 953123 - P.I. e C.F. 06062681009 Cap. Soc. € 102.774,00 i.v.
Società soggetta alla direzione e coordinamento della Par-tec S.p.A - Società iscritta al registro delle Imprese di Milano al numero 1293820015
remote:          Joomla admin login: admin
remote:          Joomla admin password: 4dm1n
remote:          Don't forget to change your Joomla admin password!
remote: ==================================================
remote: Starting application...
remote: Done
To                                                              ssh://791a8fe8bd1c48c1820f933c6cad3579@test-
joomla.rhcloud.com/~/git/test.git/
     0f9bf26..fff3d3e                master -> master


Dall'output possiamo vedere che il database non era inizializzato e lui si è preoccupato di farlo.
Questa operazione normalmente veniva effettuata durante il processo configurazione di Joomla,
che però in questo contesto non abbiamo bisogno di eseguire perché chi ha creato joomla-
example su github lo ha già configurato per girare sul cloud di Red Hat.


Abbiamo terminato l'installazione, ora possiamo utilizzare Joomla. Aprimo la url http://test-
joomla.rhcloud.com/                 la      url      è      formata          in      questo          modo          http://$app_name-
$your_domain.rhcloud.com quindi se abbiamo scelto nomi diversi per l'applicazione o il dominio
dovremmo modificarla opportunamente.


Se abbiamo eseguito tutti i passi correttamente dovremmo poter iniziare ad utilizzare Joomla. Ho
utilizzato il condizionale perché in realtà se apriamo l'url viene visualizzato solamente il seguente
messaggio di errore:


Infinite loop detected in Jerror


Questo è meno grave di quanto sembra, innanzi tutto è un errore generato da Joomla, quindi è
stata lanciata l'applicazione che abbiamo appena installato. Il loop infinito si riferisce ad un errore
che indirizza ad un errore, nel nostro caso avviene che ho una query che va in errore nella
homepage e sull'errore faccio una redirect in homepage, ed è così che si genera un loop infinito.
Quindi c'è qualcosa che non va nella configurazione del database. Apriamo il file
php/configuration.php e modifichiamo i parametri per la connessione del db settandoli con i valori
che abbiamo ottenuto durante la generazione del database.


            public $host = '127.1.33.XXX';
            public $user = 'admin';
            public $password = 'Q2eXtiXqcXXX';
            public $db = 'test';


BABEL S.r.l. - P.zza S.Benedetto da Norcia 33 - 00040, Pomezia (RM) - Tel:. +39 06.9826.9600 - Fax. +39 06.9826.9680
E-Mail: info@babel.it – PEC: babel@pec.babel.it – WEB: http://www.babel.it
Reg. Imprese di Roma N° 06062681009 - N.R.E.A. 953123 - P.I. e C.F. 06062681009 Cap. Soc. € 102.774,00 i.v.
Società soggetta alla direzione e coordinamento della Par-tec S.p.A - Società iscritta al registro delle Imprese di Milano al numero 1293820015
Non ci resta che rendere effettive le modifiche.


$ git add php/configuration.php
$ git commit -m 'alter db configuration'
[master 28bb973] alter db configuration
 1 files changed, 4 insertions(+), 4 deletions(-)


$ git push
Counting objects: 7, done.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 419 bytes, done.
Total 4 (delta 3), reused 0 (delta 0)
remote: Stopping application...
remote: Waiting for stop to finish
remote: Done
remote: Running .openshift/action_hooks/build
remote: Database found, skipping import.
remote: Starting application...
remote: Done
To                                                              ssh://791a8fe8bd1c48c1820f933c6cad3579@test-
joomla.rhcloud.com/~/git/test.git/
     fff3d3e..28bb973                master -> master


Ora tutto è pronto per essere utilizzato, all'indirizzo http://test-joomla.rhcloud.com/ c'è la nostra
homepage,               l'amministrazione                possiamo             raggiungerla              alla         url        http://test-
joomla.rhcloud.com/administrator/ le credenziali di accesso sono utente admin e password 4dm1n
che è preferibile cambiare dopo il primo accesso.




BABEL S.r.l. - P.zza S.Benedetto da Norcia 33 - 00040, Pomezia (RM) - Tel:. +39 06.9826.9600 - Fax. +39 06.9826.9680
E-Mail: info@babel.it – PEC: babel@pec.babel.it – WEB: http://www.babel.it
Reg. Imprese di Roma N° 06062681009 - N.R.E.A. 953123 - P.I. e C.F. 06062681009 Cap. Soc. € 102.774,00 i.v.
Società soggetta alla direzione e coordinamento della Par-tec S.p.A - Società iscritta al registro delle Imprese di Milano al numero 1293820015
Licenza d'uso “Attribuzione - Non commerciale - Non opere derivate”, secondo i criteri
internazionali Creative Commons (http://creativecommons.org/licenses/by-nc-nd/2.5/it/)




BABEL S.r.l. - P.zza S.Benedetto da Norcia 33 - 00040, Pomezia (RM) - Tel:. +39 06.9826.9600 - Fax. +39 06.9826.9680
E-Mail: info@babel.it – PEC: babel@pec.babel.it – WEB: http://www.babel.it
Reg. Imprese di Roma N° 06062681009 - N.R.E.A. 953123 - P.I. e C.F. 06062681009 Cap. Soc. € 102.774,00 i.v.
Società soggetta alla direzione e coordinamento della Par-tec S.p.A - Società iscritta al registro delle Imprese di Milano al numero 1293820015

Mais conteúdo relacionado

Destaque

Pieter bekaert west vlaanderen
Pieter bekaert west vlaanderenPieter bekaert west vlaanderen
Pieter bekaert west vlaanderen
southtippcoco
 
Semana del 9 13 de septiembre
Semana del 9 13 de septiembreSemana del 9 13 de septiembre
Semana del 9 13 de septiembre
Edgardo Rivera
 
Ict300_4_edit
Ict300_4_editIct300_4_edit
Ict300_4_edit
Nicemooon
 
Volantone Novembre 2013 - GameStop Italia!
Volantone Novembre 2013 - GameStop Italia!Volantone Novembre 2013 - GameStop Italia!
Volantone Novembre 2013 - GameStop Italia!
GameStop Italia
 
Semana del 28 1 de febrero
Semana del 28 1 de febreroSemana del 28 1 de febrero
Semana del 28 1 de febrero
Edgardo Rivera
 
Ricaricare un abbonamento; studio sull'usabilità delle biglietterie elettroni...
Ricaricare un abbonamento; studio sull'usabilità delle biglietterie elettroni...Ricaricare un abbonamento; studio sull'usabilità delle biglietterie elettroni...
Ricaricare un abbonamento; studio sull'usabilità delle biglietterie elettroni...
Irene Raineri
 
Presentacion de coco_gh
Presentacion de coco_ghPresentacion de coco_gh
Presentacion de coco_gh
renebamerboy
 

Destaque (20)

4 zendejas
4 zendejas4 zendejas
4 zendejas
 
Internet e' Cambiato
Internet e' CambiatoInternet e' Cambiato
Internet e' Cambiato
 
Hoja de vida modelo original
Hoja de vida modelo originalHoja de vida modelo original
Hoja de vida modelo original
 
Presentacion I1_GOOGLE CHROME
Presentacion I1_GOOGLE CHROMEPresentacion I1_GOOGLE CHROME
Presentacion I1_GOOGLE CHROME
 
Ricerca human highway
Ricerca human highwayRicerca human highway
Ricerca human highway
 
Albeniz plurilingüe, de la práctica a la teoría
Albeniz plurilingüe, de la práctica a la teoríaAlbeniz plurilingüe, de la práctica a la teoría
Albeniz plurilingüe, de la práctica a la teoría
 
Students' questionnaire: Results
Students' questionnaire: ResultsStudents' questionnaire: Results
Students' questionnaire: Results
 
Practical ways to tackle digital preservation using DPE
Practical ways to tackle digital preservation using DPEPractical ways to tackle digital preservation using DPE
Practical ways to tackle digital preservation using DPE
 
Pieter bekaert west vlaanderen
Pieter bekaert west vlaanderenPieter bekaert west vlaanderen
Pieter bekaert west vlaanderen
 
Semana del 9 13 de septiembre
Semana del 9 13 de septiembreSemana del 9 13 de septiembre
Semana del 9 13 de septiembre
 
Ict300_4_edit
Ict300_4_editIct300_4_edit
Ict300_4_edit
 
Volantone Novembre 2013 - GameStop Italia!
Volantone Novembre 2013 - GameStop Italia!Volantone Novembre 2013 - GameStop Italia!
Volantone Novembre 2013 - GameStop Italia!
 
Semana del 28 1 de febrero
Semana del 28 1 de febreroSemana del 28 1 de febrero
Semana del 28 1 de febrero
 
Le coordinate celesti
Le coordinate celestiLe coordinate celesti
Le coordinate celesti
 
Presentación1
Presentación1Presentación1
Presentación1
 
Ricaricare un abbonamento; studio sull'usabilità delle biglietterie elettroni...
Ricaricare un abbonamento; studio sull'usabilità delle biglietterie elettroni...Ricaricare un abbonamento; studio sull'usabilità delle biglietterie elettroni...
Ricaricare un abbonamento; studio sull'usabilità delle biglietterie elettroni...
 
TP 11 de C2i - SugarSync
TP 11 de C2i - SugarSyncTP 11 de C2i - SugarSync
TP 11 de C2i - SugarSync
 
Getting a new Password to Moodle
Getting a new Password to MoodleGetting a new Password to Moodle
Getting a new Password to Moodle
 
Ayuda para usar foxit_portable_2
Ayuda para usar foxit_portable_2Ayuda para usar foxit_portable_2
Ayuda para usar foxit_portable_2
 
Presentacion de coco_gh
Presentacion de coco_ghPresentacion de coco_gh
Presentacion de coco_gh
 

Semelhante a Installazione di Joomla nel cloud di Red Hat

TYPO3 e la partenza intelligente. Familiarizzare con l'ambiente e lo strument...
TYPO3 e la partenza intelligente. Familiarizzare con l'ambiente e lo strument...TYPO3 e la partenza intelligente. Familiarizzare con l'ambiente e lo strument...
TYPO3 e la partenza intelligente. Familiarizzare con l'ambiente e lo strument...
gammsystem
 
Dominare il codice legacy
Dominare il codice legacyDominare il codice legacy
Dominare il codice legacy
Tommaso Torti
 

Semelhante a Installazione di Joomla nel cloud di Red Hat (20)

Cross compiler per uso domestico
Cross compiler per uso domesticoCross compiler per uso domestico
Cross compiler per uso domestico
 
Working between the clouds
Working between the cloudsWorking between the clouds
Working between the clouds
 
Introduzione ros
Introduzione rosIntroduzione ros
Introduzione ros
 
Ridirezionamento di I/O con Bash: un breve approfondimento
Ridirezionamento di I/O con Bash: un breve approfondimentoRidirezionamento di I/O con Bash: un breve approfondimento
Ridirezionamento di I/O con Bash: un breve approfondimento
 
Installare i server via rete con Cobbler
Installare i server via rete con CobblerInstallare i server via rete con Cobbler
Installare i server via rete con Cobbler
 
Idp, passo dopo passo!
Idp, passo dopo passo!Idp, passo dopo passo!
Idp, passo dopo passo!
 
Nagios in alta affidabilità con strumenti open source
Nagios in alta affidabilità con strumenti open sourceNagios in alta affidabilità con strumenti open source
Nagios in alta affidabilità con strumenti open source
 
Working between the clouds (versione completa)
Working between the clouds (versione completa)Working between the clouds (versione completa)
Working between the clouds (versione completa)
 
Silex, iniziamo
Silex, iniziamoSilex, iniziamo
Silex, iniziamo
 
OpenVAS, lo strumento open source per il vulnerability assessment
OpenVAS, lo strumento open source per il vulnerability assessmentOpenVAS, lo strumento open source per il vulnerability assessment
OpenVAS, lo strumento open source per il vulnerability assessment
 
Virtualizzazione con Gnu/Linux e Xen
Virtualizzazione con Gnu/Linux e XenVirtualizzazione con Gnu/Linux e Xen
Virtualizzazione con Gnu/Linux e Xen
 
Con Aruba, a lezione di cloud - #lezione 27: 'Private Cloud e mail server az...
Con Aruba, a lezione di cloud  - #lezione 27: 'Private Cloud e mail server az...Con Aruba, a lezione di cloud  - #lezione 27: 'Private Cloud e mail server az...
Con Aruba, a lezione di cloud - #lezione 27: 'Private Cloud e mail server az...
 
Sicurezza flessibile con SELinux: architettura e configurazione
Sicurezza flessibile con SELinux: architettura e configurazioneSicurezza flessibile con SELinux: architettura e configurazione
Sicurezza flessibile con SELinux: architettura e configurazione
 
Infrastructure as Data
Infrastructure as DataInfrastructure as Data
Infrastructure as Data
 
TYPO3 e la partenza intelligente. Familiarizzare con l'ambiente e lo strument...
TYPO3 e la partenza intelligente. Familiarizzare con l'ambiente e lo strument...TYPO3 e la partenza intelligente. Familiarizzare con l'ambiente e lo strument...
TYPO3 e la partenza intelligente. Familiarizzare con l'ambiente e lo strument...
 
Con Aruba, a lezione di Cloud #lezione 30 - parte 2: 'GitLab e Cloud Server ...
Con Aruba, a lezione di Cloud  #lezione 30 - parte 2: 'GitLab e Cloud Server ...Con Aruba, a lezione di Cloud  #lezione 30 - parte 2: 'GitLab e Cloud Server ...
Con Aruba, a lezione di Cloud #lezione 30 - parte 2: 'GitLab e Cloud Server ...
 
Git gestione comoda del repository
Git   gestione comoda del repositoryGit   gestione comoda del repository
Git gestione comoda del repository
 
Drupal 10: un framework PHP di sviluppo Cloud Native moderno
Drupal 10: un framework PHP di sviluppo Cloud Native modernoDrupal 10: un framework PHP di sviluppo Cloud Native moderno
Drupal 10: un framework PHP di sviluppo Cloud Native moderno
 
Dominare il codice legacy
Dominare il codice legacyDominare il codice legacy
Dominare il codice legacy
 
Con Aruba, a lezione di cloud #lezione 30 - parte 1: 'GitLab e Cloud Server ...
Con Aruba, a lezione di cloud  #lezione 30 - parte 1: 'GitLab e Cloud Server ...Con Aruba, a lezione di cloud  #lezione 30 - parte 1: 'GitLab e Cloud Server ...
Con Aruba, a lezione di cloud #lezione 30 - parte 1: 'GitLab e Cloud Server ...
 

Mais de Babel

Mais de Babel (20)

Sophos Complete Security: arte e scienza della sicurezza
Sophos Complete Security: arte e scienza della sicurezzaSophos Complete Security: arte e scienza della sicurezza
Sophos Complete Security: arte e scienza della sicurezza
 
L’innovazione a difesa della tradizione: il caso dell’Archivio Storico della ...
L’innovazione a difesa della tradizione: il caso dell’Archivio Storico della ...L’innovazione a difesa della tradizione: il caso dell’Archivio Storico della ...
L’innovazione a difesa della tradizione: il caso dell’Archivio Storico della ...
 
L’innovazione a difesa della tradizione: il caso dell’Archivio Storico della ...
L’innovazione a difesa della tradizione: il caso dell’Archivio Storico della ...L’innovazione a difesa della tradizione: il caso dell’Archivio Storico della ...
L’innovazione a difesa della tradizione: il caso dell’Archivio Storico della ...
 
Intercettazioni: guida alle nuove norme per i provider
Intercettazioni: guida alle nuove norme per i providerIntercettazioni: guida alle nuove norme per i provider
Intercettazioni: guida alle nuove norme per i provider
 
Dalla virtualizzazione al private cloud: Il Patronato INCA rinnova la fiducia...
Dalla virtualizzazione al private cloud: Il Patronato INCA rinnova la fiducia...Dalla virtualizzazione al private cloud: Il Patronato INCA rinnova la fiducia...
Dalla virtualizzazione al private cloud: Il Patronato INCA rinnova la fiducia...
 
Will iPython replace Bash?
Will iPython replace Bash?Will iPython replace Bash?
Will iPython replace Bash?
 
La gestione integrata della sicurezza in ANSA: dal firewalling all'UTM
La gestione integrata della sicurezza in ANSA: dal firewalling all'UTMLa gestione integrata della sicurezza in ANSA: dal firewalling all'UTM
La gestione integrata della sicurezza in ANSA: dal firewalling all'UTM
 
Shell Control Box - Il Gusto della Sicurezza
Shell Control Box - Il Gusto della SicurezzaShell Control Box - Il Gusto della Sicurezza
Shell Control Box - Il Gusto della Sicurezza
 
Tracciamento delle attività di amministrazione mediante i BalaBit Shell Contr...
Tracciamento delle attività di amministrazione mediante i BalaBit Shell Contr...Tracciamento delle attività di amministrazione mediante i BalaBit Shell Contr...
Tracciamento delle attività di amministrazione mediante i BalaBit Shell Contr...
 
La Desktop Virtualization
La Desktop VirtualizationLa Desktop Virtualization
La Desktop Virtualization
 
Crittografia e integrazione dei sistemi con Python
Crittografia e integrazione dei sistemi con PythonCrittografia e integrazione dei sistemi con Python
Crittografia e integrazione dei sistemi con Python
 
Intercettazioni e posta elettronica: le misure di sicurezza per i gestori
Intercettazioni e posta elettronica: le misure di sicurezza per i gestoriIntercettazioni e posta elettronica: le misure di sicurezza per i gestori
Intercettazioni e posta elettronica: le misure di sicurezza per i gestori
 
Babel presenta: Opsview
Babel presenta: OpsviewBabel presenta: Opsview
Babel presenta: Opsview
 
Monitoraggio di infrastrutture IT mediante Opsview Enteprise V4
Monitoraggio di infrastrutture IT mediante Opsview Enteprise V4Monitoraggio di infrastrutture IT mediante Opsview Enteprise V4
Monitoraggio di infrastrutture IT mediante Opsview Enteprise V4
 
Testing with MySQL embedded
Testing with MySQL embeddedTesting with MySQL embedded
Testing with MySQL embedded
 
Il fenomeno dello spam: origine e contromisure
Il fenomeno dello spam: origine e contromisureIl fenomeno dello spam: origine e contromisure
Il fenomeno dello spam: origine e contromisure
 
Il software open source: regole e licenze
Il software open source: regole e licenzeIl software open source: regole e licenze
Il software open source: regole e licenze
 
Mobile Data Security: Sicurezza IT per aziende in movimento
Mobile Data Security: Sicurezza IT per aziende in movimentoMobile Data Security: Sicurezza IT per aziende in movimento
Mobile Data Security: Sicurezza IT per aziende in movimento
 
Il DLP, uno strumento di difesa del patrimonio informativo aziendale
Il DLP, uno strumento di difesa del patrimonio informativo aziendaleIl DLP, uno strumento di difesa del patrimonio informativo aziendale
Il DLP, uno strumento di difesa del patrimonio informativo aziendale
 
MySQL: il database open source che ha sfidato i giganti
MySQL: il database open source che ha sfidato i gigantiMySQL: il database open source che ha sfidato i giganti
MySQL: il database open source che ha sfidato i giganti
 

Installazione di Joomla nel cloud di Red Hat

  • 1. Installazione di Joomla nel cloud di Red Hat di Danilo Abbasciano Vedremo dei semplici passi per l'installazione dell'ultima versione ad oggi stabile di Joomla, la 1.7 sul cloud OpenShift di Red Hat. Nel documento useremo per convenzione che i comandi shell preceduti dal # (cancelletto) dovranno essere lanciati dall'utente amministratore o in alternativa utilizzando sudo. I comandi preceduti da $ (dollaro) possono essere lanciati da un normale utente che non ha i privilegi di root. Per prima cosa abbiamo bisogno del client OpenShift che ci servirà per la creazione del cloud, la configurazione e l’aggiunta di applicazioni e servizi. E` possibile scegliere 3 profili di OpenShift, noi faremo riferimento a quella gratuita chiamata Express, ci sono poi la Flex e la Power in caso abbiamo bisogno di maggiori performance. Di seguito i passi per l'installazione del client OpenShift su un sistema RHEL 6 o superiore, oppure Fedora 14 o una versione più recente. Questa guida non ha lo scopo di coprire tutti i casi, per gli altri sistemi operativi si rimanda alla documentazione del progetto. Installazione del client per OpenShift: # cd /etc/yum.repos.d/ # wget https://openshift.redhat.com/app/repo/openshift.repo # yum -y install rhc Al termine dell'installazione abbiamo sul nostro computer tutti i pacchetti necessari per lanciare il nostro portale Joomla. Vedremo che grazie a GIT non sarà necessario neanche scaricare il pacchetto di Joomla. Ora possiamo utilizzare i comandi appena installati di OpenShift per creare il nostro sotto dominio che chiameremo joomla. Quando questo comando verrà eseguito per la prima volta verranno create delle chiavi SSH che saranno usate per comunicare con Openshift Express. E` possibile creare un solo sottodominio per ogni utente registrato. $ rhc-create-domain -n joomla -l guest@example.it Password: Generating OpenShift Express ssh key to /home/guest/.ssh/libra_id_rsa Generating public/private rsa key pair. BABEL S.r.l. - P.zza S.Benedetto da Norcia 33 - 00040, Pomezia (RM) - Tel:. +39 06.9826.9600 - Fax. +39 06.9826.9680 E-Mail: info@babel.it – PEC: babel@pec.babel.it – WEB: http://www.babel.it Reg. Imprese di Roma N° 06062681009 - N.R.E.A. 953123 - P.I. e C.F. 06062681009 Cap. Soc. € 102.774,00 i.v. Società soggetta alla direzione e coordinamento della Par-tec S.p.A - Società iscritta al registro delle Imprese di Milano al numero 1293820015
  • 2. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/guest/.ssh/libra_id_rsa. Your public key has been saved in /home/guest/.ssh/libra_id_rsa.pub. The key fingerprint is: 3e:88:b7:e9:a4:c8:6c:e3:9a:16:d4:32:b7:70:06:61 guest@example.com The key's randomart image is: +--[ RSA 2048]----+ | E. | |.. | | o | | = = | |. B . S | | . . . o | | . . + o | | =o. + o . | |++=...+ | +-----------------+ Contacting https://openshift.redhat.com Creation successful You may now create an application. Ora possiamo creare la nostra applicazione, prima però vediamo il contenuto del file di configurazione: $ cat .openshift/express.conf # SSH key file #ssh_key_file = 'libra_id_rsa' # Default rhlogin to use if none is specified default_rhlogin=guest@example.it C'è specificato l'rhlogin che userà di default se non specificato. Questo ci semplifica il lancio dei successivi comandi perché da ora in poi non sarà più necessario specificarlo. Ora possiamo creare un'applicazione, Joomla necessita del PHP ed è la prima cosa che andremo ad installare nel nostro cloud. Con rhc-create-app --help abbiamo la lista delle applicazioni supportate. BABEL S.r.l. - P.zza S.Benedetto da Norcia 33 - 00040, Pomezia (RM) - Tel:. +39 06.9826.9600 - Fax. +39 06.9826.9680 E-Mail: info@babel.it – PEC: babel@pec.babel.it – WEB: http://www.babel.it Reg. Imprese di Roma N° 06062681009 - N.R.E.A. 953123 - P.I. e C.F. 06062681009 Cap. Soc. € 102.774,00 i.v. Società soggetta alla direzione e coordinamento della Par-tec S.p.A - Società iscritta al registro delle Imprese di Milano al numero 1293820015
  • 3. Creiamo una directory che diventerà il repository di GIT, in poche parole la nostra directory di lavoro: $ mkdir rhc-joomla $ cd rhc-joomla $ rhc-create-app -a test -t php-5.3 Password: Found a bug? Post to the forum and we'll get right on it. IRC: #openshift on freenode Forums: https://www.redhat.com/openshift/forums Attempting to create remote application space: test Contacting https://openshift.redhat.com API version: 1.1.1 Broker version: 1.1.1 RESULT: Successfully created application: test Checking ~/.ssh/config Contacting https://openshift.redhat.com Adding rhcloud.com to ~/.ssh/config Now your new domain name is being propagated worldwide (this might take a minute)... Pulling new repo down Warning: Permanently added 'test-joomla.rhcloud.com,107.22.25.216' (RSA) to the list of known hosts. Confirming application test is available Attempt # 1 Success! Your application is now published here: http://test-joomla.rhcloud.com/ The remote repository is located here: ssh://791a8fe8bd1c48c1820f933c6cad3579@test- joomla.rhcloud.com/~/git/test.git/ BABEL S.r.l. - P.zza S.Benedetto da Norcia 33 - 00040, Pomezia (RM) - Tel:. +39 06.9826.9600 - Fax. +39 06.9826.9680 E-Mail: info@babel.it – PEC: babel@pec.babel.it – WEB: http://www.babel.it Reg. Imprese di Roma N° 06062681009 - N.R.E.A. 953123 - P.I. e C.F. 06062681009 Cap. Soc. € 102.774,00 i.v. Società soggetta alla direzione e coordinamento della Par-tec S.p.A - Società iscritta al registro delle Imprese di Milano al numero 1293820015
  • 4. To make changes to your application, commit to test/. Then run 'git push' to update your OpenShift Express space Abbiamo creato la nostra applicazione chiamata test e gli abbiamo specificato che userà il php. Niente di più semplice, non dobbiamo installare il php direttamente sul cloud partendo dal pacchetto o dai sorgenti perché OpenShift lo fa per noi in modo del tutto trasparente. Vediamo se è altrettanto semplice aggiungere un altro servizio di cui Joomla ha bisogno, un server MySql. $ rhc-ctl-app -a test -e add-mysql-5.1 Password: Contacting https://openshift.redhat.com Contacting https://openshift.redhat.com API version: 1.1.1 Broker version: 1.1.1 RESULT: Mysql 5.1 database added. Please make note of these credentials: Root User: admin Root Password: Q2eXtiXqcXXX Database Name: test Connection URL: mysql://127.1.33.XXX:3306/ In meno di un secondo abbiamo anche il nostro database server installato ed avviato. L'output ci fornisce le informazioni per l'accesso e ci comunica che è stato creato un database con lo stesso nome che abbiamo scelto per la nostra applicazione. Ora il nostro ambiente è pronto per l'installazione di Joomla. Grazie alla potenza di GIT possiamo fare tutto in modo molto pulito e veloce. GIT infatti ci permettere di aggiungere un ulteriore repository al nostro branch di lavoro. Dopo essere entrati nella directory “test” digitiamo il comando $ git remote add upstream -m master git://github.com/openshift/joomla- example.git BABEL S.r.l. - P.zza S.Benedetto da Norcia 33 - 00040, Pomezia (RM) - Tel:. +39 06.9826.9600 - Fax. +39 06.9826.9680 E-Mail: info@babel.it – PEC: babel@pec.babel.it – WEB: http://www.babel.it Reg. Imprese di Roma N° 06062681009 - N.R.E.A. 953123 - P.I. e C.F. 06062681009 Cap. Soc. € 102.774,00 i.v. Società soggetta alla direzione e coordinamento della Par-tec S.p.A - Società iscritta al registro delle Imprese di Milano al numero 1293820015
  • 5. Fatto. Facciamo ora il fetch e il merge con il nuovo repository: $ git pull -s recursive -X theirs upstream master warning: no common commits remote: Counting objects: 3805, done. remote: Compressing objects: 100% (2963/2963), done. remote: Total 3805 (delta 818), reused 3805 (delta 818) Receiving objects: 100% (3805/3805), 4.83 MiB | 340 KiB/s, done. Resolving deltas: 100% (818/818), done. From git://github.com/openshift/joomla-example * branch master -> FETCH_HEAD *** Please tell me who you are. Run git config --global user.email "you@example.com" git config --global user.name "Your Name" to set your account's default identity. Omit --global to set the identity only in this repository. fatal: empty ident <guest@example.com.(none)> not allowed Ci ha restuito un errore perché il repository di github necessita dell'autenticazione. Quindi andiamo sul sito http://github.com ed effettuiamo la registrazione. Poi diciamo a git di utilizzare lo username appena registrato. $ git config user.name "guest" Lanciamo il comando precedente ed ora vediamo che l'operazione va a buon fine. $ git pull -s recursive -X theirs upstream master From git://github.com/openshift/joomla-example * branch master -> FETCH_HEAD Auto-merging .openshift/action_hooks/build Auto-merging php/index.php Merge made by recursive. BABEL S.r.l. - P.zza S.Benedetto da Norcia 33 - 00040, Pomezia (RM) - Tel:. +39 06.9826.9600 - Fax. +39 06.9826.9680 E-Mail: info@babel.it – PEC: babel@pec.babel.it – WEB: http://www.babel.it Reg. Imprese di Roma N° 06062681009 - N.R.E.A. 953123 - P.I. e C.F. 06062681009 Cap. Soc. € 102.774,00 i.v. Società soggetta alla direzione e coordinamento della Par-tec S.p.A - Società iscritta al registro delle Imprese di Milano al numero 1293820015
  • 6. .openshift/action_hooks/build | 38 +- .openshift/action_hooks/joomla.sql | 1860 +++ README.md | 51 + php/LICENSE.txt | 340 + php/README.txt | 70 + php/administrator/cache/index.html | 1 + php/administrator/components/com_admin/admin.php | 20 + php/administrator/components/com_admin/admin.xml | 30 + .../components/com_admin/controller.php | 24 + .../components/com_admin/controllers/index.html | 1 + .../components/com_admin/controllers/profile.php | 89 + .../com_admin/helpers/html/directory.php | 61 + .../components/com_admin/helpers/html/index.html | 1 + .../com_admin/helpers/html/phpsetting.php | 81 + .../components/com_admin/helpers/html/system.php | 37 + .../components/com_admin/helpers/index.html | 1 + php/administrator/components/com_admin/index.html | 1 + .../components/com_admin/models/forms/index.html | 1 + .../components/com_admin/models/forms/profile.xml | 136 + [...] Facciamo il push del repository upstream, questa operazione serve per aggiornare refs remoto usando quello locale, e va fatta ogni volta che vogliamo pubblicare le modifiche di Joomla. $ git push Counting objects: 3811, done. Compressing objects: 100% (2966/2966), done. Writing objects: 100% (3805/3805), 4.83 MiB | 327 KiB/s, done. Total 3805 (delta 819), reused 3800 (delta 818) remote: Stopping application... remote: Waiting for stop to finish remote: Done remote: Running .openshift/action_hooks/build remote: ERROR 1146 (42S02) at line 1: Table 'test.tt7ki_assets' doesn't exist remote: remote: Database schema not found, importing 'joomla.sql' schema. remote: remote: remote: done. remote: ================================================== BABEL S.r.l. - P.zza S.Benedetto da Norcia 33 - 00040, Pomezia (RM) - Tel:. +39 06.9826.9600 - Fax. +39 06.9826.9680 E-Mail: info@babel.it – PEC: babel@pec.babel.it – WEB: http://www.babel.it Reg. Imprese di Roma N° 06062681009 - N.R.E.A. 953123 - P.I. e C.F. 06062681009 Cap. Soc. € 102.774,00 i.v. Società soggetta alla direzione e coordinamento della Par-tec S.p.A - Società iscritta al registro delle Imprese di Milano al numero 1293820015
  • 7. remote: Joomla admin login: admin remote: Joomla admin password: 4dm1n remote: Don't forget to change your Joomla admin password! remote: ================================================== remote: Starting application... remote: Done To ssh://791a8fe8bd1c48c1820f933c6cad3579@test- joomla.rhcloud.com/~/git/test.git/ 0f9bf26..fff3d3e master -> master Dall'output possiamo vedere che il database non era inizializzato e lui si è preoccupato di farlo. Questa operazione normalmente veniva effettuata durante il processo configurazione di Joomla, che però in questo contesto non abbiamo bisogno di eseguire perché chi ha creato joomla- example su github lo ha già configurato per girare sul cloud di Red Hat. Abbiamo terminato l'installazione, ora possiamo utilizzare Joomla. Aprimo la url http://test- joomla.rhcloud.com/ la url è formata in questo modo http://$app_name- $your_domain.rhcloud.com quindi se abbiamo scelto nomi diversi per l'applicazione o il dominio dovremmo modificarla opportunamente. Se abbiamo eseguito tutti i passi correttamente dovremmo poter iniziare ad utilizzare Joomla. Ho utilizzato il condizionale perché in realtà se apriamo l'url viene visualizzato solamente il seguente messaggio di errore: Infinite loop detected in Jerror Questo è meno grave di quanto sembra, innanzi tutto è un errore generato da Joomla, quindi è stata lanciata l'applicazione che abbiamo appena installato. Il loop infinito si riferisce ad un errore che indirizza ad un errore, nel nostro caso avviene che ho una query che va in errore nella homepage e sull'errore faccio una redirect in homepage, ed è così che si genera un loop infinito. Quindi c'è qualcosa che non va nella configurazione del database. Apriamo il file php/configuration.php e modifichiamo i parametri per la connessione del db settandoli con i valori che abbiamo ottenuto durante la generazione del database. public $host = '127.1.33.XXX'; public $user = 'admin'; public $password = 'Q2eXtiXqcXXX'; public $db = 'test'; BABEL S.r.l. - P.zza S.Benedetto da Norcia 33 - 00040, Pomezia (RM) - Tel:. +39 06.9826.9600 - Fax. +39 06.9826.9680 E-Mail: info@babel.it – PEC: babel@pec.babel.it – WEB: http://www.babel.it Reg. Imprese di Roma N° 06062681009 - N.R.E.A. 953123 - P.I. e C.F. 06062681009 Cap. Soc. € 102.774,00 i.v. Società soggetta alla direzione e coordinamento della Par-tec S.p.A - Società iscritta al registro delle Imprese di Milano al numero 1293820015
  • 8. Non ci resta che rendere effettive le modifiche. $ git add php/configuration.php $ git commit -m 'alter db configuration' [master 28bb973] alter db configuration 1 files changed, 4 insertions(+), 4 deletions(-) $ git push Counting objects: 7, done. Compressing objects: 100% (4/4), done. Writing objects: 100% (4/4), 419 bytes, done. Total 4 (delta 3), reused 0 (delta 0) remote: Stopping application... remote: Waiting for stop to finish remote: Done remote: Running .openshift/action_hooks/build remote: Database found, skipping import. remote: Starting application... remote: Done To ssh://791a8fe8bd1c48c1820f933c6cad3579@test- joomla.rhcloud.com/~/git/test.git/ fff3d3e..28bb973 master -> master Ora tutto è pronto per essere utilizzato, all'indirizzo http://test-joomla.rhcloud.com/ c'è la nostra homepage, l'amministrazione possiamo raggiungerla alla url http://test- joomla.rhcloud.com/administrator/ le credenziali di accesso sono utente admin e password 4dm1n che è preferibile cambiare dopo il primo accesso. BABEL S.r.l. - P.zza S.Benedetto da Norcia 33 - 00040, Pomezia (RM) - Tel:. +39 06.9826.9600 - Fax. +39 06.9826.9680 E-Mail: info@babel.it – PEC: babel@pec.babel.it – WEB: http://www.babel.it Reg. Imprese di Roma N° 06062681009 - N.R.E.A. 953123 - P.I. e C.F. 06062681009 Cap. Soc. € 102.774,00 i.v. Società soggetta alla direzione e coordinamento della Par-tec S.p.A - Società iscritta al registro delle Imprese di Milano al numero 1293820015
  • 9. Licenza d'uso “Attribuzione - Non commerciale - Non opere derivate”, secondo i criteri internazionali Creative Commons (http://creativecommons.org/licenses/by-nc-nd/2.5/it/) BABEL S.r.l. - P.zza S.Benedetto da Norcia 33 - 00040, Pomezia (RM) - Tel:. +39 06.9826.9600 - Fax. +39 06.9826.9680 E-Mail: info@babel.it – PEC: babel@pec.babel.it – WEB: http://www.babel.it Reg. Imprese di Roma N° 06062681009 - N.R.E.A. 953123 - P.I. e C.F. 06062681009 Cap. Soc. € 102.774,00 i.v. Società soggetta alla direzione e coordinamento della Par-tec S.p.A - Società iscritta al registro delle Imprese di Milano al numero 1293820015