Deprecated: Function split() is deprecated in /home/www/static/linuxsoft.ro/www.linuxsoft.ro/public_html/wiki/inc/auth.php on line 146 Warning: Cannot modify header information - headers already sent by (output started at /home/www/static/linuxsoft.ro/www.linuxsoft.ro/public_html/wiki/inc/auth.php:146) in /home/www/static/linuxsoft.ro/www.linuxsoft.ro/public_html/wiki/inc/auth.php on line 236 Warning: Cannot modify header information - headers already sent by (output started at /home/www/static/linuxsoft.ro/www.linuxsoft.ro/public_html/wiki/inc/auth.php:146) in /home/www/static/linuxsoft.ro/www.linuxsoft.ro/public_html/wiki/inc/actions.php on line 128
Instalarea prin compilare si configurarea Apache2, PHP 5 si MYSQL 5. Acest how-to se poate aplica oricarei distributii Linux nu numai Red Hat.
Recent am avut o cere de la un client ce avea o aplicatia scrisa pentru PHP5 si cu suport pentru tranzactii MYSQL5 pe un Red Hat 4 update 4 care rula intr-un Data Center deci eram limitat la sistemul de operare. Asa cum Red Hat vine instalat implicit cu versiunile mai vechi PHP4 si MySQL4 a trebuit sa depun ceva efort ca sa pot fece aplicatiile scrise pentru PHP5 cu MySQL5 functionale pe RedHat 4.
In continuare voi descrie in detalui pasii pe care ia-m urmat pentru a instala PHP5 si MySQL5 pe Red Hat 4 Update 4.
Inaine de a incepe verificati daca aveti acces cu utilizatorul root in sistem si daca compilatorul gcc este instalat in system.
Red Hat nu instaleaza implicit compilatorul gcc. Verificam daca avem instalat compilatorul si versiunea acestuia
#gcc-config -l
Verificam daca avem pachetele rpm gcc instalate:
#rpm -qa | grep -i gcc #rpm -qa | grep -i glibc
Red Hat instaleaza implicit serverul http, php si mysql de acea inainte de a instala noile versiuni vom verifica daca nu avem instalate in system versiunile mei vechi.
#rpm -qa | grep -i http #rpm -qa | grep -i php #rpm -qa | grep -i mysql
Daca avem instalate in system versiuni mai vechi vom dezinstala pachetele aferente:
#rpm -evh rpm_package_name
Vom instala aplicatiile in directoarele:
MySQL5 => /usr/local/mysql Apache2 => /usr/local/apache2 PHP5 => /usr/local/php5
La data scrierii acestui How-to ultimele versiuni disponibile sunt:
MySQL => mysql-5.0.27 Apache => httpd-2.0.59 PHP => php-5.2.0
In caz ca nu au fost instalate in prealabil Apache si Php este bine sa verificati daca aveti in sistem instalat zlib si libxml2 care sunt dependinte de care avem nevoie pentru rularea PHP5.
#rpm -qa | grep -i zlib #rpm -qa | grep -i libxml2
1. Creem directorul de lucru, presupunem ca avem un utelizator cu numele “user” si vom crea in directorul utilizatorului /home/user directorul de unde vom opera in continuare.
#cd /home/user/Desktop #mkdir src #cd src
2. Downloadam versiunile cele mai recente tarball Apache, php si MySQL. Vizitati pagina pt download > mirror pentru a gasi lista de servere mirror care sunt cele mai apropiate de locatia unde va aflati. In cazul de mai jost sunt prezentate serverele mirror care sunt cele mai aproape de mine.
#wget http://jp2.php.net/distributions/php-5.2.0.tar.bz2 #wget ftp://ftp.iij.ad.jp/pub/db/mysql/Downloads/MySQL-5.0/mysql-5.0.27.tar.gz #wget http://www.meisei-u.ac.jp/mirror/apache/dist/httpd/httpd-2.0.59.tar.gz
3. Despachetam fisierele downloadate:
#tar -xjvf php-5.2.0.tar.bz2 #tar -xzvf mysql-5.0.27.tar.gz #tar -xzvf httpd-2.0.59.tar.gz
Dupa ce am dezarhivat mysql automat a fost creat directorul cu denumirea mysql-5.0.27 unde si vom compila mysql.
1. Intram in directorul mysql-5.0.27
#cd /home/user/Desktop/src/mysql-5.0.27
2. Creem utilizatorul si grupul sub care va rula mysql
#groupadd mysql && useradd -g mysql mysql
3. Securizam utilizatorul nou creat mysql prim eliminarea acesului la shell
#vi /etc/passwd mysql:x:501:501::/home/mysql:/bin/bash ## Modificam pentru RedHat mysql:x:501:501:Mysql:/dev/null:/sbin/nologin
4. Acum putem trece la compilarea propriu zisa a lui MySQL dar inainte de a incepe este bine sa consultati cu atentie documentatia de pe siteul MySQL unde va trebui sa va alegeti cu atentie swichurile (cea ce urmeaza dupa ./configure) de care aveti nevoie.
5. Optimizarea
In cazul de mai jos am folosit optimizarea GCC -O3 care este recomandata de mysql si optimizarea pentru procesoarele Pentium 4 (Intel) pentru a optimiza mysql pentru propriul procesor consultati Gentoo Wiki Safe CFlags
#CFLAGS="-O3 -march=pentium4 -pipe -fomit-frame-pointer" \ CXX=gcc CXXFLAGS="-O3 -march=pentium4 -pipe -fomit-frame-pointer \ -felide-constructors -fno-exceptions -fno-rtti" ./configure \ --prefix=/usr/local/mysql --enable-assembler \ --with-mysqld-ldflags=-all-static --with-charset=utf8
6. Compilarea propriu zisa
#make && make install
7. Copiem fisierul de configurare al MySQL my.cnf in directorul /etc
#cp support-files/my-medium.cnf /etc/my.cnf
8. Initializam baza de date primara a lui mysql
#/usr/local/mysql/bin/mysql_install_db --user=mysql
9. Modificam permisiunile si utelizatorul la care apartin recursiv pentru directoarele unde a fost instalat mysql
#cd /usr/local/mysql #chown -R root . #chown -R mysql var #chgrp -R mysql .
10. Copiem si activam scriptul de initializare pentru mysql
#cp /home/user/Desktop/src/mysql-5.0.27/support-files/mysql.server /etc/init.d/mysqld
#chmod +x /etc/init.d/mysqld
#chkconfig --add mysqld
#chkconfig --level 35 mysqld on
#chkconfig --list | grep -i mysqld | awk '{print $1,$5,$7}'
11. Cream parole pentru acesul administratorului la baza de date
#/etc/init.d/mysqld start #/usr/local/mysql/bin/mysqladmin -uroot password 'parola_noua' #/usr/local/mysql/bin/mysqladmin -uroot -h localhost password 'parola_noua'
Puteti porni manual mysql daca nu-l vreti in init
#/usr/local/mysql/bin/mysqld_safe --user=mysql &
Ne mutam in directorul unde se afla sursele apache
#cd /home/user/Desktop/src/httpd-2.0.59
Inainte de a incepe compilarea apache este bine sa studiati cu atentie documentatia vedeti in special documentatia referitoare la swithcurile de configurare unde va trebui sa va alegeti cu atentie switchurile (cea ce urmeaza dupa ./configure) de care aveti nevoie.
1. Configurarea initiala
In cazul de mai jos am folosit optimizarea gcc -O2 si optimizarea pentru procesoarele Pentium 4 (Intel) pentru a optimiza Apache pentru propriul procesor consultati Gentoo Wiki Safe CFlags
#CFLAGS="-O2 -march=pentium4 -pipe -fomit-frame-pointer" \ CXX=gcc CXXFLAGS="-O2 -march=pentium4 -pipe -fomit-frame-pointer" \ ./configure --prefix=/usr/local/apache2 --enable-mods-shared=most \ --enable-auth-anon --enable-auth-dbm --enable-auth-digest \ --enable-charset-lite --enable-expires --enable-headers --enable-logio \ --enable-rewrite --enable-info --enable-ext-filter --enable-deflate \ --enable-cache --enable-disk-cache --enable-mem-cache --enable-file-cache \ --enable-proxy --enable-proxy-connect --enable-proxy-ftp --enable-proxy-http \ --enable-case-filter --enable-case-filter-in --enable-echo --enable-mime-magic \ --enable-unique-id --enable-vhost-alias --enable-ssl --with-mpm=prefork
2. Compilarea apache
#make && make install
3. Apache nu vine cu un script de initializare mai jos va prezint un script de initializare pe care il folosesc in Red Hat
#vi /etc/init.d/httpd
#########################################################################################
#!/bin/bash
#
# Startup script for the Apache Web Server
#
# chkconfig: - 85 15
# description: Apache is a World Wide Web server. It is used to serve \
# HTML files and CGI.
# processname: httpd
# pidfile: /usr/local/apache2/logs/httpd.pid
# config: /usr/local/apache2/conf/httpd.conf
# Source function library.
. /etc/rc.d/init.d/functions
if [ -f /etc/sysconfig/httpd ]; then
. /etc/sysconfig/httpd
fi
# This will prevent initlog from swallowing up a pass-phrase prompt if
# mod_ssl needs a pass-phrase from the user.
INITLOG_ARGS=""
# Path to the apachectl script, server binary, and short-form for messages.
apachectl=/usr/local/apache2/bin/apachectl
httpd=/usr/local/apache2/bin/httpd
pid=$httpd/logs/httpd.pid
prog=httpd
RETVAL=0
# The semantics of these two functions differ from the way apachectl does
# things -- attempting to start while running is a failure, and shutdown
# when not running is also a failure. So we just do it the way init scripts
# are expected to behave here.
start() {
echo -n $"Starting $prog: "
daemon $httpd $OPTIONS
RETVAL=$?
echo
[ $RETVAL = 0 ] && touch /var/lock/subsys/httpd
return $RETVAL
}
stop() {
echo -n $"Stopping $prog: "
killproc $httpd
RETVAL=$?
echo
[ $RETVAL = 0 ] && rm -f /var/lock/subsys/httpd $pid
}
reload() {
echo -n $"Reloading $prog: "
killproc $httpd -HUP
RETVAL=$?
echo
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status $httpd
RETVAL=$?
;;
restart)
stop
start
;;
condrestart)
if [ -f $pid ] ; then
stop
start
fi
;;
reload)
reload
;;
graceful|help|configtest|fullstatus)
$apachectl $@
RETVAL=$?
;;
*)
echo $"Usage: $prog {start|stop|restart|condrestart|reload|status"
echo $"|fullstatus|graceful|help|configtest}"
exit 1
esac
exit $RETVAL
#########################################################################################
4. Initializam init scriptul
#chmod +x /etc/init.d/httpd
#chkconfig --add httpd
#chkconfig --level 35 httpd on
#chkconfig --list | grep -i httpd | awk '{print $1,$5,$7}'
5. Acum putem porni apache cu init scriptul
#/etc/init.d/httpd start
Sau putem porni manual apache
#/usr/local/apache2/bin/apachectl start
6. Testam daca a pornit serverul si daca putem acesa in localhost pagina de web defaul ce vine de la Apache.
Testam daca este Apache asculta pe portul 80
#netstat -nap| egrep "(0\.0\.0\.0).*(0\.0\.0\.0).*LISTEN" | \gawk '{print $4 "\t" $7}' | egrep -o ":(.*)" | cut -c 2-
Testam Apache din consola cu links:
#links http://localhost
Inainte de a trece la instalare php este bine sa verificati daca aveti instalat in system zlib si libxml2.
Daca aveti dependentele in system puteti trece direct la instalarea php > 5.2 si in cazul in care nu le aveti instalate urmati pashii de mai jos.
Instalarea dependintelor
1. Pentru zlib si libxml2 in caz ca nu le avem instalate in sistem le downloadam de la.
#wget http://www.zlib.net/zlib-1.2.3.tar.gz #wget ftp://xmlsoft.org/libxml2/libxml2-2.6.27.tar.gz
2. Decomprimam zlib si libxml
#tar -xzvf zlib-1.2.3.tar.gz #tar -xzvf libxml2-2.6.27.tar.gz
3. Instalam dependentele care vor fi instalate default in /usr/local/lib
#cd /home/user/Desktop/src/zlib-1.2.3 #./configure && make && make install #cd /home/user/Desktop/src/libxml2-2.6.27 #./configure && make && make install
4. Verificam unde se afla librariile de care avem nevoie pentru a instala php5, zlib si libxml2 in RedHat:
#rpm -ql zlib | grep /usr/lib #rpm -ql libxml2 | grep /usr/lib
5. Trecem la configurarea pentru compilare a PHP5
Ca si in cazul MySQL si Apache am folosit optimizari pentru procesor pentru mai multe informatii consultati http://www.php.net/manual/en/install.unix.apache2.php.
Note: in cazul de mai jos am folosit librariile zlib si libxml2 default instalate de RedHat in /usr/lib cele instalate manual se afla in /usr/local/lib.
#cd /home/user/Desktop/src/php-5.2.0 #CFLAGS="-O2 -march=pentium4 -pipe -fomit-frame-pointer" \ CXX=gcc CXXFLAGS="-O2 -march=pentium4 -pipe -fomit-frame-pointer" \ ./configure --prefix=/usr/local/php5 \ --with-apxs2=/usr/local/apache2/bin/apxs \ --with-libxml-dir=/usr/lib \ --with-zlib --with-zlib-dir=/usr/lib \ --with-mysql=/usr/local/mysql \ --with-mysqli=/usr/local/mysql/bin/mysql_config \ --enable-mbstring --enable-sockets
6. Compilam PHP-ul
#make && make install
7. Editam fisierul de configurare Apache si adaugam compatibilitatea cu php:
#vi /usr/local/apache2/conf/httpd.conf AddType application/x-httpd-php .php ## Adaugam la finele DirectoryIndex inregistrarea index.php DirectoryIndex index.html index.html.var index.php
8. Restartam Serverul Apache
#/etc/init.d/httpd restart
9. Testam Apache cu modulul php incarcat, pentru aceasta vom creea un fisier de test ce va contine cod php si care ne va afisa informatii despre php-ul instalat in sistem.
#vi /usr/local/apache2/htdocs/test.php <?php phpinfo(); ?>
10. Testam in consola Apache si PHP
#links http://localhost/test.php
Odata ce am instalat mysql, apache si php este bine sa avem o interfata grafica prin web pentru administrarea mysql de aceea am hotarat sa combinam functionalitatea tuturor 3 aplicatii instalate.
1.
#cd /home/user/Desktop/src/ #wget http://jaist.dl.sourceforge.net/sourceforge/phpmyadmin/phpMyAdmin-2.9.1.1-all-languages.tar.bz2 #tar -xjvf phpMyAdmin-2.9.1.1-all-languages.tar.bz2 #mv phpMyAdmin-2.9.1.1-all-languages /usr/local/apache2/htdocs/phpmyadmin
2. Configurarea PhpMyAdmin
#vi /usr/local/apache2/htdocs/phpmyadmin/libraries/config.default.php #diff -Nut config.default.php config.default.php.old ######################################################################################### --- config.default.php 2006-12-05 18:18:50.000000000 +0900 +++ config.default.php.or 2006-11-19 09:28:45.000000000 +0900 @@ -68,9 +68,9 @@ // The controluser is also // used for all relational // features (pmadb) -$cfg['Servers'][$i]['auth_type'] = 'config'; // Authentication method (config, http or cookie based)? +$cfg['Servers'][$i]['auth_type'] = 'http'; // Authentication method (config, http or cookie based)? $cfg['Servers'][$i]['user'] = 'root'; // MySQL user -$cfg['Servers'][$i]['password'] = ''; // MySQL password (only needed +$cfg['Servers'][$i]['password'] = 'mysql_pass'; // MySQL password (only needed // with 'config' auth_type) $cfg['Servers'][$i]['nopassword'] = FALSE; // Whether to try to connect without password $cfg['Servers'][$i]['only_db'] = ''; // If set to a db-name, only #########################################################################################
Acum putem trece la Utelizarea efectiva a solutiilor instalatre in RH4.
| Publicaţi pe acest Wiki doar conţinut original, nu se acceptă copierea articolelor de pe alte site-uri. Se recomandă folosirea link-urilor in acest caz. | ||
|
|
|
|