LAMP(源码)

我用的操作系统是 redhat5.4

内核版本 2.6.18-164.el5

源码:

这些服务的源代码我们可以试着在它的官网上下载
Apache (官网)www.apache.org
Mysql (官网) www.mysql.com
Php (官网) www.php.net

我们要把mysql-5.5.15-linux2.6-i686.tar.gz解压安装在/usr/local/

tar –zxvf mysql-5.5.15-linux2.6-i686.tar.gz –C /usr/local/

进入mysql的安装目录并未mysql目录做一个简单的软链接

[root@localhost local]# ln -s mysql-5.5.15-linux2.6-i686 mysql

LAMP(源码)_blank

[root@localhost local]# cd mysql 进入mysql目录

[root@localhost mysql]# ls

bin data include lib mysql-test scripts sql-bench

COPYING docs INSTALL-BINARY man README share 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 mysql]# groupadd -r mysql 创建mysql组(-r表示创建系统组)

[root@localhost mysql]# useradd -r -g mysql -s /sbin/nologin -M mysql (创建一个属于mysql组系统帐号 不允许登录 -m表示没有家目录)

[root@localhost mysql]# cd /usr/local/mysql

[root@localhost mysql]# chown -R mysql:mysql . 将目录内的所有者跟所属组都该为mysql

[root@localhost mysql]# scripts/mysql_install_db --user=mysql 执行脚本目录下的脚本生成初始库

LAMP(源码)_blank_02

[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的配置文件

将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]# 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:
客户端访问:

LAMP(源码)_target_03

至此apache便做好了

(3)下面我们来做php的源码安装
我们下载的php源码包为php-5.3.7.tar.bz2
选择路径解压:放到/usr/src/目录中
[root@localhost]# tar -jxvf php-5.3.7.tar.bz2 -C /usr/src/
[root@localhost]# 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
接着再客户端进行验证:

LAMP(源码)_target_04

然后我们在尝试使用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!!! "
?>
使用客户端测试:

LAMP(源码)_target_05

当关闭数据库时再用客户端测试:

LAMP(源码)_官网_06
[root@localhost htdocs]# service mysqld stop

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