在linux系统下采用源代码的形式编译安装LAMP环境具有很高的定制性,由于最近换了Ubuntu系统因此尝试着在Ubuntu11.10下编译安装LAMP环境,用于开发和测试
安装过程参考李明老师的视频教程
前期准备
1.软件包准备
autoconf-2.68.tar.gz //是一个在Bourne shell下制作供编译、安装和打包软件的配置脚本
zlib-1.2.3.tar.gz //zlib是提供资料压缩之用的函式库
libxml2-2.7.8.tar.gz //libxml是一个用来解析XML文档的函数库。它用C语言写成, 并且能为多种语言所调用,例如C语言,C++,XSH,PHP
libmcrypt-2.5.8.tar.gz //Mcrypt扩展库可以实现加密解密功能,就是既能将明文加密,也可以密文还原
freetype-2.4.9.tar.gz //FreeType是一个用C语言实现的字体光栅化引擎制作的的一个函式库。它可以用来将字符栅格化并映射成位图以及提供其他字体相关业务的支持。
jpegsrc.v8d.tar.gz //gd库组件
libpng-1.5.10.tar.gz //gd库组件
gd-2.0.35.tar.gz //gd库
httpd-2.2.22.tar.gz //Apache 服务器 源代码
mysql-5.5.22.tar.gz //mysql 数据库 源代码
php-5.3.10.tar.gz //PHP的源代码
2.编译软件的安装
首先应该查看系统有没有安装必要的编译工具,在编译安装LAMP环境时需要的编译器有gcc,g++,make,cmake(编译安装mysql)
我们需要敲命令
dpkg -l | grep gcc
dpkg -l | grep g++
dpkg -l | grep make
dpkg -l | grep cmake
如果编译的软件没有安装我们需要安装上
用iptables -F来取消所有的防火墙原则
3.检察有没有通过deb包安装过相同的软件
用相同的方法检查有没有安装过httpd服务器等如果安装过 使用apt-get remove 卸载掉或者关闭服务
4.依次解包各个软件
tar zvxf *****
也可以写个shell脚本来实现
5.编译软件
编译安装libxml2
# cd /lamp/libxml2-2.7.8/
# ./configure --prefix=/usr/local/libxml2/
# make ; make install
编译安装zlib
# cd /lamp/zlib-1.2.3
# ./configure //不要指定路径
# make ; make install
编译安装libmcrypt
# cd /lamp/libmcrypt-2.5.8/
# ./configure --prefix=/usr/local/libmcrypt/
# make ; make install
编译安装libpng
# cd /lamp/libpng-1.5.10/
# ./configure --prefix=/usr/local/libpng/
# make ; make install
编译安装jpeg8
# cd /lamp/jpeg-8d/
# ./configure --prefix=/usr/local/jpeg8/
# make ; make install
编译安装freetype
# cd /lamp/freetype-2.4.9/
# ./configure --prefix=/usr/local/freetype/
# make ; make install
编译安装gd库
# cd /lamp/gd-2.0.35/
# ./configure --prefix=/usr/local/gd2/ --with-zlib=/usr/local/zlib/ --with-jpeg=/usr/local/jpeg8/ --with-png=/usr/local/libpng/ --with-freetype=/usr/local/freetype/
# make ; make install
在这这步过程中我出现了错误,主要是说png库找不到,但是当时已经指定了,后来看了一下源代码,有个地方把png的路径写错了,大家需要改一下
编译安装 Apache 服务器
# cd /lamp/httpd-2.2.22/
# ./configure --prefix=/usr/local/apache2/ --sysconfdir=/etc/httpd/ --enable-so --enable-default=shared --enable-expires=shared --enable-rewrite=shared --enable-static-supprt
# make ; make install
安装完成后检察配置文件是否存在
尝试启动一下服务器
#/usr/local/apache2/bin/apachectl start
#netstat -tnl | grep 80
在浏览器中用localhost去访问
如果出现it works 则成功了
可以将服务写入/etc/rc.local里使服务能够开机启动
编译安装mysql
#groupadd mysql
#useradd -g mysql mysql
mkdir -p /data/mysql #创建MySQL数据库存放目录
chown -R mysql:mysql /data/mysql #设置MySQL数据库目录权限
mkdir -p /usr/local/mysql #创建MySQL安装目录
cd mysql-5.5.22
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DSYSCONFDIR=/etc #配置
make #编译
make install #安装
cd /usr/local/mysql
cp ./support-files/my-huge.cnf /etc/my.cnf #拷贝配置文件(注意:如果/etc目录下面默认有一个my.cnf,直接覆盖即可)
./scripts/mysql_install_db --user=mysql #生成mysql系统数据库
cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld #把Mysql加入系统启动
chmod 755 /etc/init.d/mysqld #增加执行权限
chkconfig mysqld on #加入开机启动
编译安装php
cd php-5.3.10
mkdir -p /usr/local/php5 #建立php安装目录
./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-mysql-sock=/tmp/mysql.sock --with-gd --with-iconv --with-zlib --enable-xml --enable-magic-quotes --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curlwrappers --enable-mbregex --enable-fpm --enable-mbstring --enable-ftp --enable-gd-native-ttf --with-openssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --enable-session --with-mcrypt --with-curl #配置
make #编译
make install #安装
cp php.ini-production /usr/local/php5/etc/php.ini #复制php配置文件到安装目录
修改apache的配置文件
AddType application/x-httpd-php .php .phtml
<?php
phpinfo();
?>
基本成功