---------------------------------------------------------------------------- Scuola di Specializzazione in Fisica Sanitaria dell'Universita' di Bologna Marcello Galli, Anno 2005-2006 Lezioni di Informatica http://www.helldragon.eu/marcello/galli_lezioni/ ---------------------------------------------------------------------------- ------------- Esercitazione ------------- Istallare un "content management system", nella propria directory: ~/public_html di un server remoto, operando via rete. ----------------------------------------------------------------------------- In queste istruzioni si suppone che il gruppo che lavora abbia username: studenti0 e che sia alla consolle della macchinadi nome: PC1 Il CMS dovra' essere istallato sulla macchina di nome pcprof3, utilizzando il web server di sistema, che rende accessibile via web la directory ~/public_html nella direcotry home dello studente. Non si sta lavorando alla consolle della macchina pcprof3, per cui tutto va fatto in remoto, via ssh. pcprof3 ha Linux Suse 10, le cose possono essere un po' diverse per altre distribuzioni. Il software e' gia' stato reperito e posto in rete, accessibile via web, nella sua directory ~/public_html, dell'utente: studente, sulla macchina di nome:pcprof. Il CMS che si prova ad installare e' Xoops 2.0.13 (vedi www.xoops.org), uno dei tanti CMS gratuiti che circolano in rete. Si tratta di un programma scritto in PHP, che si appoggia ad un server web da una parte ed al database Mysql dall'altra. Il server web, con l'interprete PHP, ed il database mysql sono gia' stati configurati sulla macchina pcprof3. Ad ogni gruppo di studenti e' stato assegnato un database mysql, di nome: my_studenti1, my_studenti2 etc ..., con passwords : stdnum1 , stdnum2 ... Per preparare i database mysql si e' proceduto nel modo seguente (operando come root): /etc/init.d/mysql start : fa partire il server mysql il server e' configurato in base al file /etc/my.cnf mysql -p -u root < fa_database.sql : fa eseguire al server i comandi sql nel file : fa_database.sql, questo files contiene righe del tipo: ---------------- GRANT ALL PRIVILEGES ON my_studenti1.* TO 'studenti1'@localhost IDENTIFIED BY 'stdnum1' ; FLUSH PRIVILEGES ; CREATE DATABASE my_studenti1 ; ---------------- Si tratta di comandi con la sintassi sql, uno standard per l'interazione con i database, che non possiamo qui approfondire. Questi comandi creano un database e lo mettono sotto il controllo completo dell'utente stedenti1. In questo modo si e' riprodotta la situazione in cui ci si trova quando si opera su uno spazio web offerto da un provider, che appunto ci mette a disposizione un database, il php e lo spazio web. --------------------------------------------- Si procede secondo i seguenti passi: 1 - dalla macchina PC1 ci si collega a pcprof3: ssh pcprof3 password: ... 2- reperimento del software. Il software si trova sul web, messo a disposizione da un utente sulla LAN, si recupera con: mkdir xoops ; cd xoops ; wget http://pcprof/~studente/Xoops/xoops-2.0.13.2.tar.gz si decomprime il software, si estraggono i files dall'archivio: tar -xvzf xoops-2.0.13.2.tar.gz La directory docs contiene istruzioni per l'installazione, la direcotory html il CMS vero e proprio. Se andate a sbirciare in html vedete un insieme di programmi php e files html, che costituiscono il CMS. E' un programma abbastanza complesso, ma, come vedremo, strutturato in modo che l'utente possa fare tutto via web, utilizzando un browser, da una postazione remota, senza conoscere ne' il PHP ne l'SQL. Ovviamente, essendo tutto il source PHP disponibile, e' possibile, conoscendo il PHP, modificare e personalizzare il programma come si vuole. Si copia il contentuto della directory html in ~/public_html: cd html ; cp -R * ~/public_html Ora si sistemano i permessi di accesso come richiesto dalle istruzioni di istallazione: cd ~/public_html chmod a+rwx uploads/ cache/ templates_c/ chmod a+rw mainfile.php Ora tutti possono scrivere in questi vostri files, e' una violazione delle piu' elementari norme di sicurezza che deve durare il minimo indispensabile perche' voi possiate configurare il programma da web. Infatti operando in questo modo e' l'utente associato al server web che andra' a scrivere su questi vostri files. 3- configurazione del software, creazione tabelle del database. dalla macchina PC1, si accede alla url: http://pcprof3/~studenti0 si eseguono le istruzioni indicate dall'interfaccia grafica, come potete vedere e' tutto molto facile. I dati da fornire per il database sono: database username: studenti0 database password: stdnum0 xoops physical path: /home/studenti0/public_html xoops virtual path(url): http://pcprof/~studenti0 --------------- il programma accede al vostro datyabase mysql e crea tutte le tavole che contengono utenti del vostro cms, pagine web etc. etc. ------------------ occorre quindi (menu administrator) fornire username e password per un amministratore del sito, cui sara' data facolta' di configurare e controllare il CMS. 5 - si definisce il layout del sito: tramite un browser, da PC1, si accede a: http://pcprof3/~studenti0 si da username e password dell'amministratore. -- si va in admin menu (si clicca sull'icona) -- si va su moduli e si installano quelli che piacciono ad esempio forum, news e members (si clicca sull'icona strana, occorre poi premere il bottono: "confirm") -- si va su system admin, blocchi e si definisce il layout del sito per i vari utenti: anonimi, registered, etc. metto visibili parti di news e forum nella parte centrale, decido in che ordine sono, poi bottone submit -- nel menu di amministrazione, in forum, add category, si definisce prima una categoria e poi si aggiungono dei forum alla catagoria. -- menu di amministrazione, news aggiungo una news andare vicino al bottone go, scegliere save, e mettere ( e spuntare) la data di pubblicazione -- adesso si puo' provare a registrarsi, a postare news etc etc. Gli utenti sono divisi in categorie, nel menu sysadmin->groups si definisce quali parti del CMS sono visibili ad ogni categoria. In site-preferences->users ci sono le opzioni per permettere agli utenti di registrarsi via web. ---------------------------------------- L'interfaccia di configurazione non e' abbastanza chiara ed occorre qualche prova per venirne a capo, ma qui non si vuole entrare nei dettagli dello specifico CMS, solo vedere quale puo' essere il procedimento per il setup di un sistema di questo tipo.