LAMP的源码搭建

来源:岁月联盟 编辑:exp 时间:2011-09-20

使用源码搭建LAMP
利用源码搭建LAMP主要有以下三个步骤:
 
1.  ./configure(脚本)--prefix(指明安装路径)--sysconfir(安装完后配置脚本配置路径)   
2. Make (编译成二进制文件或模块)
3. make install
这些服务的源代码我们可以试着在它的官网上下载
Apache   (官网)www.apache.org
Mysql     (官网) www.mysql.com
Php        (官网)   www.php.net
安装这些包前,我们还需要提前配置好一些编译环境  gcc    glib
我们可以是使用yum grouplist    查看包组
主要需要安装的包组有:
Development Libraries             开发库
Legacy Software Development       传统软件的开发工具
Development Tools                 开发工具
基于图形的开发工具:
KDE Software Development          kde的软件开发工具
X Software Development           gename  的软件开发工具
Java Development                  依赖于java的开发工具
这些开发工具包组,我们将没有安装的一个个安装:
yum groupinstall "KDE Software Development"   使用这种方法一个个安装
将下载过得源代码导入到linux系统中:
[root@localhost ~]# ll /home/
total 174720
-rw-r--r-- 1 root root   5322082 Aug  5 19:55 httpd-2.2.19.tar.bz2
-rw-r--r-- 1 root root 162247449 Aug  5 19:56 mysql-5.5.15-linux2.6-i686.tar.gz
-rw-r--r-- 1 root root  11144328 Aug  5 19:55 php-5.3.7.tar.bz2
(1)首先我们来安装mysql
在安装包之前我们首先查看http php  mysql是否安装 rpm -qa |grep -E “http |php|mysql”若安装过了,则需要卸载  yum remove httpd 且删除/etc下的httpd目录及所有内容
然后对其分别进行拆解:
额外软件需要安装在/usr/local/
[root@localhost ~]# cd /home/
[root@localhost home]# ll
total 174720
-rw-r--r-- 1 root root   5322082 Aug  5 19:55 httpd-2.2.19.tar.bz2
-rw-r--r-- 1 root root 162247449 Aug  5 19:56 mysql-5.5.15-linux2.6-i686.tar.gz
-rw-r--r-- 1 root root  11144328 Aug  5 19:55 php-5.3.7.tar.bz2
[root@localhost home]# tar -zxvf mysql-5.5.15-linux2.6-i686.tar.gz  -C /usr/local/
进入mysql的安装目录并未mysql目录做一个简单的软链接
[root@localhost home]# cd /usr/local/
[root@localhost local]# ln -s mysql-5.5.15-linux2.6-i686 mysql
[root@localhost local]# ll
total 76
drwxr-xr-x  2 root root 4096 Oct  1  2009 bin
drwxr-xr-x  2 root root 4096 Oct  1  2009 etc
drwxr-xr-x  2 root root 4096 Oct  1  2009 games
drwxr-xr-x  2 root root 4096 Oct  1  2009 include
drwxr-xr-x  2 root root 4096 Oct  1  2009 lib
drwxr-xr-x  2 root root 4096 Oct  1  2009 libexec
lrwxrwxrwx  1 root root   26 Aug  6 01:15 mysql -> mysql-5.5.15-linux2.6-i686
drwxr-xr-x 13 root root 4096 Aug  5 22:58 mysql-5.5.15-linux2.6-i686
drwxr-xr-x  2 root root 4096 Oct  1  2009 sbin
drwxr-xr-x  4 root root 4096 Aug  5 02:09 share
drwxr-xr-x  2 root root 4096 Oct  1  2009 src
[root@localhost local]# cd mysql   进入mysql目录
[root@localhost mysql]# ll
drwxr-xr-x  2 root root   4096 Aug  5 22:58 bin
-rw-r--r--  1 7161 wheel 17987 Jul 14 03:09 COPYING
drwxr-xr-x  4 root root   4096 Aug  5 22:58 data
drwxr-xr-x  2 root root   4096 Aug  5 22:58 docs
drwxr-xr-x  3 root root   4096 Aug  5 22:58 include
-rw-r--r--  1 7161 wheel  7604 Jul 14 03:09 INSTALL-BINARY
drwxr-xr-x  3 root root   4096 Aug  5 22:58 lib
drwxr-xr-x  4 root root   4096 Aug  5 22:57 man
drwxr-xr-x 10 root root   4096 Aug  5 22:58 mysql-test
-rw-r--r--  1 7161 wheel  2552 Jul 14 03:09 README
drwxr-xr-x  2 root root   4096 Aug  5 22:58 scripts
drwxr-xr-x 27 root root   4096 Aug  5 22:58 share
drwxr-xr-x  4 root root   4096 Aug  5 22:58 sql-bench
drwxr-xr-x  2 root root   4096 Aug  5 22:58 support-files
[root@localhost mysql]# less INSTALL-BINARY   查看配置帮助文件,其中说明了配置步骤
shell> groupadd mysql
shell> useradd -r -g mysql mysql
shell> cd /usr/local
shell> tar zxvf /path/to/mysql-VERSION-OS.tar.gz
shell> ln -s full-path-to-mysql-VERSION-OS mysql
shell> cd mysql
shell> chown -R mysql .
shell> chgrp -R mysql .
shell> scripts/mysql_install_db --user=mysql
shell> chown -R root .
shell> chown -R mysql data
# Next command is optional
shell> cp support-files/my-medium.cnf /etc/my.cnf
shell> bin/mysqld_safe --user=mysql &
# Next command is optional
shell> cp support-files/mysql.server /etc/init.d/mysql.server
我们可以按照步骤进行配置
[root@localhost ~]# groupadd -r  mysql   创建mysql组(-r表示创建系统组)
[root@localhost ~]# useradd -r -g mysql -s  /sbin/nologin -M mysql
 (创建一个属于mysql组系统帐号  不允许登录 -m表示没有家目录)
[root@localhost ~]# cd /usr/local/mysql
[root@localhost mysql]# chown -R mysql:mysql . (将目录内的所有者跟所属组都该为mysql)
[root@localhost mysql]# scripts/mysql_install_db --user=mysql执行脚本目录下的脚本生成初始库
[root@localhost mysql]# chown -R root .   将当前目录下的文件所有者改回root
[root@localhost mysql]# chown -R mysql data   将data的所有者改为mysql
[root@localhost mysql]# cp support-files/my-medium.cnf /etc/my.cnf 
在/etc/下生成mysql的配置文件
[root@localhost mysql]# cp support-files/mysql.server /etc/init.d/mysqld 
在/etc下生成mysql的控制脚本
将mysql的头文件与库文件导出,便于系统的查找
系统的库文件主要存在三个位置:/lib   /usr/lib  /usr/local/lib
/etc/ld.so.conf.d定义非标准软件包安装库文件链接
[root@localhost mysql]# vim /etc/ld.so.conf.d/mysql.conf
[root@localhost mysql]# ldconfig -v |grep mysql   再加载 mysql库
/usr/local/mysql/lib:
libmysqlclient.so.18 -> libmysqlclient_r.so.18.0.0   加载成功
[root@localhost mysql]#
系统的头文件的默认存放位置 /usr/include   /usr/local/include但是mysql的头文件不在里面
[root@localhost mysql]# cd /usr/include/
[root@localhost include]# ln -s /usr/local/mysql/include mysql   为mysq创建头文件的链接
[root@localhost include]# chkconfig --add mysqld      添加mysql的开机启动设置项
[root@localhost include]# chkconfig --list |grep mysqld
mysqld          0:off 1:off 2:on 3:on 4:on 5:on 6:off
到此mysql就做好了
(2)接着我们来安装apache   (纯粹的源代码)
[root@localhost home]# tar -jxvf  httpd-2.2.19.tar.bz2 -C /usr/src   将http包拆解到/usr/src
[root@localhost httpd-2.2.19]# ./configure --help |less   查看脚本的配置做参考
--prefix=安装路径
--sysconfdir=配置脚本存放位置
--enable-so  开启dso(动态共享对象)
--with-z  使用zlib
--enable-ssl  加密
[root@localhost httpd-2.2.19]# ./configure  --prefix=/usr/local/apache --sysconfdir=/etc/httpd  --enable-so --with-z --enable-ssl
编译,执行make命令   时间可能久些
接着再执行make install  会形成许多目录
主配置文件在/etc/httpd/ httpd.conf    配置与以前我们做的有部分是不一样的
创建虚拟主机的文件在/etc/httpd/extra/httpd-vhosts.conf
查看http的配置及启动的说明文件
[root@localhost apache]# cd /usr/src/httpd-2.2.19/  切换到http的主要文件目录
[root@localhost httpd-2.2.19]# less INSTALL
     $ ./configure --prefix=PREFIX
     $ make
     $ make install
     $ PREFIX/bin/apachectl start   apache启动方法
启动apache
[root@localhost httpd-2.2.19]# cd /usr/local/apache/  切换到aopche的主目录
[root@localhost apache]# ./bin/apachectl start    启动apache
[root@localhost apache]# netstat -tupln |grep http 查看apache的端口
tcp        0      0 :::80       :::*         LISTEN      19115/httpd        
[root@localhost apache]# ./bin/apachectl stop   关闭apache
[root@localhost apache]# netstat -tupln |grep http
[root@localhost apache]# ./bin/apachectl start
利用源码做成的apache 无法使用service httpd start  启动
做apache的开机自动启动,在开机脚本里面做:
[root@localhost httpd-2.2.19]# vim /etc/rc.local
/usr/local/apache/bin/apachectl start    添加该项为开机自动启动
为了方便我们修改环境变量文件,在启动时不用输那么长的目录
[root@localhost ~]# vim /etc/profile   添加环境变量
加入PATH=$PATH:/usr/local/apache/bin
[root@localhost ~]# . /etc/profile    执行环境变量脚本文件
[root@localhost ~]# echo $PATH
/usr/lib/qt-3.3/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/apache/bin  查看是否添加成功
[root@localhost ~]# apachectl stop  停下apache
[root@localhost ~]# apachectl start  启动apache
[root@localhost ~]# cd /usr/include/ 
[root@localhost include]# ln -s /usr/local/apache/include/ apache
做头文件到系统默认头文件的链接,便于其他软件的调用
[root@localhost include]# cd /etc/ld.so.conf.d/
[root@localhost ld.so.conf.d]# vim apache.conf
/usr/local/apache/lib   指定apache库文件的路径
[root@localhost ld.so.conf.d]# ldconfig -v |grep apache   搜索apache的库文件
/usr/local/apache/lib:
客户端访问:
 

至此apache便做好了
(3)下面我们来做php的源码安装
我们下载的php源码包为php-5.3.7.tar.bz2
选择路径解压:放到/usr/src/目录中
[root@localhost home]# tar -jxvf php-5.3.7.tar.bz2 -C /usr/src/
[root@localhost home]# cd /usr/src/php-5.3.7/  切换到php的解压后目录下
[root@localhost php-5.3.7]# ./configure --help less  查看配置脚本的参数及选项
--prefix=安装路径
--with-apxs2=指明apache调用php模块的工具的路径和名称
 --enable-mbstring 字符串支持
--with-mysql=指明mysql的路径
--with-mysqli=指明mysql_config的路径名称
[root@localhost php-5.3.7]#./configure     --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --enable-mbstring --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config
在检测域编译环境中没出错后,就执行make进行编译
[root@localhost php-5.3.7]# make
然后便执行make install 进行安装
[root@localhost php-5.3.7]# make install
测试php能否工作
在/etc/httpd/httpd.conf  文件中可以找到定义的网站主目录,然后对其进行编译
[root@localhost ~]# cd /usr/local/apache/htdocs/   进入网站目录
[root@localhost htdocs]# vim index.html 编译该文件
<html><body><h1>It works!</h1></body></html>
<?php
phpinfo();   调用php
?>
[root@localhost htdocs]# mv index.html index.php   将站点文件改名
[root@localhost htdocs]# vim /etc/httpd/httpd.conf    编译apache的主配置文件
<IfModule dir_module>
    DirectoryIndex index.html index.php    添加索引
</IfModule>
AddType application/x-httpd-php .php     为系统添加可以处理php脚本项
然后重启apache服务
[root@localhost htdocs]# apachectl restart
接着再客户端进行验证:
 

然后我们在尝试使用php测试连接mysql
[root@localhost ~]# cd /usr/local/apache/htdocs/   进入网站目录
[root@localhost htdocs]# vim index.php 编译主页
<html><body><h1>It works!</h1></body></html>
<?php
$link=mysql_connect('127.0.0.1','root','');
if ($link)
  echo "connect success!!!";
  else
echo "connect failed!!! "
?>
使用客户端测试:
 

当关闭数据库时再用客户端测试:
[root@localhost htdocs]# service mysqld stop
 

此时php便安装成功了
Lamp的源码的搭建也坐完了,我们接着就可以做应用了
作者“missingluo”