Come primo Articolo ho scelto di pubblicare questa procedura di installazione manuale su cui ho sbattuto la testa per un paio di settimane. Non esistento degli How to abbastanza aggiornati e dettagliati sull’argomento.
– A cosa serve la seguente procedura?
Potrete con questa, creare un piccolo server su cui testare i vostri siti con il supporto di un database mysql e un interprete di comandi PHP per i vostri script. Queste stesse procedure possono essere utilizzate per applicazioni professionali e non, in base alle vostre esigenze. Spero possa essere utile ad altri come lo sarebeb stato per me se ne avessi trovato uno 😛
Iniziamo con il download dei pacchetti necessari alla configurazione dell’interprete PHP, nel caso il vostro sistema non avesse già le librerie zlib, libpng, libjpeg, che sono scaricabili dai siti ufficiali omonimi che trovate facilmente attraverso Google.
Scarichiamo tutti i pacchetti nella directory /home/<nome_utente>/
quindi attraverso un teminale con privilegi di root spostiamo i pacchetti all’interno di /usr/local/src (Questo è un esempio sarebbe cosa buona conservare tutti i sorgenti che si scaricheranno in una cartella apposita, createne una se non esiste quella da me indicata)
# mv /home/<nome_utente>/*.tar.* /usr/local/src (o la cartella creata per i sorgenti)
Esplodiamo i pacchetti scaricati spostandoci prima nella directory
# cd /usr/local/src
# tar xvf(z)(j) <nome_file1> (tra gli argomenti passati al comando "tar" da ricordare la "z" se si tratta di un pacchetto compresso come ".gz" altrimenti usare la "j" se il pacchetto è compresso come ".bz2". Quindi lanciare tre volte il comando seguito dai nomi dei tre file scaricati.
[Installazione delle librerie]
Cambiando directory, in ogni una di quelle creata dall’esplosione del pacchetto compresso omonimo compiliamo le librerie:
In the zlib source directory (zlib-1.1.4/)
# ./configure
# make
# make install
In the libpng source directory (libpng-1.2.5/)
# ./configure
# make
# make install
In the libjpeg source directory (jpegsrc-v6b/)
# ./configure
# make
# make install
Se quest’ultimo dovesse restituirvi un errore simile a questo:
/usr/bin/install: cannot create regular file `/usr/local/man/man1/cjpeg.1′: No such file or directory
Non dovete far altro che spostarvi nella directory /usr/local/ e creare la directory ./man e./man/man1 come root o usando il comando "sudo" (per ubunto e simili) come segue
# mkdir /usr/local/man
# mkdir /usr/local/man/man1
# make install
[Installazione interprete Apache 2]
Con privilegi di root quindi usando il comando su – o il comando sudo creare un nuovo gruppo e un nuovo utente appartenente a quel gruppo
# /usr/sbin/groupadd www
# /usr/sbin/useradd -g www www
Una volta scaricato il pacchetto zippato dei sorgenti di una delle release 2.x di Apache dal sito ufficiale. Spostare tale file nella directory creata per i sorgenti, spostarsi nella directory che contiene i sorgenti quindi lanciare il comando tar xvf(z)(j) con il giusto parametro in base al metodo usato per comprire la tarball. Infine, con i privilegi di root,procedere come segue nella nuova directory creata contenente i sorgenti esplosi:
# ./configure –prefix=/usr/local/apache2 –enable-mods-shared=all
# make
# make install
Completata l’installazione procedere alla configurazione del file httpd.conf come segue;
# vi /usr/local/apache2/conf/httpd.conf
Controllare all’interno del file che siano presenti le seguenti righe di configurazione;
La definizione del modulo php che dovrà essere usate a il relativo path dove posa la libreria relativa
LoadModule php5_module modules/libphp5.so
Controllare il nome del server su cui gira il demone
ServerName <nome del server>
Controllare il path della DocumentRoot
DocumentRoot "/usr/local/apache2/htdocs"
Trocare la DirectoryIndex ed editatela come segue;
DirectoryIndex index.html index.html.var index.php
Trovare l’ AddType application section e aggiungere la seguente riga;
AddType application/x-httpd-php .php
Concludiamo impostando i permessi sulle directory del software installato:
# chown -R root:www /usr/local/apache2
A questo punto salvate il file di configurazione e attendete il ritorno della voglia di continuare in questa missione suicida 😛
[Installazione Mysql 5]
Con privilegi di root quindi usando il comando su – o il comando sudo creare un nuovo gruppo e un nuovo utente appartenente a quel gruppo
# /usr/sbin/groupadd mysql
# /usr/sbin/useradd -g mysql mysql
Una volta scaricato il pacchetto zippato dei sorgenti di una delle release 5.x di Mysql dal sito ufficiale. Spostare tale file nella directory creata per i sorgenti, spostarsi nella directory che contiene i sorgenti quindi lanciare il comando tar xvf(z)(j) con il giusto parametro in base al metodo usato per comprire la tarball. Infine, con i privilegi di root, procedere come segue nella nuova directory creata contenente i sorgenti esplosi:
# ./configure –prefix=/usr/local/mysql –localstatedir=/usr/local/mysql/data –with-mysqld-user=mysql
# make
# make install
Lanciare quindi lo script di creazione del DB mysql come segue:
# ./scripts/mysql_install_db
Impostiamo i permessi sulle cartelle nel seguente modo:
# chown -R root:mysql /usr/local/mysql
# chown -R mysql:mysql /usr/local/mysql/data
Procediamo con la configurazione delle librerie necessarie a mysql:
# vi /etc/ld.so.conf
aggiungere all’interno del file la seguente riga
/usr/local/mysql/lib/mysql
Lanciare infine il comando:
# ldconfig
Startiamo il servizio e impostiamo la password dell’utente root del db:
# /usr/local/mysql/bin/mysqld_safe –user=mysql &
# /usr/local/mysql/bin/mysqladmin -u root password <NEWPASSWORD>
Ormai siamo in fondo su non mollare ^_^ il bello deve ancora venire XD
[Installazione PHP 5]
Una volta scaricato il pacchetto zippato dei sorgenti di una delle release 5.x di PHP dal sito ufficiale. Spostare tale file nella directory creata per i sorgenti, spostarsi nella directory che contiene i sorgenti quindi lanciare il comando tar xvf(z)(j) con il giusto parametro in base al metodo usato per comprire la tarball. Infine, con i privilegi di root, procedere come segue nella nuova directory creata contenente i sorgenti esplosi:
# ./configure –prefix=/usr/local/php –with-jpeg-dir=/usr/local/bin/ –with-zlib-dir=/usr/local/lib –with-png-dir=/usr/local/lib –with-apxs2=/usr/local/apache2/bin/apxs –with-mysql=/usr/local/mysql –with-mysqli=/usr/local/mysql/bin/mysql_config
# make
# make install
# libtool –finish /usr/local/src/php-5.2.8/libs
# ldconfig
Create il file di configurazione php.ini partendo dalla configurazione raccomandata,
# cp php.ini-recommended /usr/local/php/lib/php.ini
Qunidi editiamolo cone segue:
# vi /usr/local/php/lib/php.ini
Trovate la doc_root section ed inseriamo il corretto path come segue:
doc_root= "/usr/local/apache2/htdocs/"
(this is default for apache2)
Quindi toriamo la file_uploads section e modifichiamo voce seguente sostituendo On con OFF. Se doveste importare tramite web ad esempio con un MyPhpAdmin, un file con questa opzione disabilitaat non vi sarà possibile. Basterà rimetterla su On, ricordandovi di riportarlo su Off una volta completata l’operazione di cui avete bisogno, per motivi di sicurezza.
file_uploads=Off
Concludiamo impostando i permessi sulle directory del software installato:
# chown -R root:www /usr/local/php
E siamo arrivati al ritocco finale. ^_^ complimenti
[Aggiunta dei servizi httpd (apache2) e mysql (mysql5) in Init.d]
All’interno della directory /usr/local/apache2/bin lanciate il comando:
# cp apachectl /etc/init.d/httpd
Quindi proseguire:
# cd /etc/rc3.d
# ln -s ../init.d/httpd S85httpd
# ln -s ../init.d/httpd K85httpd
# cd /etc/rc5.d
# ln -s ../init.d/httpd S85httpd
# ln -s ../init.d/httpd K85httpd
Spostarsi nella directory support-files contenenuta nella directory con i sorgenti esplosi di mysql:
# cd /usr/local/src/<mysql5xxxx>/support-files/
# make
# cp mysql.server /etc/init.d/mysql
Concludiamo con:
# cd /etc/rc3.d
# ln -s ../init.d/mysql S85mysql
# ln -s ../init.d/mysql K85mysql
# cd /etc/rc5.d
# ln -s ../init.d/mysql S85mysql
# ln -s ../init.d/mysql K85mysql
# cd ../init.d
# chmod 755 mysql
E con questo si conclude il primo post e il primo HOW TO. Spero possa essere utile a qualcuno, se avete domande o suggerimenti attendo commenti da parte di chiunque. un saluto a voi tutti e al prossimo articolo.