2010年12月19日

Centos5.5下编译安装AMP环境

centos最近发布了5.5版本,但AMP软件包并没有升级(Apache2.2.3/php5.1.6/mysql.5.0.40);所以为了能使用最新稳定版,需要自己编译安装。下面是具体的安装步骤,对于优化细节暂不做多的考虑。

1.准备相应的软件包。

下载相应的软件包放在/usr/local/src目录下。

2.安装mysql

在编译安装mysql之前。需先装ncurses

02 
03chmod +x ncurses-5.7.tar.gz
04 
05tar xzvf ncurses-5.7.tar.gz
06 
07./configure --with-shared --with-normal --with-debug --enable-overwrite
08 
09make
10 
11make install

编译安装mysql。注意–with-innodb是安装innodb引擎

01tar xzvf mysql-5.1.48.tar.gz
02 
03cd mysql-5.1.48
04 
05groupadd db
06 
07useradd -g db mysql
08 
09passwd mysql
10 
11./configure --prefix=/usr/local/mysql --enable-assembler  --with-mysqld-ldflags=-all-static  --with-client-ldflags=-all-static --with-charset=utf8 --with-collation=utf8_general_ci --with-extra-charsets=all  --with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock --with-mysqld-user=mysql --with-innodb
12 
13make
14 
15make install
16 
17cd /usr/local/mysql
18 
19cp share/mysql/my-medium.cnf /etc/my.cnf
20 
21cp /usr/local/src/mysql-5.1.43/support-files/mysql.server /etc/init.d/mysqld
22 
23./bin/mysql_install_db
24 
25./bin/mysqld_safe &

可能出现的问题,在启动/etc/init.d/mysqld start出现MySQL manager or server PID file could not be found! [FAILED]

解决办法:打开vi /etc/my.cnf文件,在[mysqld]下面加入如下配置

1basedir = /usr/local/mysql
2 
3datadir = /usr/local/mysql/data
4 
5log-error = /usr/local/mysql/log/alert.log
6 
7log_slow_queries = /usr/local/mysql/log/slow.log

3 安装Apache

1tar xzvf httpd-2.2.15.tar.gz
2 
3cd httpd-2.2.15
4 
5./configure --prefix=/usr/local/apache2/

4安装PHP

在安装PHP之前,需要先安装libxml2软件包,不然在编译过程中会出现configure: error: xml2-config not found. Please check your libxml2 installation。

1yum install libxml2-devel

下面是编译安装php的具体过程

01tar xzvf php-5.2.13.tar.gz
02 
03cd php-5.2.13
04 
05./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config
06 
07make
08 
09make test
10 
11make install
12 
13cp php-dist /usr/local/php/lib/php.ini

5安装完毕后,需要配置 php.ini和httpd.conf

打开vi /etc/local/php/lib/php.ini,查找”include_path” 加入路径”/usr/local/php/lib”;

打开vi /usr/local/apache2/conf/http.conf。加入如下指令

01</pre>
02AddType application/x-httpd-php .php
03 
04AddType application/x-httpd-php-source .phps
05 
06<IfModule dir_module>
07 
08DirectoryIndex index.php index.html
09 
10</IfModule>
11 
12keepAlive Off
13 
14<IfModule prefork.c>
15 
16StartServers 5
17 
18MinSpareServers 5
19 
20MaxSpareServers 10
21 
22MaxClients 255
23 
24MaxRequestsPerchild 10
25 
26</IfModule>
27<pre>

6 使用apxs安装编译过程中没有安装的Apache模块

如果在编译Apache的过程中,没有使用–with-rewrite选项。则需要增加mod_rewrite模块。以下是安装过程

1</pre>
2cd /usr/local/apach2/modules/mappers
3 
4/usr/local/apache2/bin/apxs -i -a -c mod_rewrite.c
5<pre>

在httpd.conf中查看LoadModule rewrite_module modules/mod_rewrite.so是否开启。AllowOverride 改为All

7 使用php-config安装编译过程中没有安装的PHP模块

安装gettext

01</pre>
02cd /usr/local/src/php-5.1.13/etc
03 
04cd ./gettext
05 
06/usr/local/php/bin/phpize
07 
08./configure --with-php-config=/usr/local/php/bin/php-config
09 
10make
11 
12make install
13<pre>

安装gd

01</pre>
02yum install libpng-devel
03 
04yum install libjepg-devel
05 
06yim install freetype-devel
07 
08cd /usr/local/src/php-5.1.13/etc/gd
09 
10/usr/local/php/bin/phpize
11 
12./configure --with-php-config=/usr/local/php/bin/php-config
13 
14make
15 
16make install
17<pre>

安装完毕后gettext.so和gd.so写到php.ini文件中.(extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/

gettext.so)

同理。安装mcrypt。在安装mcrypt之前注意先安装yum install libmcrypt libmcrypt-devel

出现的问题:
问题一:PHP安装GD库后发现无法处理JPEG,JPG类型的图片;
解决办法:首先查看系统GD库文件存在哪些.输入命令:gdlib-config –all 结果如下:

includedir: /usr/include
cflags: -I/usr/include
ldflags: -L/usr/lib
libs: -lXpm -lX11 -ljpeg -lfontconfig -lfreetype -lpng12 -lz -lm
libdir: /usr/lib
features: GD_XPM GD_JPEG GD_FONTCONFIG GD_FREETYPE GD_PNG GD_GIF

有GD_JPEG说明libjpeg.so动态库在/usr/lib目录下。出现问题的原因应该是编译安装GD库是没有指名JPEG的路径。所以,重新编译下GD库。方法如下
cd /usr/local/src/php-5.2.13/ext/gd
./configure --with-php-config=/usr/local/php/bin/php-config --with-jpeg-dir=/usr/lib
make
make install
/etc/init.d/apache restart

问题解决。



没有评论:

发表评论