SDB:Linux Apache MySQL PHP
Indice
Introduzione
Questa procedura è stata testata con openSUSE 12.1 x86_64 |
Questo articolo va ben oltre la semplice installazione di Apache/MySQL/PHP, se ti interessa solo questa parte (e la configurazione) puoi fermarti nella lettura dopo la sezione 6.
Ora non pretendo di possedere la conoscenza o l'esperienza per garantire che questa sia la migliore o quantomeno la strada più sicura per configurare la tua openSUSE box come un server LAMP (Linux, [Apache], MySQL, [PHP]), tuttavia funziona!
Procedi, quindi, a tuo rischio e pericolo.
In questo articolo ho provato a mantenere i passi e le istruzioni semplici usando le seguenti convenzioni per il testo:
- Il testo in grassetto indica che dovresti avere a video il medesimo risultato di quel passo delle istruzioni. (Usalo per capire se stai seguendo correttamente i passi);
- Il testo in corsivo verrà usato per le informazioni addizionali riguardo qualcosa che interesserà solo alcuni, è più sicuro ignorarli quindi.
- I blocchi di codice Shell sono usati per i comandi che puoi copiare e incollare nel tuo terminale.
Sotto il blocco di codice Shell viene spiegato cosa fa il comando se non ti fidi o se non lo conosci affatto.
-
I blocchi di citazione saranno usati per l'output testuale che dovresti ottenere a schermo, ad es., dopo aver invocato un comando.
Requisiti
Come avrai intuito, sarà necessario installare i seguenti software.
Le versioni riportate di seguito nella tabella sono quelle utilizzate per scrivere questo tutorial, molto probabilmente si può applicare in maniera analoga alle versione più recenti.
Applicazione | Versione testata |
---|---|
Apache2 | 2.2.10.2-5 |
MySQL | 5.0.67-12.15 |
PHP5 | 5.2.8 |
Il modo più semplice per installare questi software (e l'unica che io menzionerò) è il seguente:
Apri Yast, il pannello per le Impostazioni amministratore,
che dovrebbe risultare graficamente come in figura,
L'ultima è la migliore, o no?
Ora, prima di continuare, voglio sapere se volete avviare le ultimissime versioni del software preso in considerazione. Se lo fai verrai avvisato degli aggiornamenti molto più spesso ma allo stesso tempo potrai ottenere sin da subito i benefici che derivano dall'utilizzo delle versioni più nuove (come nuove caratteristiche, miglioramenti vari...).
- No - Allora apri il link Installazione o semplicemente salta direttamente alla parte dell'installazione (più sotto).
- Si - continua leggendo la sezione sottostante "Sorgenti del software da selezionare".
Sorgenti del software da selezionare
Se hai deciso di usare l'ultimo e il miglior software disponibile, avremo bisogno di aggiungere alcune risorse software addizionali alla tua configurazione di openSUSE.
- Vai nel menu Configurazione;
- Clicca su Repository;
- Clicca su aggiungi nella nuova schermata;
- Seleziona Repository della comunità;
- Clicca sul pulsante avanti;
A questo punto dovresti trovarti su una nuova finestra con una lista centrale dalla quale dovrai selezionare openSUSE BuildService - PHP e openSUSE BuildService - Database mettendo il segno di spunta nelle caselle a fianco.
Clicca sul pulsante Ok e avrai fatto!
Se ti viene richiesto di "Importare la chiave fidata GnuPG" clicca sul pulsante Importa (oppure Considera attendibile se stai usando openSUSE 12.2). (il messaggio potrebbe comparire più di una volta, in questo caso, semplicemente, clicca sempre su importa) Se tutto è andato bene dovresti essere tornato indietro alla finestra dove vengono elencati i vari repository in uso dal tuo sistema, tra i quali dovresti trovare aggiunti PHP e Database (come nella schermata sottostante).
Congratulazioni, hai aggiunto con successo due nuovi repository per ottenere le ultime versioni di MySQL e PHP! Clicca sul pulsante Ok e procedi con il prossimo passo.
Installazione
OpenSUSE ti mette a disposizione un modo molto semplice di installare i pacchetti necessari. Tutto quello di cui hai bisogno è di selezionare Visualizza->Modelli invece della scheda Cerca, questo cambierà il contenuto del pannello e ti presenterà una lunga lista di elementi che raccolgono differenti modelli di software. In questa lista seleziona Server Web e LAMP e contrassegna la casella laterale (oppure premici sopra il tasto destro del mouse e seleziona Installa ) prima di premere Accetta.
Ora resta restare seduti e prendersi un caffè mentre il Gestore del Software di YaST provvede al download e all'installazione del software necessario per continuare con il prossimo passo di questa guida. (Scegli no se ti viene richiesto di installare ulteriori pacchetti.)
Avviare il server
Se hai chiuso il pannello delle Impostazioni amministratore YaST, aprilo di nuovo.
Adesso vai in Sistema e clicca su Servizi di Sistema (Runlevel). Nella nuova finestra che si apre, seleziona il pulsante opzione Modalità per esperti e cerca nella lista il servizio chiamato apache2.
Avvio
Dopo aver selezionato apache2 clicca sul pulsante Avvia/Arresta/Aggiorna (come mostrato nell'immagine a destra) e clicca su Avvia adesso... che, se tutto è andato bene, dovrebbe risponderti con un messaggio testuale di questo tipo:
/etc/init.d/apache2 start returned 0 (success):
Autostart
Assumendo che vuoi che il tuo server si avvii automaticamente all'avvio di openSUSE stessa, segui i seguenti passi:
- Clicca sul pulsante Imposta/Ripristina
- Clicca su Abilita il servizio
Come avere conferma che Apache 2 funziona
Ora che tutto è andato bene dovresti essere in grado di navigare con il tuo browser web preferito (Firefox/Konqueror/Opera ecc.) verso l'indirizzo 127.0.0.1 e dovrebbe comparirti una pagina con la scritta
It works!
Se ciò non accade... è il momento di aprire un thread sul Forum di openSUSE per chiedere aiuto e indagare sul problema.
Come avere conferma che PHP funziona
Il modo più semplice per avere conferma che PHP funziona è avviare il tuo editor di testo preferito (per esempio KWrite o GEdit) e copiare/incollare il seguente codice.
<?php phpinfo(); ?>
Nota: usare solo il tag <?php. <? non funzionerà.
Ora salva questo file nella directory /home/NOME_UTENTE/public_html come index.php e visita l'indirizzo http://127.0.0.1/~NOME_UTENTE .
Come avrai notato guardando lo screenshot, il mio nome utente è ospite quindi l'indirizzo diventa 127.0.0.1/~ospite. Se la tua pagina non ha niente a che vedere con la schermata precedente, controlla di aver digitato correttamente l'indirizzo e il nome utente (incluso l'utilizzo delle lettere maiuscole o minuscole opportune) e che sia preceduto dal carattere '~' (tilde).
In caso il browser web vuole salvare il tuo file PHP invece di mostrartelo, devi abilitare il supporto al linguaggio PHP nel file di configurazione /etc/apache2/mod_userdir.conf. Aggiungici la seguente linea, giusto dopo <Directory /home/*/public_html> e riavvia il server.
Include /etc/apache2/conf.d/php5.conf
Se ancora non sei in grado di visualizzare la pagina o ottieni un certo errore, per favore chiedi aiuto sul Forum di openSUSE.
Avvio e configurazione di MySQL
Avviare MySQL
Come per la sezione [Avviare il server], apri YaST - Impostazioni amministratore -> Servizi di sistema (Runlevel) e abilita di nuovo la "Modalità per esperti". Dopo aver selezionato mysql dalla lista clicca sul pulsante Avvia/Arresta/Aggiorna e poi sull'elemento Avvia adesso... che, se tutto è andato bene, restituirà una finestra di messaggio con il testo:
/etc/init.d/mysql start ha restituito 0 (successo):
Avvio automatico di MySQL
Assumendo che vuoi che il tuo database si avvii automaticamente durante l'avvio di openSUSE stessa (e assieme al server web che abbiamo appena configurato), segui i seguenti passi:
- Clicca sul pulsante Imposta/Ripristina e poi su Abilita il servizio
Sia che tu abbia abilitato il servizio o meno, clicca su Ok e se viene richiesto di salvare i cambiamenti seleziona Si.
Configurare MySQL
Ora che abbiamo sia PHP che Apache attivi, è tempo di configurare MuSQL. Faremo ciò attraverso alcuni passi. (Dopotutto, puoi anche semplicemente copiare e incollare i comandi riportati qui con uno sfondo grigio nella console e premere invio).
- Avvia la tua applicazione terminale preferita (i.e. Konsole, Terminal o Xterm...)
- Esegui i comandi seguenti per ottenere i privilegi di root
su
(seguendo le istruzioni a schermo) cd /bin
mysql_install_db --user=mysql
questo dovrebbe rispondere qualcosa del tipoInstalling MySQL system tables...
OK Filling help tables... OK PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER ! To do so, start the server, then issue the following commands: /usr/bin/mysqladmin -u root password 'new-password' /usr/bin/mysqladmin -u root -h Bakhuis-Server.site password 'new-password'
Alternatively you can run: /usr/bin/mysql_secure_installation
which will also give you the option of removing the test databases and anonymous user created by default. This is strongly recommended for production servers.
See the manual for more instructions.
You can start the MySQL daemon with: cd /usr ; /usr/bin/mysqld_safe &
You can test the MySQL daemon with mysql-test-run.pl cd mysql-test ; perl mysql-test-run.pl
Please report any problems with the /usr/bin/mysqlbug script!
The latest information about MySQL is available on the web at http://www.mysql.com
Support MySQL by buying support/licenses at http://shop.mysql.com- Inoltre, come suggerisce il software, puoi avviare lo script
/usr/bin/mysql_secure_installation
- Prima ti verrà richiesta la password, lascia vuoto e premi invio;
- Ora ti chiederà se vuoi impostare una password, quindi inserisci y(Si) e premi invio di nuovo;
- A questo punto ti chiederà di inserire una password e confermarla, fallo;
- Infine, questa 'procedura guidata' ti farà alcune domande su come vuoi che MySQL venga configurato, è più sicuro rispondere a tutte con una y (Si).
phpMyAdmin
Questo passo è opzionale ed è dedicato solo a quelli che vogliono installare phpMyAdmin tramite le Sorgenti del software invece che attraverso la procedura 'manuale'.
E' perfettamentente immaginabile che non si vuole seguire questa procedura perchè, per esempio, si preferisce usare [phpMiniAdmin], [MySQLQuickAdmin] o altri. Se è questo il caso vai direttamente alla parte di configurazione del firewall.
Installazione
Installazione manuale
Puoi installare phpMyAdmin manualmente nel percorso /srv/www/htdocs. Semplicemente scaricare l'ultima versione da http://downloads.sourceforge.net/project/phpmyadmin/ ed estrai tutto in /srv/www/htdocs. Otterai, quindi, una directory con phpMyAdmin del tipo /srv/www/htdocs/phpMyAdmin-3.2.1-all-languages. Rinominala in qualcosa di più conveniente, come per esempio /srv/www/htdocs/phpMyAdmin.
Ora puoi vedere phpMyAdmin al lavoro http://127.0.0.1/phpMyAdmin
Installazione tramite One-click
Installa phpMyAdmin usando l'installatore One-Click sottostante.
L'altro link invece è riferito alla sorgente del software dove risiede il pacchetto di phpMyAdmin eventualmente stessi usando versioni differenti di openSUSE o preferisci non usare l'installatore One-Click.
One-Click installer | Sorgente del software per l'installazione manuale |
---|---|
http://download.opensuse.org/repositories/server:/php:/applications |
Avere conferma che funziona
Per controllare se phpMyAdmin funziona, visita l'indirizzo http://127.0.0.1/phpMyAdmin/ . Ti dovrebbe comparire una pagina richiedente username e password. Come username inserisci 'root' e come password quella scelta precedentemente durante la configurazione di MySQL.
La configurazione
Se sei arrivato fino a qui vuol dire che phpMyAdmin funziona, grande! Ora configuriamolo così da non visualizzare il seguente messaggio ovunque.
The configuration file now needs a secret passphrase (blowfish_secret).
Instead of using the "su" command, use the sudo command. This can be achieved by issuing "visudo" as root and adding the user to the wheel group.
- Avvia la tua applicazione console preferita (Xterm, Konsole, Terminal, ecc.);
- Per ottenere i privilegi si super utente/root;
su
- Inserisci la password di root quando richiesta, o alternativamente usa il comando sudo;
password:
- Rinomina il file di configurazione di phpMyAdmin da config.sample.inc.php a config.inc.php
cp /srv/www/htdocs/phpMyAdmin/config.sample.inc.php /srv/www/htdocs/phpMyAdmin/config.inc.php
- Dai i diritti di accesso totali per qualsiasi utente a quel file;
chmod 777 /srv/www/htdocs/phpMyAdmin/config.inc.php
- (Non c'e' bisogno di cambiare i permessi da 777 a 644 se l'utente ha già modificato il file attraverso sudo o attraverso il gruppo wheel)
- Apri il file /srv/www/htdocs/phpMyAdmin/config.inc.php in un editor di testo a scelta (Gedit, Kwrite, ecc.) e cambia le linee elencate nella tabella di seguito.
Line# Da A 17 $cfg['blowfish_secret'] = ; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
$cfg['blowfish_secret'] = 'ROOT PASSWORD HERE'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
La password di root che vuoi usare per effettuare il log in in phpMyAdmin va al posto di ROOT PASSWORD HERE35 $cfg['Servers'][$i]['extension'] = 'mysql';
$cfg['Servers'][$i]['extension'] = 'mysqli';
aggiungi una i - Salva e chiudi il documento;
- Ripristina i permessi precedenti sul file di configurazione (644).
chmod 664 /srv/www/htdocs/phpMyAdmin/config.inc.php
Conferma che l'errore #3 è scomparso
Visita http://127.0.0.1/phpMyAdmin ancora una volta e effettua il login in come root con la relativa password e verifica che il warning sottostante è scomparso:
The configuration file now needs a secret passphrase (blowfish_secret).
Errori #1 e #2
Restano, quindi, due errori... ce ne occuperemo in una botta sola, semplicemente segui i passi sottostanti.
- Avvia la tua applicazione console preferita (Xterm, Konsole, Terminal ecc.)
- Ottieni i privilegi di super utente / root;
su
- Imposta l'accesso completo al file per chiunque;
chmod 777 /etc/php5/apache2/php.ini
- Apri il file /etc/php5/apache2/php.ini con il tuo editor di testo preferito (Kwrite, Gedit, ecc.)
- Cerca la seguente linea:
;mbstring.strict_encoding = Off
(line #1019?)e rimuovi il primo carattere sulla linea (il ;) così da somigliare a quella seguente:mbstring.strict_encoding = Off
- Salva e chiudi il file;
- Ripristina i vecchi privilegi di lettura/scrittura/esecuzione sul file;
chmod 644 /etc/php5/apache2/php.ini
- Riavvia il server così che i cambiamenti abbiano effetto.
/etc/init.d/apache2 restart
Avere conferma che gli errori #1 e #2 sono scomparsi
Visita di nuovo http://127.0.0.1/phpMyAdmin e ora dovresti avere la stessa pagina di prima senza errori.
Configurazione del Firewall
Se vuoi che gli altri computer sia in grado di accedere alle pagine web ospitate sul tuo computer, devi configurare il firewall di openSUSE per permettere il traffico attraverso la porta 80.
Ancora una volta YaST ci rende le cose più semplici, basta seguire i seguenti passi:
- Vai in Yast - Impostazioni amministratore;
- Clicca su (nella lista a sinistra del pannello principale di YaST);
- Clicca su (tra le icone a destra);
- Nella nuova finestra che compare clicca su Servizi consentiti nella lista a sinistra;
- Ora, sulla destra, trovi una casella con menu a discesa sotto Servizio da consentire e in quella casella selezione Server HTTP (come illustrato nell'immagine);
- Clicca su Aggiungi
- Clicca su Avanti
- Clicca su Fine
Controllare la configurazione del firewall
Ora dovresti essere in grado di visitare il tuo sito da altri computer nella stessa Local Area Network (LAN - rete locale). Se non hai un secondo computer non puoi effettuare questo test, quindi procedi con il prossimo passo.
Per effettuare questa verifica è necessario conoscere il proprio indirizzo IP, se non lo conosci prosegui nella lettura dei passi seguenti:
- Avvia la tua applicazione console preferita (Xterm, Konsole, Terminal, ecc.)
- Stampa a video le informazioni sulla connessione di rete
/sbin/ip addr
- Cerca il numero evidenziato in grassetto, che in pratica è il tuo indirizzo IP.
eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
link/ether 00:1c:25:e3:00:af brd ff:ff:ff:ff:ff:ff inet 192.168.1.100 /24 brd 192.168.1.255 scope global eth0
Da un altro computer nella stessa rete locale (LAN), visita l'indirizzo in grassetto trovato seguendo le istruzioni precedenti, facendo riferimento a questo esempio, dovrebbe essere http://192.168.1.100.
Controllare l'accessibilità esterna
Per poter controllare che il tuo sito web sia accessibile dal mondo esterno dovrai visitare http://Your-External-IP.
Siti come whatsmyip.org possono dirti il tuo IP esterno.
Se la pagina "It works!" non viene visualizzata, probabilmente dovrai configurare il firewall del tuo router, effettuando il forward della porta 80 verso il computer dove hai installato il server web.
Tweak per la velocità
Questo 'tweak' comprimerà il contenuto che il tuo server web sta fornendo in tempo reale, escludendo alcuni formati che trarranno poco o alcun beneficio da questa procedura (immagini o file già compressi come gli archivi tar, zip...) o i file che si potrebbero corrompere con un'ulteriore compressione (e.g. i file in formato pdf).
In pratica al costo di più cicli della CPU, le pagine diventeranno più piccole con i seguenti benefici:
- Maggiore velocità nel caricamento;
- Minore costo in termini di banda;
Ora, se vuoi ulteriori informazioni riguardo questa procedura cerca "http compression" ("compressione http") nel tuo motore di ricerca preferito.
mod_deflate
- Apri la tua applicazione console preferita (Xterm, Konsole, ecc.)
- Ottieni i privilegi di super utente/root
su
- Abilita la mod deflate, che comunque non verrà usata finché non si seguiranno i passi successivi.
a2enmod deflate
- Configura i privilegi sul file per consentire a chiunque di modificarli;
chmod 777 /etc/sysconfig/apache2
- Ora apri il file /etc/sysconfig/apache2 con il tuo editor di testo preferito (Kwrite, Gedit, etc) e cerca la linea (probabilmente sarà la numero 14...)
APACHE_CONF_INCLUDE_FILES=""
- Sostituisci la linea trovata con
APACHE_CONF_INCLUDE_FILES="/etc/apache2/httpd.conf.local"
Salva il file e chiudilo; - Reimpostiamo i vecchi permessi;
chmod 644 /etc/sysconfig/apache2
- Ora avremo bisogno di creare il file al quale facciamo riferimento, quindi lancia il seguente comando
- Questo crea una copia di http.conf con il nome http.conf.local;
cp /etc/apache2/httpd.conf /etc/apache2/httpd.conf.local
- Imposta i privilegi di accesso completo al file per chiunque;
chmod 777 /etc/apache2/httpd.conf.local
- Ora apri il file /etc/apache2/httpd.conf.local con il tuo editor di testo preferito e sovrascrivi TUTTO il contenuto con il testo sottostante
SetOutputFilter DEFLATE SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ \ no-gzip dont-vary SetEnvIfNoCase Request_URI \ \.(?:exe|t?gz|zip|bz2|sit|rar|7z)$ \ no-gzip dont-vary SetEnvIfNoCase Request_URI \.pdf$ no-gzip dont-vary BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4\.0[678] no-gzip BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
Save the file and close it.
- Ripristina i vecchi privilegi per accedere al file;
chmod 644 /etc/apache2/httpd.conf.local
- Riavvia il server per applicare i cambiamenti.
/etc/init.d/apache2 restart
Avere conferma che funziona
Ora come scopriamo se la mod_deflate funziona? Semplice, basta fare una visita a websiteoptimization.com e usare i loro strumenti di analisi.
Se il tuo sito sta usando la mod_deflate il test restituirà qualcosa del tipo:
# Congratulations. This site is using HTTP compression, otherwise called content encoding using gzip. The sizes reported here are for compressed content sent from the server to the client.
Se vuoi esempi di siti che stanno usando questa mod, prova il nostro amato openSUSE.org o [google.com].
Collegamenti esterni
Riconoscimenti
Non avrei mai pensato a tutto questo senza [questa] pagina utilissima. E' un po' datata e venne scritta inizialmente per openSUSE 9.1.
Questo articolo è stato scritto da Axeia, tradotto e parzialmente aggiornato da hawake.