04/07/2009 - Linux Feed

LINUX « E-Pillole



Apache 2 + Php 5 + MySql 5 su Debian e Ubuntu (LAMP)

Post inserito il 25/03/2007 da Fede in Server Side

Apache2, Php5 e MySql5 rappresentano probabilmente le migliori alternative OpenSource nei rispettivi campi. Installati poi su una Debian o su Ubuntu, si ottiene un sistema decisamente stabile e adatto a qualsiasi applicazione, dal webserver professionale all'OS da casa su cui testare i propri siti web.

Lamp Debian Ubuntu

In questo breve tutorial vedremo quindi come installare il cosiddetto LAMP server su Debian e Ubuntu. Come suggerisce l'acronimo LAMP (Linux Apache MySql Php), verrà descitta una procedura molto semplice per una perfetta installazione di Apache 2, Php 5 e MySql 5.

La configurazione di ogni singolo componente del LAMP server che andremo ad installare sulla vostra Debian o sulla vostra Ubuntu, sarà quella minima richiesta per rendere il sistema perfettamente funzionante, lasciando quindi ogni personalizzazione alle particolari esigenze di ognuno di voi.

N.B. Prima di partire con l'installazione, assicuratevi che la vostra linuxbox sia aggiornata e sistemate le repository ufficiali della vostra Debian o Ubuntu come descritto in queste due guide:

- Repository Debian (Etch - Lenny - Sid)

- Repository Ubuntu (Gutsy - Feisty - Edgy - Dapper)

INSTALLAZIONE APACHE 2 HTTP SERVER

Installare Apache 2 con il supporto per Php su Debian e Ubuntu è molto semplice. Loggatevi da terminal e digitate:

sudo apt-get install apache2 apache2-mpm-prefork

Digitato questo comando, vi verrà chiesto di confermare l'operazione. Rispondete sì (Yes), ed installate tutte le dipendenze necessarie che vi verranno suggerite da apt.

Completata l'installazione, il vostro webserver Apache sarà già perfettamente funzionante con le impostazioni di default, e pronto per ogni vostra personalizzazione. In questo momento non ci interessa vedere come configurare ogni singolo aspetto di Apache, i virtual hosts e tutto il resto, ma soltanto installare il sistema base.

E' comunque utile indicare quali sono le cartelle e i files di configurazione principali di Apache. In particolare:

- /var/www/ è la root folder del vostro webserver, ossia la cartella in cui verranno inseriti tutti i vostri siti web e i files che li compongono;

- /etc/apache2/ è la cartella in cui troverete tutti i files di configurazione relativi ad Apache;

- /etc/apache2/mods-available/ è la cartella in cui vengono inseriti i files di configurazione di tutti i moduli installati;

- /etc/apache2/mods-enabled/ è la cartella che contiene dei link simbolici ad ogni file presente nella cartella /etc/apache2/mods-available/. Ognuno di questi link simbolici, ha la facoltà di abilitare ognuno dei moduli presenti nella cartella mods-available;

- /etc/apache2/sites-available/ è la cartella in cui inserire il file di configurazione per ogni virtual host che verrà creato. Di predefinito, è presente unicamente il file default;

- /etc/apache2/sites-enabled/ è la cartella che contiene dei link simbolici ad ogni file presente nella cartella /etc/apache2/sites-available/. Come si può facilmente dedurre da questa struttura, ognuno di questi link simbolici, ha la facoltà di abilitare ognuno dei virtual host definiti nella cartella sites-available.

N.B. Per qualche info in più riguardo la gestione dei moduli e dei virtual hosts su Debian e Ubuntu, fate riferimento a questa guida.

Fatte queste semplici precisazioni, potete già testare il funzionamento del vostro webserver, digitando nel vostro browser l'indirizzo di rete della macchina su cui avete installato Apache (es. http://192.168.XXX.XXX), oppure se siete in locale digitando http://localhost/ nel vostro browser.

Se tutto funziona correttamente, visualizzerete la scritta It Works che vi confermerà l'avvenuta installazione di Apache sulla vostra Debian o sulla vostra Ubuntu. A questo punto, osservando l'url nel vostro browser, potete subito notare che la "cartella" principale del webserver è apache2-default. Ciò è definito nel file default di cui si è parlato brevemente in precedenza. Dategli un'occhiata per prendere un pò di confidenza su come Apache2 gestisce la configurazioni.

Prima possibile, verrà anche proposta una guida dettagliata per l'abilitazione e la configurazione dei virtual hosts, così da sfruttare a pieno le potenzialità del vostro webserver.

Per ora è sufficiente sapere che se nel browser viene visualizzata correttamente la scritta It Works, Apache2 è installato correttamente e potete proseguire.

INSTALLAZIONE PHP 5

Installato Apache, è ora il momento di installare Php 5 e alcune delle sue componenti fondamentali. Per fare ciò, da terminal digitate molto semplicemente:

sudo apt-get install php5 libapache2-mod-php5 php5-cgi php5-gd php5-cli

Completata l'installazione, eseguite questo comando per copiare in /etc/php5/apache2/ il file di configurazione php.ini di php5:

sudo cp /usr/share/doc/php5-common/examples/php.ini-recommended /etc/php5/apache2/php.ini

Fatto ciò aprite il file php.ini:

sudo nano /etc/php5/apache2/php.ini

e abilitate sin da subito il supporto per MySql e per le gd libraries decommentando queste due linee nella sezione Dynamic Extensions:

;extension=mysql.so
;extension=gd.so

Togliete i punti e virgola davanti di modo che risultino così (se non dovessero essere presenti, aggiungetele senza problemi):

extension=mysql.so
extension=gd.so

Assicuratevi che il modulo per php5 sia abilitato digitando:

sudo a2enmod php5

e riavviate la configurazione di Apache:

sudo /etc/init.d/apache2 reload

Dopo questi piccoli accorgimenti, php5 è correttamente installato sulla vostra Debian o sulla vostra Ubuntu, ma prima di testarne il funzionamento, sarà preferibile riavviare il sistema (poi non lo farete mai più) per rendere effettive le configurazioni fatte. Provvederemo a riavviare la macchina tra pochissimo, non appena verrà installato e configurato anche MySql5.

INSTALLAZIONE MYSQL 5

Per installare il server MySql 5.0, digitate da terminal:

sudo apt-get install mysql-server-5.0 php5-mysql

Completata l'installazione, ricordate che di default MySql viene installato senza password per l'utente root. Ovviamente questo non è un bene per la sicurezza del vostro sistema, ed è opportuno settare subito una password per l'utente root. Per fare ciò, entrate in MySql da linea di comando digitando:

mysql -u root

ed eseguite i "comandi" seguenti:

DELETE FROM mysql.user WHERE User = '';

e

FLUSH PRIVILEGES;

per eliminare eventuali account anonimi da MySql.

Infine, settate la password per l'utente root digitando:

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('tuapassword');

e

SET PASSWORD FOR 'root'@'HOSTNAME' = PASSWORD('tuapassword');

sostituendo ovviamente tuapassword, con la password che avete scelto e HOSTNAME con l'hostname della vostra Debian o della vostra Ubuntu.

Utile inoltre ricordare che sarà preferibile impostare un utente non-root per ogni altra operazione che richiederà l'interazione tra webserver e sqlserver. Per ogni altra particolare configurazione di cui necessitate, il file su cui operare è: /etc/mysql/my.cnf

Come ultima cosa, se lo desiderate, installate anche phpMyAdmin, molto ultile per amministrare via browser i vostri databases. Per installare phpMyAdmin, da terminal digitate:

sudo apt-get install phpmyadmin

TEST INSTALLAZIONE

A questo punto, tutto il necessario per un corretto funzionamento del nostro LAMP Server su Debian o Ubuntu, è stato installato, e per sicurezza riavviate la vostra macchina (facoltativo). Digitate:

sudo shutdown -r now

e una volta riavviato il sistema, effettuate il login e testiamo le installazioni e le configurazioni fatte.

- Per testare Apache2, come è stato detto anche in precedenza, digitate nel vostro browser l'indirizzo di rete della macchina su cui avete installato Apache (es. http://192.168.XXX.XXX), oppure se siete in locale digitando http://localhost/ nel vostro browser. Se tutto funziona correttamente, visualizzerete la scritta It Works che vi confermerà l'avvenuta installazione del vostro webserver Apache.

- Per testare php5, da terminal create un file che chiameremo test.php nella root folder del vostro webserver. Muovetevi quindi nella cartella principale di Apache digitando:

cd /var/www/

create il file test.php digitando:

sudo nano test.php

e inserite quanto segue nel suddetto file:

<?php
phpinfo();
?>

Salvate, chiudete il file, e richiamatelo con il vostro browser (es. http://192.168.10.XXX/test.php oppure http://localhost/test.php). Fatto ciò, se l'installazione è avvenuta con successo, visualizzerete tutte le informazioni relative alla versione di php appena installata.

- Per testare MySql5 e phpMyAdmin, il metodo più semplice è quello di utilizzare phpMyAdmin per creare un database e confermare dunque il corretto funzionamento di entrambi.

Per fare ciò, digitate nel vostro browser http://192.168.10.XXX/phpmyadmin oppure http://localhost/phpmyadmin. Vi troverete di fronte la schermata di login di phpMyAdmin, inserite root come utente e la password che avete settato prima, ed effettuate il login. A questo punto create un database di prova chiamandolo come volete, e se tale operazione va a buon fine, anche MySql è stato correttamente installato.

Ora che Apache2, Php5 e MySql sono perfettamente funzionanti sulla vostra Debian o sulla vostra Ubuntu, non vi rimane altro da fare che configurarli a dovere secondo le vostre esigenze ed iniziare ad utilizzarli come meglio credete.

Buon divertimento e a presto con qualche tutorial più specifico dedicato alla configurazione di Apache2...


Post letto 35452 volte | Commenti (31) | Bookmark   del.icio.us    segnalo


Commento postato da Alessandro il 24/06/2007
Ho installato Lamp come da te indicato su ubuntu Feisty.
Ho fatto un semplicissimo database con 3 tabelle in relazione tra loro.
Volendo farlo funzionare con Base di OOo 2.2.1 ho installato il driver ODBC (ho letto che JDBC non riconosce le relazioni tra le tabelle?) il tutto funziona egregiamente...
Per quanto riguarda la visualizzazione dei dati inseriti va benissimo, quando vado a toccarre e modificare i valori dei records inseriti per il testo e le date tutto ok per i numeri decimali invece mi scompaiono completamente.
Ho provato ad in serire la numerazione en 0.00 - 0,00 ma iente da fare... Qualcuno mi hadetto che è il driver ODBC da aggiornare o ricompilare, ma non so minimamente come fare....

Sto cercando anche come installare l'eventuale driver JDBC per vedere se riesco a sbloccare la situazione.
come fare?
Grazie per ogni possibile aiuto

Commento postato da Fede il 25/06/2007
@Alessandro

per installare il driver JDBC:

sudo apt-get install mysql-client
sudo apt-get install libmysql-java

completata l'installazione perchè il tutto funzioni, è necessario mettere mano al file ~/.bashrc e aggiungere:

CLASSPATH=$CLASSPAT­H:/usr/share/java/mysql.jar
expor­t­ CLASSPATH

ripeti la procedura guidata di OpenOffice per la connessione al db e dovrebbe funzionare...

ciaociao

Commento postato da Robert@FAsTec il 13/11/2007
@Alessandro

hai provato il MySQL connector originale del sito MySQL?

http://dev.mysql.com/downlo­ads/connector/odbc/3.51.html

Rober­t­

Commento postato da The_Master il 27/11/2007
Ciao! Ho eseguito alla lettera l'installazione ma una volta completata non riescoa d accedere alla pagina di phpMyAdmin

Commento postato da Fede il 27/11/2007
@The_Master

Debian o Ubuntu ??

hai settato la pass di root di Mysql prima di connetterti via phpmyadmin??

ti connetti in locale o da un altra macchina??

ciaociao

Commento postato da The_Master il 27/11/2007
Debian e su macchina remota. Psw settata ma via browser è impossibile accedervi.

Commento postato da Fede il 27/11/2007
@The_Master

strano, con phpmyadmin non c'è bisogno di fare nulla :(

ma lo vedi il form di login o nemmeno quello??

se lo vedi, che errore ti da quando inserisci user e pass??

ciaociao

Commento postato da The_Master il 27/11/2007
In effetti mi son spiegato male io e te ne chiedo scusa. Non si vede proprio la pagina, Errore 404 per intenderci. Eppure è tutto funzionante, MySQL è accessibile via shell e risponde ai comandi, Apache è up e va bene, resta solo phpMyAdmin. Ti confermo che è installato perchè se provo a reinstallarlo mi dice che è già alla versione più recente... Buh? P.S.: Puoi contattarmi anche via mail

Commento postato da Fede il 29/11/2007
@The_Master

sei già il secondo in una settimana che ha problemi con phpmyadmin...

non vorrei che fosse cambiato qualche cosa :(

appena ho tempo provo a reinstallare tutto da zero da qualche parte e vediamo...

eppure neanche un mesetto fa, tutto tranquillo :(

boh...sorry

ciaociao

Commento postato da Antonio il 04/12/2007
ciao,

ho seguito la tua procedura ma mi trovo difronte ad un problema non mi ha messo phpmyadmin nella cartella /var/www ed inoltre non accetta script php se il tag non è <?php cioè se metto <? non lo vede come script php

potresti darmi una mano?

Commento postato da Fede il 05/12/2007
@Antonio

per phpmyadmin, viene creato solo un link in /var/www

fede@C-DEB-SERV:/var/www$ ls -l
total 0
lrwxrwxrwx 1 root root 21 2007-11-26 18:12 phpmyadmin -> /usr/share/phpmyadmin

per il problema con php, la "cosa" è diventata di "default" su Debian da php5...

se proprio non puoi modificare i tuoi file, o se sono troppi, puoi mettere mano al file /etc/php5/apache2/php.ini

riporto la parte interessata....

; Allow the <? tag. Otherwise, only <?php and <script> tags are recognized.
; NOTE: Using short tags should be avoided when developing applications or
; libraries that are meant for redistribution, or deployment on PHP
; servers which are not under your control, because short tags may not
; be supported on the target server. For portable, redistributable code,
; be sure not to use short tags.
short_open_tag = Off

ciaociao

Commento postato da Antonio il 05/12/2007
ciao e grazie per la risposta.

sei un lampo :P

per gli short tag ho risolto grazie ad una lettura di apache conf però ti ringrazio lo stesso :P

per phpmyadmin purtroppo io ho questo come output:

antonio@scuottolinx:~$ cd /var/www/
antonio@scuottolinx:/var/www$ ls -l
total 8
drwxr-xr-x 2 root root 4096 2007-12-04 18:00 apache2-default
-rw-r--r-- 1 root root 31 2007-12-04 22:28 test.php

Commento postato da Fede il 05/12/2007
@Antonio

prova a creare il sym link e vedere su funziona...

sudo ln -s /usr/share/phpmyadmin/ /var/www/

dovrebbe andare...

ciaociao

Commento postato da Antonio il 05/12/2007
Sei un grande...

a me è andato tutto alla perfezione anche se devi modificare un po' la guida sia per quanto riguarda mysql che per phpmyadmin...

per il resto è ottimissima....

mi dispiace non trovare un modulo di registrazione per utenti sarebbe stato bello poter essere aggiornato.

Ciao e grazie

Commento postato da Fede il 06/12/2007
@Antonio

bene...risolto il problema :)

strani cmq questi problemi con mysql e phpmyadmin :(

appena ho tempo per provare su un sistema fresco fresco di installazione vedo un pò che è cambiato...

grazie della segnalazione, dopotutto i commenti esisteno anche per questo no?? ;)

p.s. non è possibile registrarsi al sito, ma puoi cmq seguire il feed rss se ti va ;)

p.p.s ti avverto che scrivo molto di rado eh :)

ciaociao
ciaociao

Commento postato da Guest il 07/12/2007
Ciao, installando apache e php e mysql .. quando vado a modificare il file di config ossia l'hppd.conf lo trovo completamente vuoto..

come posso fare per averne uno di base che magarmi mi mostra anche gli errori in php e in che riga??

ma devo inserire io i tag desiderati??

Commento postato da Fede il 07/12/2007
@Guest

Il file di configurazione su Debian e Ubuntu è apache2.conf e non httpd.conf

per gli errori di php invece /etc/php5/apache2/php.ini

ciaociao

Commento postato da Flavio il 24/02/2008
Ciao a tutti, ho seguito le istruzioni per la configurazione della lamp sotto debian etc e apparentemete tutto funziona benissimo ma se sbaglio a scrivere codice in php invece di riportare l'errore nel browser, mi restituisce soltanto una schermata biancha vuota!!! ho controllato il file php.ini e tutti gli errori sono abilitati. Sai mica da cosa può dipendere il problema? Grazie in anticipo.

Commento postato da Fede il 24/02/2008
@Flavio

ciao...sezione:

; Error handling and logging ;

io li ho settati in questo modo in locale:

error_reporting = E_ALL|E_NOTICE|E_STRICT

ricordati di abilitarli anche:

display_errors = On

riavvia la configurazione di apache:

sudo /etc/init.d/apache2 force-reload

e dovrebbe andare!!

ciaociao

Commento postato da Flavio il 25/02/2008
ok problema risolto, bastava impostare il display_errors = On. Grazie infinite.

Commento postato da kreos il 18/03/2008
ritorno su phpmyadmin.
stesso problema di Antonio.
sorpresa..visto che non riesco a raggiungere phpmyadmin ho provato a creare il link.
ln -s /usr/share/phpmyadmin/ /var/www/

ma nisba... alla fine ho schiacciato il famoso uovo di colombo.. ossia.
(spero di non aver scappellato)
sono andato in apache2.conf ed ho aggiunto in fondo
<VirtualHost 87.x.x.x>
ServerName phpmyadmin
ServerPath /var/www
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
­</VirtualHost>

h­o­ sbagliato????
fatemi sapere grazie.

Commento postato da Fede il 19/03/2008
@kreos

debian o ubuntu??

uhmmm...ma phpmyadmin vuoi che sia raggiungibile anche dall'esterno??

Attenzione che non è immune da bug e problemi di sicurezza....(consiglio .htpasswd per la cartella phpmyadmin)

anyway, sarebbe meglio utilizzare il "metodo debian"
crea un file in /etc/mods-available/ e lo chiami phpmyadmin ad esempio. Poi inserisci:

<VirtualHost 87.x.x.x>
Servername phpmyadmin
DocumentRoot /var/www/phpmyadmin
<Directory /var/www/phpmyadmin>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>

e lo abiliti digitando:

sudo a2enmod phpmyadmin

in questo modo dovrebbe essere raggiungibile da: http://87.x.x.x/phpmyadmin

spero di esserti stato utile :)

ciaociao

Commento postato da wolly il 21/09/2008
DOPO UN POMERIGGIO DI RICERCHE E GUIDE FATTE CON I PIEDI SONO APPRODATO QUI. MI HAI SALVATO.
SEI UN GRANDE!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Commento postato da o0oALEXXo0o il 17/11/2008
ciao, anche a me è stato utile leggere questa guida e soprattutto ho avuto anchio il problema con errore 404 sul login sia da remoto che locale pr il pannello di phpmyadmin.
Ho dovuto creare il sym link sudo ln -s /usr/share/phpmyadmin/ /var/www/

grazie @Antonio

ora proseguo con i settaggi e con joomla :)

Ubuntu 8.10 intrepid server ciaoo

Commento postato da superkazza il 20/11/2008
Installato il tutto su ubuntu 8.10 grazie alla tua guida...anche a me dava l'errore 404 con phpmyadmin ma con la

sudo ln -s /usr/share/phpmyadmin/ /var/www/

si è risolto il tutto. GRAZIE!!

Commento postato da magsas il 13/12/2008
Ottima guida. Ho installato il lamp su Ubuntu 8.04. Fra l'altro sono riuscito a risolvere il problema di phpmyadmin aggiungendo il collegamento e visualizzo anche gli errori grazie al settaggio display_errors = On. Ciao e grazie 1000.

Commento postato da Anielz il 28/02/2009
......ho risolto anche io con quella stringa ma in precedenza devo aver fatto un pò di casini nel creare e screare, ora phpadmin non mi accetta la password.......chi mi aiuta a sapere dove la recupero......

Commento postato da xoen il 25/03/2009
Ciao, volevo solo ringraziarti per l'ottimo lavoro.

Commento postato da Luciph3r il 03/04/2009
Ciao , complimenti per la sinteticità . funge tutto tranni il PHP che mi viene visto dal browser come un file.php da scaricare .... dove sbaglio ?

Commento postato da aleppe il 24/04/2009
grande fede,risolto il prob di phpmyadmin solo che ora non mi da accesso alla creazione del database,mi compare nessun privilegio
ho provato a fare chmod 777 sulle varie cartelle,sia in var che in etc ma continua a non privilegiarmi...........a qualcuno è successa la stessa cosa?

Commento postato da Andrea il 29/05/2009
Ciao, inanzitutto complimentoni per l'ottima guida. Anche io avevo l'errore 404 ma poi ho risolto con il già citato
sudo ln -s /usr/share/phpmyadmin/ /var/www/


solo che ora collegandomi a http://127.0.0.1/phpmyadmin mi da il seguente errore:
Impossibile caricare l'estensione mysqli,
prego controllare la configurazione di PHP
rimandandomi alla pagina
http://127.0.0.1/phpmyadmin/D­ocumentation.html#faqmysql
dicendomi­ che non riesce a caricare dinamicamente un file che (testuale traduzione) "si dovrebbe chiamare" mysql.so il fatto è che si chiama gia così (quantomeno si chiama così nel file /etc/php5/apache2/php.ini alla voce extension=mysql.so)
Grazie in anticipo

ps: uso ubuntu.

Commenta Post

(opzionale)
(opzionale)


Codice antispam: Codice antispam