Linux下Web服务器应用之
源码构建LAMP环境
1.构建的linux环境:
[root@www ~]# uname –a #Linux的环境
Linux www 2.6.18-128.el5 #1 SMP Wed Dec 17 11:42:39 EST 2008 i686 i686 i386 GNU/Linux
2.准备工作:
准备一:关闭firewall和SELinux(略)
准备二:构建本地yum服务器(略)
准备三:下载以下软件(我存放在linux的/root/lamp下)
mysql-5.5.19-linux2.6-i686.tar.gz
httpd-2.2.21.tar.gz
php-5.3.8.tar.bz2
Ü Apache http://www.apache.org/
Ü Mysql http://www.mysql.com/
Ü Php http://www.php.net/
准备四:构建编译组环境
使用# yum grouplist all |less查看已安装的组环境(红色必选)
Java Development
KDE Software Development
Legacy Software Development
X Software Development
Development Libraries
Development Tools
发现这里没有安装Development Tools,使用下面命令安装
[root@www ~]# yum groupinstall "Development Tools"
源码构建LAMP环境过程
1.源码安装mysql:
#这里我将下载的软件存放到/root/lamp目录下
[root@www ~]# cd /root/lamp/
#解压mysql的主程序文件,使用tar –zxvf,并使用-C指定解压目录
(说明:一般一些额外的软件安装时经常将其放到/usr/local目录下)
[root@www lamp]# tar -zxvf mysql-5.5.19-linux2.6-i686.tar.gz -C /usr/local/
#切换至/usr/local/的目录下,并创建软连接,便于访问mysql文件
[root@www lamp]# cd /usr/local/
[root@www local]#ll
[root@www local]# ln -s mysql-5.5.19-linux2.6-i686/ mysql
[root@www local]# ll
#切换至mysql的目录下,进行一些主要配置
[root@www local]# cd mysql
[root@www mysql]# groupadd -r mysql
[root@www mysql]# useradd -r -g mysql -s /sbin/nologin -M mysql
[root@www mysql]# chown -R mysql:mysql .
[root@www local]# ll
[root@www mysql]# scripts/mysql_install_db --user=mysql
[root@www mysql]# chown -R root .
[root@www mysql]# chown -R mysql data/
[root@www mysql]# ll
[root@www mysql]# cp support-files/my-medium.cnf /etc/my.cnf
[root@www mysql]# cp support-files/mysql.server /etc/init.d/mysqld
#此时可以在任何位置,使用mysqld来管理服务
[root@www mysql]# service mysqld start
Starting MySQL... [ OK ]
#配置mysql的头文件
[root@www mysql]# cat /etc/ld.so.conf
[root@www mysql]# cd /etc/ld.so.conf.d/
[root@www ld.so.conf.d]# ll
[root@www ld.so.conf.d]# vim mysql.conf
/usr/local/mysql/lib
[root@www ld.so.conf.d]# ldconfig -v |grep mysql
/usr/local/mysql/lib:
libmysqlclient.so.18 -> libmysqlclient_r.so.18.0.0
#配置mysql的库文件
[root@www ld.so.conf.d]# cd /usr/include/
[root@www include]# ln -s /usr/local/mysql/include/ mysql
[root@www include]# cd mysql/
[root@www mysql]# ll
[root@www mysql]# cd
#使chkconfig可以管理mysqld服务
[root@www ~]# chkconfig --add mysqld
[root@www ~]# chkconfig --list |grep mysqld
mysqld 0:off 1:off 2:on 3:on 4:o5:on 6:off
[root@www ~]#
2.源码安装apache:
#解压apache程序文件
[root@www ~]# cd /root/lamp/
[root@www lamp]# tar -zxvf httpd-2.2.21.tar.gz -C /usr/local/src/
[root@www lamp]# cd /usr/local/src/
[root@www src]# ll
[root@www src]# cd httpd-2.2.21/
#配置apache二进制文件
[root@www httpd-2.2.21]# ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --enable-so --with-z --enable-ssl
#编译apache二进制文件
[root@www httpd-2.2.21]#make
#安装apache二进制文件
[root@www httpd-2.2.21]#make install
#进行相关配置,使apache正常工作
[root@www httpd-2.2.21]# cd /usr/local/apache/
[root@www apache]# ./bin/apachectl start
[root@www apache]# netstat -tupln |grep http
[root@www apache]# vim /etc/profile
55 PATH=$PATH:/usr/local/apache/bin/
[root@www apache]# . /etc/profile
[root@www apache]# 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/
#此时可以再任何位置:apachectl start|restart |stop
#配置apache的头文件
[root@www apache]# cd /usr/include/
[root@www include]# ln -s /usr/local/apache/include/ apache
#配置apache的库文件
[root@www include]# cat /etc/ld.so.conf
[root@www include]# cd /etc/ld.so.conf.d/
[root@www ld.so.conf.d]# vim apache.conf
/usr/local/apache/lib
[root@www ld.so.conf.d]# ldconfig -v |grep apache
/usr/local/apache/lib:
[root@www ld.so.conf.d]#
#查看httpd和mysqld信息.
[root@www ld.so.conf.d]# netstat -tupln |grep httpd
tcp 0 0 :::80 :::* LISTEN 21263/httpd
[root@www ld.so.conf.d]# netstat -tupln |grep mysqld
tcp 0 0 :::3306 :::* LISTEN 2937/mysqld

3.源码安装php:
#解压php程序文件
[root@www ~]# cd /root/lamp/
[root@www lamp]# tar -jxvf php-5.3.8.tar.bz2 -C /usr/local/src/
[root@www lamp]# cd /usr/local/src/
[root@www src]# ll
[root@www src]# cd php-5.3.8/
[root@www php-5.3.8]# ll
#配置php二进制文件
[root@www php-5.3.8]# ./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
#编译php二进制文件
[root@www php-5.3.8]# make
#安装php二进制文件
[root@www php-5.3.8]# make install
4.测试LAMP环境:
增加网页测试文件:
#编辑apache的配置文件使识别index.php文件
[root@www htdocs]# vim /etc/httpd/httpd.conf
167 DirectoryIndex index.php index.html
310 AddType application/x-httpd-php .php
[root@www htdocs]# apachectl stop
[root@www htdocs]# apachectl start
#测试apache与PHP的连接:
[root@www php-5.3.8]# cd /usr/local/apache/htdocs/
[root@www htdocs]# ll
total 4
-rw-r--r-- 1 root root 44 Nov 21 2004 index.html
[root@www htdocs]# mv index.html index.php
[root@www htdocs]# vim index.php
<html><body><h1>It works!--xjzhujunjie--2012/03/18</h1></body></html>
<?php
phpinfo();
?>

#测试apache与mysql的连接:
[root@www htdocs]# vim /usr/local/apache/htdocs/index.php
It works!--xjzhujunjie--2012/03/18
<?php
$link=mysql_connect('127.0.0.1','root','');
if($link)
echo "scuess";
else
echo "fail";
?>

[root@www htdocs]# service mysqld stop
Shutting down MySQL. [ OK ]
--xjzhujunjie –2012/03/19-0:04

本文转自xjzhujunjie 51CTO博客,原文链接:http://blog.51cto.com/xjzhujunjie/810067