Categories

Linux编译安装LAMP (CentOS 5.4 + httpd-2.2.21 + MySQL 5.0.77 + PHP 5.2.17)

如果你能获得Linux的root权限,那么安装可以比这简单得多,几个yum或apt-get命令就搞定了
如果你不能获得root权限,但是系统是32位的,推荐考虑一下xampp,是一个LAMP的集成包,直接下载、解压,就算安装完成了

xampp没有64位版本,所以64位Linux,而且没有root权限的我,就开始了下面的折腾。
xampp已经有64位Linux的版本了,感兴趣的同学可以尝试一下,不用自己这么麻烦的编译安装。

1. 安装 httpd 2.2.21

官方下载地址 http://httpd.apache.org/download.cgi

tar xzf httpd-2.2.21.tar.gz
cd httpd-2.2.21
./configure --prefix=/users/ghtang/lamp/apache --enable-so --enable-vhost-alias --enable-rewrite --enable-deflate --enable-mods-shared=all
make
make install

2. 安装 MySQL 5.0.77

官方下载地址 http://www.mysql.com/downloads/mysql/
由于系统里已经安装好了MySQL,我这里就把这一步省略掉了。要查看详细的安装方法,可以参考本文最后给出的链接。

3. 安装 PHP 5.2.17

因为我要安装GD库,所以还要安装很多其他依赖的软件,先把依赖的软件安装好,最后再安装PHP。

(1) FreeType 2.4.6
官方下载地址 http://www.freetype.org/download.html

tar xjf freetype-2.4.6.tar.bz2
cd freetype-2.4.6
./configure --prefix=/users/ghtang/lamp/freetype
make
make install

(2) Libtool 2.2
官方下载地址 http://www.gnu.org/software/libtool/

tar xzf libtool-2.2.tar.gz
cd libtool-2.2
./configure --prefix=/users/ghtang/lamp/libtool
make
make install

(3) jpeg v6b
官方下载地址 http://www.ijg.org/

tar xzf jpegsrc.v6b.tar.gz 
cd jpeg-6b/
./configure --prefix=/users/ghtang/lamp/jpeg --enable-shared
make
make install

如果出现这个错误:

make: ./libtool: Command not found

说明编译时找不到libtool,解决办法:

ln -s /users/ghtang/lamp/libtool/bin/libtool libtool

如果出现类似这个错误

/usr/bin/install: cannot create regular file `/users/ghtang/lamp/jpeg/bin/cjpeg': No such file or directory

那么把缺少的目录手工创建好就可以了

mkdir /users/ghtang/lamp/jpeg/bin

(4) zlib 1.2.5
官方下载地址 http://zlib.net/

tar xzf zlib-1.2.5.tar.gz
cd zlib-1.2.5
./configure --prefix=/users/ghtang/lamp/zlib
make
make install

(5) libpng 1.2.23
官方下载地址 http://www.libpng.org/pub/png/libpng.html

tar xzf libpng-1.2.23.tar.gz
cd libpng-1.2.23
 ./configure --prefix=/users/ghtang/lamp/libpng
make
make install

(6) gettext 0.17
官方下载地址 http://www.gnu.org/s/gettext/

tar xzf gettext-0.17.tar.gz 
cd gettext-0.17
./configure --prefix=/users/ghtang/lamp/gettext
make
make install

(7) LibGD 2.0.35
官方网站http://www.boutell.com/gd/没有这个版本,直接google一下文件名就能找到下载

tar xzf gd-2.0.35.tar.gz
cd gd-2.0.35
./configure --prefix=/users/ghtang/lamp/gd --with-jpeg=/users/ghtang/lamp/jpeg --with-png=/users/ghtang/lamp/libpng --with-zlib=/users/ghtang/lamp/zlib --with-freetype=/users/ghtang/lamp/freetype
make
make install

(8) PHP 5.2.17
官方下载地址 http://www.php.net/downloads.php
安装完所有依赖后,终于可以开始安装PHP了

tar xzf php-5.2.17.tar.gz
cd php-5.2.17
./configure --prefix=/users/ghtang/lamp/php --with-apxs2=/users/ghtang/lamp/apache/bin/apxs --with-mysql=/usr/bin/mysql --with-gd=/users/ghtang/lamp/gd --enable-gd-native-ttf --with-jpeg-dir=/users/ghtang/lamp/jpeg --with-png-dir=/users/ghtang/lamp/libpng --with-freetype-dir=/users/ghtang/lamp/freetype --with-zlib=/users/ghtang/lamp/zlib
make
make install

这里如果出现类似下面的错误

/usr/bin/ld: skipping incompatible /usr/lib/mysql/libmysqlclient.so when searching for -lmysqlclient

说明系统里面有32位和64位的.so文件,php安装时找到的.so是32位的,和64位不兼容。在./configure时加上下面的参数可以解决这个问题。

--with-libdir=lib64

4. 启动apache

在安装完php后,还需要在apache里面进行配置才能识别.php文件

# Make sure there's only **1** line for each of these 2 directives:
# Use for PHP 4.x:
#LoadModule php4_module	modules/libphp4.so
#AddHandler php-script	.php
 
# Use for PHP 5.x:
LoadModule php5_module	modules/libphp5.so
AddHandler php5-script	.php 
 
# Add index.php to your DirectoryIndex line:
DirectoryIndex index.html index.php
 
AddType text/html	.php
 
# PHP Syntax Coloring
# (optional but useful for reading PHP source for debugging):
AddType application/x-httpd-php-source phps

配置完成,开始启动apache

apache/bin/apachectl start

如果出现这样的错误信息:

(13)Permission denied: make_sock: could not bind to address [::]:80
(13)Permission denied: make_sock: could not bind to address 0.0.0.0:80

有可能是系统不允许普通用户绑定80端口,那么编辑apache的配置文件 apache/bin/httpd.conf ,将80端口换成其他端口(比如8877端口)即可。

5. 参考资料

[1]. http://swengineer.iteye.com/blog/1103459
[2]. http://php.net/manual/en/image.installation.php
[3]. http://www.vr.org/knowledgebase/4362/CentOS-5-64-bit–configure-error-ZLIB-extension-requires-zlib-equals-109-or-orusrorbinorld-skipping-incompatible-orusrorliborlibmso-when-searching-for–lm.html
[4]. http://dan.drydog.com/apache2php.html

1 comment to Linux编译安装LAMP (CentOS 5.4 + httpd-2.2.21 + MySQL 5.0.77 + PHP 5.2.17)

Leave a Reply

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

  

  

  

*