实验环境如下:

Centos6.064位) +httpd2.2.19+mysql5.5.12+php5.3.6

编译安装前需要确保如下软件已安装gcc gcc-c++ gcc-g77 autoconf automake zlib* fiex* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel*

1.  安装mysql( mysql 5.5.x 不再用 configure, 而用 cmake
wget http://www.cmake.org/files/v2.8/cmake-2.8.4.tar.gz

[root@localhost src]# tar -zxvf cmake-2.8.4.tar.gz
[root@localhost src]# cd cmake-2.8.4
[root@localhost src]# ./configure && make && make install

安装 Mysql

[root@localhost src]# tar -zxvf mysql-5.5.12.tar.gz

[root@localhost src]# cd mysql-5.5.12

[root@localhost src]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
        -DMYSQL_DATADIR=/usr/local/mysql/data \
        -DWITH_MYISAM_STORAGE_ENGINE=1 \
        -DWITH_INNOBASE_STORAGE_ENGINE=1 \
        -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
        -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
        -DENABLED_LOCAL_INFILE=1 \
        -DDEFAULT_CHARSET=utf8 \
        -DDEFAULT_COLLATION=utf8_general_ci \
        -DEXTRA_CHARSETS=all \
        -DMYSQL_TCP_PORT=3306 \
        -DMYSQL_USER=mysql

 [root@localhost src]# make && make install

配置mysql,

初始化数据库,没有错误就说明初始化成功

LAMP编译安装_第1张图片

使用service启动服务,并设置开机启动

LAMP编译安装_第2张图片

修改mysql登录密码为123

[root@localhost mysql-5.5.12]# mysqladmin -u root passworf '123'

2.安装http

[root@localhost src]# tar -zxvf httpd-2.2.19.tar.gz

[root@localhost src]# cd httpd-2.2.19

[root@localhost httpd-2.2.19]# ./configure --prefix=/usr/local/apache2 --enable-ssl --enable-modules --enable-so --enable-rewrite

--prefix:用于指定Httpd服务程序将要安装到系统目录,站这里设置的是缺省目录/usr/local/apache2
--enable-so:使httpd服务能够动态加载模块功能
--enable-rewrite:使httpd服务既有rewrite网页地址重写功能
--enable-ssl: 启用 SSL/TLS support (mod_ssl) 支持

[root@localhost httpd-2.2.19]# make && make install

启动apache服务,/usr/local/apache2/bin/apachectl start/stop

设置为开机启动,在rc.local里面直接添加上去就OK

[root@localhost httpd-2.2.19]# vi /etc/rc.local

LAMP编译安装_第3张图片

1.       编译php5.3.6

php 相关模块
 yum -y install libjpeg-devel libpng-devel freetype-devel libxml2-devel libxslt-devel zlib-devel curl-devel mhash-devel openldap-devel gd-devel

  libiconv 模块安装

[root@localhost src]# tar -zxvf libiconv-1.13.1.tar.gz

[root@localhost src]# cd libiconv-1.13.1

[root@localhost libiconv-1.13.1]# ./configure --prefix=/usr/local/libiconv && make && make install

libmcrypt 模块安装

[root@localhost src]# tar -zxvf libmcrypt-2.5.8.tar.gz

[root@localhost src]# cd libmcrypt-2.5.8

[root@localhost libmcrypt-2.5.8]# ./configure && make && make install

[root@localhost libmcrypt-2.5.8]# cd libltdl/

[root@localhost libltdl]# ./configure --enable-ltdl-install && make && make install

  mysql 库链接

[root@localhost libltdl]# ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib/libmysqlclient.so.18

 

[root@localhost src]# tar -zxvf php-5.3.6.tar.gz

[root@localhost src]# cd php-5.3.6

[root@localhost php-5.3.6]#./configure --prefix=/usr/local/php5 --with-config-file-path=/usr/local/php5/etc --with-mysql=/usr/local/mysql/ --with-mysqli=/usr/local/mysql/bin/mysql_config --with-iconv-dir=/usr/local/libiconv --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --with-curl --with-curlwrappers --with-mhash --with-mcrypt --with-gd --enable-gd-native-ttf --with-xsl --with-openssl --with-ldap --with-ldap-sasl --with-xmlrpc --without-pear --enable-zip --enable-soap --enable-mbstring --enable-ftp --enable-sockets --enable-pcntl --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --disable-rpath --enable-mbregex --with-apxs2=/usr/local/apache2/bin/apxs

碰到错误configure: error: libjpeg.(a|so) not found

我们在编译的时候经常看到一个库的文件,一般就是以*.a,*.so等名字的,尝试的搜索搜索,不行就模糊搜索!
通过上面的搜索其实就知道一些原因了,configure一般的搜索编译路径为/usr/lib/下,因为php默认就在/usr/lib/下找相关库文件,而x64机器上是在:/usr/lib64.这时你就可以直接把需要的库文件从/usr/lib64中拷贝到/usr/lib/中去就可以了.
那么记得要在configure前执行如下的命令:
cp -frp /usr/lib64/libjpeg.* /usr/lib/
configure: error: libjpng.(a|so) not found
其实也是和刚才的一样.
cp -frp /usr/lib64/libpng* /usr/lib/
configure: error: Cannot find ldap libraries in /usr/lib.
cp -frp /usr/lib64/libldap* /usr/lib/
类似错误很多,方法也很多,我们得灵活应变,具体问题具体分析!

[root@localhost php-5.3.6]# make && make install

LAMP编译安装_第4张图片

修改apache配置文件

[root@localhost php-5.3.6]# vi /usr/local/apache2/conf/httpd.conf

编译安装时候,指定了配置文件目录,需要先创建目录,才能复制php.ini配置文件,PHP安装程序通常不会复制配置文件,

 [root@localhost php-5.3.6]# mkdir /usr/local/php5/etc

[root@localhost php-5.3.6]# cp php.ini-production /usr/local/php5/etc/php.ini

重启apache然后

LAMP编译安装_第5张图片

出现这个页面后,发现date部分出现错误Warning: phpinfo() [function.phpinfo]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Asia/Chongqing' for 'CST/8.0/no DST' instead in /usr/local/apache/htdocs/index.php on line 2

实际上,从 PHP 5.1.0 ,当对使用date()等函数时,如果timezone设置不正确,在每一次调用时间函数时,都会产生E_NOTICE 或者 E_WARNING 信息。而又在php5.1.0中,date.timezone这个选项,默认情况下是关闭的,无论用什么php命令都是格林威治标准时间,但是PHP5.3中好像如果没有设置也会强行抛出了这个错误的,解决此问题,只要本地化一下,就行了。

解决办法
解决办法:  
1. 把 index.php 修改成 下面的代码 

date_default_timezone_set ('Asia/Shanghai');

phpinfo();
?>
如果不出现错误 可以去 编辑/usr/local/php5/etc/php.ini 添加设置时区 
修改date.timezone 的值为Asia/Shanghai 同时取消这一行代码的注释,即去掉前面的分号就可以了。
安装phpmyadmin

[root@localhost src]# tar -zxvf phpMyAdmin-3.4.3.2-all-languages.tar.gz

[root@localhost src]# cp -fr phpMyAdmin-3.4.3.2-all-languages /usr/local/apache2/htdocs/

[root@localhost src]# cd /usr/local/apache2/htdocs/

[root@localhost htdocs]# mv phpMyAdmin-3.4.3.2-all-languages/ ./phpmyadmin

[root@localhost htdocs]# cd phpmyadmin/

[root@localhost phpmyadmin]# cp config.sample.inc.php config.inc.php

[root@localhost phpmyadmin]# vi config.inc.php

LAMP编译安装_第6张图片

LAMP编译安装_第7张图片