本文采用最复杂的lamp环境搭建源码安装:CentOS 6.x下的 编译安装 PHP5.6+MYSQL5.6+APACHE2.4
由于文章篇幅比较大,所以分为上下篇两篇文章,敬请关注后续内容......
温馨提示:由于源码编译安装lamp环境出错率极高,所以请心理承受能力差的小伙伴们迅速撤离本文章 ......开玩笑而已:)
链接:http://pan.baidu.com/s/1o7D5b66 密码:8ql2
安装前的准备
查看系统是否安装了PHP,MYSQL,APACHE
查看是否安装
[root@localhost ~]#rpm -q httpd mysql php
如果安装请卸载
[root@localhost ~]#rpm -e httpd --nodeps
[root@localhost ~]#rpm -e mysql --nodeps
[root@localhost ~]#rpm -e php --nodeps
一些配置
-
配置防火墙
[root@centos6 ~]# vi /etc/sysconfig/iptables
添加(在22端口那一行下面添加):
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT #允许 80端口通过防火墙
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT #允 许3306端口通过防火墙
重启防火墙
[root@centos6 ~]# /etc/init.d/iptables restart -
配置网卡
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
HWADDR="00:0C:29:FD:FF:2A"
NM_CONTROLLED="yes"
ONBOOT="yes"
IPADDR=192.168.1.31
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
BOOTPROTO=static
没有的项手动添加,记得重启网卡:
[root@localhost ~]# /etc/init.d/network stop
[root@localhost ~]# /etc/init.d/network start - 关闭SELINUX
vi /etc/selinux/config SELINUX=enforcing #注释掉 SELINUXTYPE=targeted #注释掉SELINUX=disabled #增加
:wq 保存,关闭
shutdown -r now #重启系统
安装必要的环境库
查看是否安装环境库
[root@localhost ~]#rpm -q make gcc gcc-c++ zlib-devel libtool libtool-ltdl libtool-ltdl-devel bisonncurses-devel
没有的话请安装
[root@localhost~]#yum -y install make gcc gcc-c++ zlib-devel libtool libtool-ltdllibtool-ltdl-devel bison ncurses-devel libaio
创建临时目录并把相关的源码包放进去mkdir /usr/local/LAMP
安装依赖库 安装libxml2yum -y install gcc
yum -y install gcc-c++
yum -y install python-devel 必须有
注:libxml2是一个xml的c语言解析器,支持C,c++,ph,Pascal,ruby,tcl绑定
[root@centos6 LAMP]# cd /usr/local/LAMP
[root@centos6 LAMP]# tar -zxvf libxml2-2.9.0.tar.gz
[root@centos6 LAMP]# cd ./libxml2-2.9.0
[root@centos6 libxml2-2.9.0]# ./configure --prefix=/usr/local/libxml2/
[root@centos6 libxml2-2.9.0]# make
[root@centos6 libxml2-2.9.0]# make install
注:如果安装成功以后,在/usr/local/libxml2/目录下将生成bin,include,lib,share四个目录。在后面安装PHP5源代码的配置时,会通过在configure命令的选项中加上"--with-libxml-dir=/usr/local/libxml2"选项,用于指定安装libxml2库文件的位置。
安装libmcrypt注:libmcrypt是加密算法扩展库。支持DES, 3DES, RIJNDAEL, Twofish, IDEA, GOST, CAST-256, ARCFOUR,SERPENT, SAFER+等算法。
[root@centos6 LAMP]# cd /usr/local/LAMP
[root@centos6 LAMP]# tar -zxvf libmcrypt-2.5.7.tar.gz
[root@centos6 LAMP]# cd ./libmcrypt-2.5.7
[root@centos6 libmcrypt-2.5.7]# ./configure --prefix=/usr/local/libmcrypt/
[root@centos6 libmcrypt-2.5.7]# make && make install
注:
如果安装成功就会在/usr/local/libmcrypt/目录下生成 bin,include,lib,man,share五个目录。然后在安装PHP5源代码包的配置时,就可以通过configure命令加上“--with-mcrypt-dir=/usr/local/libmcrypt” 选项,指定这个libmcrypt库文件的位置。
如果./configure时报错:configure: error: C++ compiler cannot create executables 解决方案:
yum install gcc gcc-c++ gcc-g77
重新./configure
安装完成libmcrypt库以后,不同的linux系统版本有可能还要安装一下libltdl库。安装方法和前面的步骤相同,可以进入到解压缩的目录/usr/local/libmcrypt-2.5.7下,找到libltdl库源代码所在的目录libltdl,进入这个目录按照下面几个命令配置、编译、安装就可以了。
[root@localhost libltdl]# cd /usr/local/libmcrypt-2.5.7/libltdl //进入软件源代码目录
[root@localhost libltdl]# ./configure -enable-ltdl-install //配置ltdl库的安装
[root@localhost libltdl]# make //编译
[root@localhost libltdl]# make install //安装
安装mhashMhash是基于离散数学原理的不可逆向的php加密方式扩展库,其在默认情况下不开启。mhash的可以用于创建校验数值,消息摘要,消息认证码,以及无需原文的关键信息保存(如密码)等。
cd /lamp/mhash-0.9.9.9
./configure
make
make install
mcrypt 是 php 里面重要的加密支持扩展库。Mcrypt库支持20多种加密算法和8种加密模式
cd /lamp/mcrypt-2.6.8
LD_LIBRARY_PATH=/usr/local/libmcrypt/lib:/usr/local/lib \
./configure --with-libmcrypt-prefix=/usr/local/libmcrypt
--with-libmcrypt-prefix用于指定libmcrypt软件位置
make
make install
注:zlib是提供数据压缩用的函式库
[root@centos6 LAMP]# cd /usr/local/LAMP
[root@centos6 LAMP]# tar -zxvf zlib-1.2.3.tar.gz
[root@centos6 LAMP]# cd ./zlib-1.2.3
[root@centos6 zlib-1.2.3]# ./configure --prefix=/usr/local/zlib/
{如果后面装apache或者php报zlib的错,回到这里这样编译:
[root@localhostzlib-1.2.3]# CFLAGS="-O3 -fPIC" ./configure --prefix=/usr/local/zlib/(用64位元的方法进行编译)
}
[root@centos6 zlib-1.2.3]# make && make install
如果安装成功将会在/usr/local /zlib目录下生成include,lib,share三个目录。在安装PHP5配置时,在configure命令的选项中加上“--with- zlib-dir=/usr/local/libmcrypt”选项,用于指定zlib库文件位置。
编译安装libpng
[root@centos6 LAMP]# cd /usr/local/LAMP
[root@centos6 LAMP]# tar -zxvf libpng-1.2.31.tar.gz
[root@centos6 LAMP]# cd ./libpng-1.2.31
[root@centos6 libpng-1.2.31]# ./configure --prefix=/usr/local/libpng/ --enable-shared
[root@centos6 libpng-1.2.31]# make && make install
如果报错:configure: error: ZLib not installed(没有请跳过)
这样解决 :
进入zlib的源文件目录,执行命令make clean,清除zlib;
重新配置./configure,后面不要接--prefix参数;
make && make instal
进入libpng目录,执行命令./configure --prefix=/usr/local/libpng;
make && make install
如果安装成功将会在/usr/local/libpng目录下生成bin,include,lib和share四个目录。在安装GD2库配置时,通过在configure命令选项中加上“--with-png=/usr/local/libpng”选项,指定libpng库文件的位置。
安装jpeg
注:安装GD2库前所需的jpeg8库文件,需要自己手动创建安装需要的目录,它们在安装时不能自动创建。
[root@centos6 LAMP]# cd /usr/local/LAMP
[root@centos6 LAMP]# tar -zxvf jpegsrc.v9a.tar.gz
[root@centos6 LAMP]# cd ./jpeg-9a/
[root@centos6 jpeg-9a]# mkdir /usr/local/jpeg/ (创建jpeg软件的安装目录)
[root@centos6 jpeg-9a]# mkdir /usr/local/jpeg/bin/ (创建存放命令的目录)
[root@centos6 jpeg-9a]# mkdir /usr/local/jpeg/lib/ (创建jpeg库文件所在目录)
[root@centos6 jpeg-9a]# mkdir /usr/local/jpeg/include/ (创建存放头文件目录)
[root@centos6 jpeg-9a]# mkdir -p /usr/local/jpeg/man/man1(建立存放手册的目录)
[root@centos6 jpeg-9a]# ./configure --prefix=/usr/local/jpeg/ --enable-shared --enable-static(建立共享库使用的GNU的libtool和静态库使用的GNU的libtool)
[root@centos6 jpeg-9a]# make && make install
在安装GD2库配置时,可以在configure命令的选项中加上“--with-jpeg=/usr/local/jpeg8”选项,指定jpeg8库文件的位置。安装PHP时也要指定该库文件的位置。
安装freetype[root@centos6 LAMP]# cd /usr/local/LAMP
[root@centos6 LAMP]# tar -zxvf freetype-2.5.3.tar.gz
[root@centos6 LAMP]# cd ./freetype-2.5.3
[root@centos6 freetype-2.5.3]#./configure --prefix=/usr/local/freetype/ --enable-shared
[root@centos6 freetype-2.5.3]# make && make install
如果安装成功将会在/usr/local/freetype目录下存在bin,include,lib和share四个目录。并在安装GD2库时,通过configure命令选项中加上“--with-freetype=/usr/local/freetype/”选项,指定freetype库文件位置。
安装autoconf[root@centos6 LAMP]# cd /usr/local/LAMP
[root@centos6 LAMP]# tar -zxvf autoconf-2.69.tar.gz
[root@centos6 LAMP]# cd ./autoconf-2.69
[root@centos6 autoconf-2.69]# ./configure
[root@centos6 autoconf-2.69]# make && make install
编译安装GD[root@centos6 LAMP]# cd /usr/local/LAMP
[root@centos6 LAMP]# tar -zxvf libgd-2.1.0.tar.gz
[root@centos6 LAMP]# cd ./libgd-2.1.0
[root@centos6 libgd-2.1.0]# ./configure --prefix=/usr/local/gd2 --with-jpeg=/usr/local/jpeg/ --with-png=/usr/local/libpng/ --with-zlib=/usr/local/zlib/ --with-freetype=/usr/local/freetype/
[root@centos6 libgd-2.1.0]# make && make instal
如果安装成功会在/usr/local/gd/目录下存在bin、include和lib这三个目录。在安装PHP5时,通过在configure命令选项中加上“--with-gd=/usr/local/gd”选项,指定GD库文件的位置。
如果报错:
gd_png.c 中
gdMalloc
函数的问题
make[2]: *** [gd_png.lo] Error 1
make[2]: Leaving directory `/tmp/gd-2.0.35'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/tmp/gd-2.0.35'
make: *** [all] Error 2
解决方案:
vi gd_png.c
找到
include "png.h"改成
include "/usr/local/libpng/include/png.h"如果报错:
unrecognized option –with-zlib
解决方案:
重装zlib
./configure 之前要先 make clean
或者把解压包删掉,重新解压
另附安装参数:
./configure \ //配置命令
--prefix=/usr/local/gd \ //指定安装软件的位置
--with-jpeg=/usr/local/jpeg/ \ //指定去哪找jpeg库文件
--with-png=/usr/local/libpng/ \ //指定去哪找png库文件
--with-zlib=/usr/local/zlib/ //指定去哪找zlib库文件
--with-freetype=/usr/local/freetype/ //指定去哪找freetype 2.x字体库的位置
热门评论
安装mcrypt 那一段看不懂 那一条命令执行不了 求指明
楼主你好:
首先非常感谢你的源码包,请想问一下,这个包对PHP、Apache、MySQL的版本要求程度高么?比如说我要使用mysql5.7.、http 2.4 php 5.6这些包还适用么??
你这也是醉啦,等于没说。你的源码包呢