[GUIDA] Installare un sistema LAMP

Started by Raid, Sun 13 January 2008, 19:30

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Raid

Che cos'è un sistema LAMP?

Code (http://www.ilbello.com/howto/lamp/guida.htm) Select
LAMP - Guida installazione
Linux, Apache, MySQL, PHP

Questa pagina è pensata per aiutare tutti coloro che, come me, spesso si trovano ad installare o aggiornare la triade Apache + PHP + mySQL partendo esclusivamente dai sorgenti, in modo tale anche da avere sempre la versione aggiornata di ciascun pacchetto.
Operazioni preliminari

Verifichiamo di aver installato i seguenti pacchetti (dando per scontato che il sistema di compilazione gcc, make funzioni correttamente)

# apt-get install flex bzip2 zlib1g-dev libpng12-dev libfreetype6-dev bison libtool libiconv-hook-dev libjpeg*

Scegliamo una dir di riferimento:

$ mkdir /home/apache
$ cd /home/apache

Scarichiamo i sorgenti dei noti programmi, se siamo in italia presumibilmente potremmo utilizzare le seguenti fonti:

$ wget "ftp://mirror.nohup.it/apache/httpd/httpd-$APACHE_VER.tar.bz2"
$ wget "http://it.php.net/get/php-$PHP_VER.tar.bz2/from/this/mirror"
$ wget ftp://na.mirror.garr.it/mirrors/MySQL/Downloads/MySQL-5.0/mysql-standard-$MYSQL_VER-linux-i686.tar.gz"

solo però dopo aver prima definito queste variabili, all'ultima versione disponibilie... (sperando che i mirror funzionino ancora)

$ export APACHE_VER=2.0.61
$ export PHP_VER=5.2.4
$ export MYSQL_VER=5.0.45

estraiamo il tutto...

$ tar jxf httpd-$APACHE_VER.tar.bz2
$ tar jxf php-$PHP_VER.tar.bz2
$ tar zxf mysql-standard-$MYSQL_VER-linux-i686.tar.gz

Configurazione

A questo punto, tutto è scompattato e bisogna configurare ciascuno dei pacchetti.
# Apache

$ ./configure --prefix=$DIR --enable-modules=all --enable-mods-shared=all
$ make
# make install

# MySQL

# mv mysql-standard-$MYSQL_VER-linux-i686 /usr/local/mysql
# cd /usr/local/mysql
# groupadd mysql; useradd -g mysql mysql;
# scripts/mysql_install_db --user=mysql
# chown -R root . ; chown -R mysql data; chgrp -R mysql .

# PHP (con librerie grafiche GD)

$ ./configure --with-apxs2=/home/apache/bin/apxs --with-mysql=/usr/local/mysql --with-config-file-path=/etc \
--with-gd --with-freetype-dir=/usr --enable-gd-native-ttf --enable-gd-imgstrttf --with-jpeg-dir=/usr \
--with-png-dir=/usr --with-zlib --with-iconv
$ make
# make install

A questo punto, se non abbiamo riscontrato errori durante i processi di compilazione, il sistema dovrebbe essere quasi pronto all'uso:

bisogna aggiungere la direttiva per il parsing delle pagine php nell'httpd.conf e aggiungere la pagina index.php alla direttiva DirectoryIndex nel config di apache

$ echo AddType application/x-httpd-php .php >> /home/apache/conf/httpd.conf

Esecuzione

Modificando e personalizzando i restanti parametri nel file di configurazione di apache (consigliato, ma non obbligatorio se abbiam fretta di testare il funzionamento), potremo finalmente lanciare i programmi:

# /usr/local/bin/mysqld_safe --user=mysql &
# /home/apache/bin/apachectl start

e collegarci all'indirizzo ip della macchina.

Nota: l'intento di questa pagina è aiutare l'utente ad installare rapidamente una piattaforma Linux Apache MySQL e PHP.

Questa pagina NON fornisce indicazione alcuna sulle precauzioni di sicurezza, ottimizzazioni delle configurazioni, e comunque non è una guida esaustiva all'installazione e configurazione del sistema opensource Apache MySQL PHP su ogni sistema.

Ultimo aggiornamento: mercoledì 3 ottobre 2007


La presente guida è presa integralmente da ilbello.com



Linuxiani mi date l'ok?



MsZ

#1
Quote/configure --prefix=$DIR --enable-modules=all --enable-mods-shared=all
La variabile d'ambiente DIR non è definita. E' meglio usare
Quote/configure --prefix=/usr --enable-modules=all --enable-mods-shared=all
Oppure si può creare una directory apposita per LAMP dentro la quale creare le directory delle applicazioni necessarie:
sudo mkdir /usr/local/LAMP/{etc,src}
La directory etc può essere usata per custodire file di configurazione di LAMP, e src può tenere i sorgenti. Così facendo, tenendo separati tutti i sorgenti, è possibile cancellare del tutto la directory LAMP, rimuovendo del tutto il sistema, senza influire minimamente sul sistema operativo installato.

Quote$ export APACHE_VER=2.0.61
$ export PHP_VER=5.2.4
$ export MYSQL_VER=5.0.45
La dichiarazione di numeri di release nell'ambiente è irrilevante. Forse è meglio tenere i nomi originali nella scompattazione. Ma potrebbe essere una buona cosa dichiarare la directory /usr/local/LAMP nell'ambiente senza doverla ridigitare ogni volta.

$ sudo export LAMP_DIR=/usr/local/LAMP
$ sudo wget -P $LAMP_DIR/src ftp://mirror.nohup.it/apache/httpd/httpd-2.0.61.tar.bz2
$ sudo wget -P $LAMP_DIR/src http://it.php.net/get/php-5.2.4.tar.bz2/from/this/mirror
$ sudo wget -P $LAMP_DIR/src \
ftp://na.mirror.garr.it/mirrors/MySQL/Downloads/MySQL-5.0/mysql-standard-5.0.45-linux-i686.tar.gz


Anche l'estrazione nello stesso modo.

Quote$ tar jxf httpd-2.0.61.tar.bz2
$ tar jxf php-5.2.4.tar.bz2
$ tar zxf mysql-standard-5.0.45-linux-i686.tar.gz

Bisogna quindi configurare. Il problema è che non so se di MySQL si possa editare qualche script di installazione par fare andare i file al posto giusto, nè se per Apache si possa usare l'opzione --sysconfdir=$LAMP_DIR/etc per mettere i file di configurazione nella directory LAMP/etc. Allora potrebbe essere:
./configure --prefix=$LAMP_DIR --sysconfdir=$LAMP_DIR/etc --enable-modules=all --enable-mods-shared=all
make
make install

Configurazione e compilazione possono essere effettuate come user. Sono necessari privilegi root per installare software che vada in directory di sistema. Nel caso di directory create dall'utente non è necessario.

e per PHP (attenzione ai backslash: significa che dopo un backslash si può premere Enter per andare a capo. bash genera un prompt differente e la riga di comando può continuare senza perdere significato):

./configure --prefix=$LAMP_DIR --with-apxs2=$LAMP_DIR/bin/apxs --with-mysql=$LAMP_DIR/mysql \
--with-config-file-path=$LAMP_DIR/etc
--with-gd --with-freetype-dir=/usr --enable-gd-native-ttf \
--enable-gd-imgstrttf --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib --with-iconv
make
make install


Per il resto è uguale.

$ echo AddType application/x-httpd-php .php >> $LAMP_DIR/conf/httpd.conf

# $LAMP_DIR/bin/mysqld_safe --user=mysql &
# $LAMP_DIR/bin/apachectl start


Usando una directory sola si evita anche dispersione di applicazioni o dati.

Si può anche installare il tutto in /home/apache o /home/LAMP, soprattutto se la /home e la /root si trovano su due partizioni diverse e non si vuole stare a riconfigurare ogni volta. L'importante è ricordare sempre dove si installa che cosa.

Sto parlando di applicazioni che non ho mai compilato, quindi potrei sbagliarmi qua o là. Per ora non ho intenzione di provare perchè ho altre cose per la testa, però se qualcuno vuole... :biggrin:
Informazioni sulla configurazione di un pacchetto si possono sempre ottenere con ./configure --help | less.

Raid

Sempre eccellente, grazie MsZ, proverò penso questo fine settimana, sposto in Software > Linux