SDB:Linux Apache MySQL PHP

Introduzione

Icon-checked.png 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.

ApplicazioneVersione testata
Apache22.2.10.2-5
MySQL5.0.67-12.15
PHP55.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,

1 Software Management.png

che dovrebbe risultare graficamente come in figura,

2 Software Management.png

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.

  1. Vai nel menu Configurazione;
  2. Clicca su Repository;
  3. Clicca su aggiungi nella nuova schermata;
  4. Seleziona Repository della comunità;
  5. Clicca sul pulsante avanti;
Repository - Online Update

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).

4 Configured Software Repositories.png

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.)

5 Web LAMP Server.png


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.

6 System Services Expert Mode.png


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):
7 Start Now.png

Autostart

Assumendo che vuoi che il tuo server si avvii automaticamente all'avvio di openSUSE stessa, segui i seguenti passi:

  1. Clicca sul pulsante Imposta/Ripristina
  2. Clicca su Abilita il servizio
Sia che tu lo abiliti sia che tu non lo faccia, clicca su pulsante Ok e se richiesto salva i cambiamenti rispondendo Si quando richiesto.
8 Enable Service.png

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 .

9 phpinfo.png

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):
7 Start Now.png



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
8 Enable Service.png

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).

  1. Avvia la tua applicazione terminale preferita (i.e. Konsole, Terminal o Xterm...)
  2. Esegui i comandi seguenti per ottenere i privilegi di root
    su
    (seguendo le istruzioni a schermo)
  3. cd /bin
  4. mysql_install_db --user=mysql
    questo dovrebbe rispondere qualcosa del tipo
    Installing 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
  5. 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 installerSorgente del software per l'installazione manuale
Button-oci.png 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.
  1. Avvia la tua applicazione console preferita (Xterm, Konsole, Terminal, ecc.);
  2. su
    Per ottenere i privilegi si super utente/root;
  3. password:
    Inserisci la password di root quando richiesta, o alternativamente usa il comando sudo;
  4. cp /srv/www/htdocs/phpMyAdmin/config.sample.inc.php /srv/www/htdocs/phpMyAdmin/config.inc.php
    Rinomina il file di configurazione di phpMyAdmin da config.sample.inc.php a config.inc.php
  5. chmod 777 /srv/www/htdocs/phpMyAdmin/config.inc.php 
    Dai i diritti di accesso totali per qualsiasi utente a quel file;
    • (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)
  6. 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#DaA
    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 HERE
    35$cfg['Servers'][$i]['extension'] = 'mysql';$cfg['Servers'][$i]['extension'] = 'mysqli';
    aggiungi una i
  7. Salva e chiudi il documento;
  8. chmod 664 /srv/www/htdocs/phpMyAdmin/config.inc.php
    Ripristina i permessi precedenti sul file di configurazione (644).

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.

  1. Avvia la tua applicazione console preferita (Xterm, Konsole, Terminal ecc.)
  2. su
    Ottieni i privilegi di super utente / root;
  3. chmod 777 /etc/php5/apache2/php.ini
    Imposta l'accesso completo al file per chiunque;
  4. Apri il file /etc/php5/apache2/php.ini con il tuo editor di testo preferito (Kwrite, Gedit, ecc.)
  5. 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
  6. Salva e chiudi il file;
  7. chmod 644 /etc/php5/apache2/php.ini
    Ripristina i vecchi privilegi di lettura/scrittura/esecuzione sul file;
  8. /etc/init.d/apache2 restart
    Riavvia il server così che i cambiamenti abbiano effetto.

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:

  1. Vai in Yast - Impostazioni amministratore;
  2. Clicca su Sicurezza e utenti (nella lista a sinistra del pannello principale di YaST);
  3. Clicca su Firewall (tra le icone a destra);
  4. Nella nuova finestra che compare clicca su Servizi consentiti nella lista a sinistra;
  5. 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);
  6. Clicca su Aggiungi
  7. Clicca su Avanti
  8. Clicca su Fine
10 add http server.png

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:

  1. Avvia la tua applicazione console preferita (Xterm, Konsole, Terminal, ecc.)
  2. /sbin/ip addr
    Stampa a video le informazioni sulla connessione di rete
  3. 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.

La descrizione sottostante sembra un tantino lunga, questo è parzialmente dovuto al fatto che creeremo un ulteriore file per il server web, del quale ne farà uso al posto dei file di default. La ragione per la quale facciamo ciò è che in questo modo non dovrai ripetere questi passaggi ogni volta che il software verrà aggiornato. (i file di default vengono sovrascritti ad ogni aggiornamento).


mod_deflate

  1. Apri la tua applicazione console preferita (Xterm, Konsole, ecc.)
  2. su
    Ottieni i privilegi di super utente/root
  3. a2enmod deflate
    Abilita la mod deflate, che comunque non verrà usata finché non si seguiranno i passi successivi.
  4. chmod 777 /etc/sysconfig/apache2
    Configura i privilegi sul file per consentire a chiunque di modificarli;
  5. 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=""
  6. Sostituisci la linea trovata con
    APACHE_CONF_INCLUDE_FILES="/etc/apache2/httpd.conf.local"
    Salva il file e chiudilo;
  7. chmod 644 /etc/sysconfig/apache2
    Reimpostiamo i vecchi permessi;
  8. Ora avremo bisogno di creare il file al quale facciamo riferimento, quindi lancia il seguente comando
    cp /etc/apache2/httpd.conf /etc/apache2/httpd.conf.local
    Questo crea una copia di http.conf con il nome http.conf.local;
  9. chmod 777 /etc/apache2/httpd.conf.local
    Imposta i privilegi di accesso completo al file per chiunque;
  10. 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.

  11. chmod 644 /etc/apache2/httpd.conf.local
    Ripristina i vecchi privilegi per accedere al file;
  12. /etc/init.d/apache2 restart
    Riavvia il server per applicare i cambiamenti.

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.