一、LAMP介绍      LAMP 指的Linux (操作系统)、 ApacheHTTP 服务器, MySQL (数据库软件) 和PHP(有时也是指Perl或 Python) 的第一个字母,一般用来建立的web 服务器。

虽然这些开放源代码程序本身并不是专门设计成同另几个程序一起工作的,但由于它们的免费和开源,这个组合开始流行(大多数Linux发行版本捆绑了这些软件)。当一起使用的时候,它们表现的像一个具有活力的解决方案包。其他的方案包有苹果的WebObjects(最初是应用服务器),Java/J2EE和微软的.NET架构。

LAMP包的脚本组件中包括了CGIweb接口,它在90年代初期变得流行。这个技术允许网页浏览器的用户在服务器上执行一个程序,并且和接受静态的内容一样接受动态的内容。程序员使用脚本语言来创建这些程序因为它们能很容易有效的操作文本流,甚至当这些文本流并非源自程序自身时也是。正是由于这个原因系统设计者经常称这些脚本语言为胶水语言。

软件组件 Linux

Linux 是免费开源软件,这意味着源代码可用的操作系统。

Apache

Apache 是使用中最受欢迎的一个开放源码的WEB服务器软件。

MySQL

MySQL 是多线程、多用户的SQL数据库管理系统。

MySQL 已拥有由Oracle 公司自 2010 年 1 月 27 日通过SUN 购买。SUN 最初于 2008 年 2 月 26 日收购 MySQL。

PHP,Perl 或 Python

PHP 是一种编程语言最初设计生产动态网站。PHP 是主要用于服务器端的应用程序软件。Perl 和 Python 类似。

二、前期工作

1、将与lamp相关的文件上传到linux系统中

image

2、挂载光盘

[root@zyx ~]# mkdir /mnt/cdrom      //建立光盘挂挂载点
[root@zyx ~]# mount /dev/cdrom /mnt/cdrom    //挂载光盘
mount: block device /dev/cdrom is write-protected, mounting read-only
[root@zyx ~]# vim /etc/yum.repos.d/rhel-debuginfo.repo       //编辑本地yum文件

image

3、查看系统需安装的工具

[root@zyx ~]# yum grouplist |less   //用此命令查看

Development Libraries
Development Tools

Legacy Network Server

X Software Development

4、查看文件是否上传到linux系统中(下图为文件传到系统根目录下)

image

三、安装mysql

 1、解压软件包

[root@zyx ~]# tar -zxvf mysql-5.5.15-linux2.6-i686.tar.gz -C /usr/local/   //mysql为绿色软件,解压到/usr/local/下

image

2、查看安装说明书

[root@zyx local]# cd mysql-5.5.15-linux2.6-i686/   //切换到该目录下,查看安装说明文件

 

image

3、查看安装步骤

[root@zyx mysql-5.5.15-linux2.6-i686]# less INSTALL-BINARY   //查看系统自带的安装步骤

image

4、创造链接

[root@zyx ~]# cd /usr/local/

[root@zyx local]# ln -s mysql-5.5.15-linux2.6-i686/ mysql      //创造链接

该目录下出现链接

image

[root@zyx local]# cd mysql     //以后可以用此命令直接进

5、根据系统自带安装说明书,逐步安装

[root@zyx mysql]#  groupadd mysql //创建组

[root@zyx mysql]# useradd -r -g mysql mysql   //创建账号并将账号加入到组

[root@zyx mysql]# cd /usr/local   //切换到该目录下

[root@zyx local]# cd mysql

image 

[root@zyx mysql]# chown -R mysql .   //将所有者都改为mysql

注:与上图相对比,下图文件所有者都改为mysql了

image

 

[root@zyx mysql]# chgrp -R mysql .   //将所有组都改为mysql

注:与上图相比,下图文件所有组已经改为mysql

image

6、初始化

[root@zyx mysql]# scripts/mysql_install_db --user=mysql //初始化

初始化完成

image

7、将文件所有者改为root

[root@zyx mysql-5.5.15-linux2.6-i686]#  chown -R root .  //将所有者都改为root

image

7、将某项文件的所有者改为mysql 

[root@zyx mysql]#  chown -R mysql data  //将此项的所有者改为mysql

image

[root@zyx mysql]# cp support-files/my-medium.cnf /etc/my.cnf   //调内存大小

7、将mysql的启动模式改为传统模式

[root@zyx mysql]# bin/mysqld_safe --user=mysql &  //启动mysql

image

[root@zyx mysql]# cp support-files/mysql.server /etc/init.d/mysqld   //符合我们的习惯,将mysql.server拷贝成 mysqld

8、测试一下服务的关闭及启动情况

[root@zyx mysql]# service mysqld stop
Shutting down MySQL.120829 22:55:24 mysqld_safe mysqld from pid file /usr/local/mysql/data/zyx.a.com.pid ended
                                                           [  OK  ]
[1]+  Done                    bin/mysqld_safe --user=mysql
[root@zyx mysql]# service mysqld start
Starting MySQL..                                           [  OK  ]            //启动mysql

9、查看端口是否启动

[root@zyx mysql]# netstat -tupln |grep mysql  //查看端口是否启动

image

10、将mysql设置为开机时启动

[root@zyx mysql]# chkconfig --list |grep mysql   //chkconfig不能管理mysql

[root@zyx mysql]# vim /etc/init.d/mysqld

image

[root@zyx mysql]# chkconfig --add mysqld     
[root@zyx mysql]# chkconfig --list |grep mysql
mysqld             0:off    1:off    2:on   3:on   4:on    5:on    6:off  //与上图2345对应

[root@zyx mysql]# ll /etc/rc.d/rc3.d/ |grep mysql

lrwxrwxrwx 1 root root 16 Aug 29 23:04 S64mysqld -> ../init.d/mysqld  //与上图64对应

11、设置mysql的库文件与头文件的路径

image

 

12、查看lib/目录下的库文件

image

 

[root@zyx mysql]# ll /lib/ /usr/lib /usr/local/lib  //如果库文件在该目录下,系统会自己找到库文件

[root@zyx mysql]# pwd
/usr/local/mysql  //mysql的库文件在/usr/local/下,与上面目录均不匹配

[root@zyx mysql]# cd /etc/ld.so.conf.d/
[root@zyx ld.so.conf.d]# vim mysql.conf

image

[root@zyx ld.so.conf.d]# ldconfig -v |grep mysql    //搜索是否链接到正确的库

usr/local/mysql/lib:
    libmysqlclient.so.18 -> libmysqlclient_r.so.18.0.0 //正确链接到库,库文件可以被正常调用

[root@zyx ld.so.conf.d]# ll /usr/include/ /usr/local/include/  //头文件的标准路径,系统可以自动找到的路径

 

[root@zyx ld.so.conf.d]# cd /usr/local/mysql    //mysql的头文件路径是非标准的

image

[root@zyx mysql]# cd /usr/include/
[root@zyx include]# ln -s /usr/local/mysql/include/ mysql  //做链接,将mysql的头文件链接到标准路径中,方便系统自动查找

[root@zyx include]# pwd
/usr/include //头文件已链接到标准路径

可以看到mysql形成的所有的头文件

image

四、安装apache

1、查看需安装apache的版本和当前使用apache的版本

image

[root@zyx ~]# yum list all |grep http //查看当前使用apache的版本

image

2、解压apache源码文件

[root@zyx ~]# tar -jxvf httpd-2.2.19.tar.bz2 -C /usr/local/src/  //apache文件为源码,需解压到/usr/local/src/下

[root@zyx ~]# cd /usr/local/src/

image

[root@zyx src]# cd httpd-2.2.19/

下图说明此文件为源码

image

3、查看安装步骤并参考逐步安装

[root@zyx httpd-2.2.19]# less INSTALL  //查看安装步骤

image

 

[root@zyx httpd-2.2.19]# ./configure --prefix=/usr/local/apache  --sysconfdir=/etc/httpd  --enable-so --enable-ssl   --with-z //执行代码

[root@zyx httpd-2.2.19]# make //编译

编译后的部分信息

image 

[root@zyx httpd-2.2.19]# make install  //整理目录

整理目录后的部分信息

image

4、查看apache的头文件与库文件

[root@zyx httpd-2.2.19]# cd /usr/local/apache/    

image

[root@zyx apache]# cd bin

image

 

[root@zyx bin]# file apachectl  //查看此文件类型
apachectl: Bourne shell script text executable //该文件为可执行脚本

[root@zyx bin]# ./apachectl start  //启动apache服务

[root@zyx bin]# netstat -tulpln |grep 80  //观察80端口的开启情况

下图80端口正常开启

image

[root@zyx bin]# ./apachectl stop  //关闭apache服务

[root@zyx bin]# netstat -tulpln |grep 80  //观察80端口的开启情况

下图没有80端口,说明其关闭

image

5、将apache设置为开机时启动

[root@zyx bin]# vim /etc/rc.local   //编辑此脚本,将apache设为开机启动

image

apache的库文件与头文件不是标准路径,系统不能自动正确调用

image

6、编辑库文件

[root@zyx apache]# cd /etc/ld.so.conf.d/

[root@zyx ld.so.conf.d]# vim httpd.conf   //编辑脚本

image

[root@zyx ld.so.conf.d]# cd /usr/local/apache/lib/ //此路径为apache库文件的标准路径

image

 

[root@zyx lib]# ldconfig –v     //此步必须先执行

[root@zyx lib]# ldconfig -pv |grep apr  //加载库文件

image

[root@zyx ld.so.conf.d]# ll /usr/include/ /usr/local/include/ /usr/local/apache/include/  //头文件的标准路径,系统可以自己正确调用到

[root@zyx ld.so.conf.d]# cd /usr/include/                                              
[root@zyx include]# ln -s /usr/local/apache/include apache  //做链接,使系统能正确链接到头文件

[root@zyx include]# ll apache/  //可以正确链接到头文件

image

五、安装php

 1、查看需安装php的版本和当前使用php的版本

查看需安装的版本

image

[root@zyx ~]# yum list all |grep php   //查看当前安装的版本

image

2、解压php源码文件

[root@zyx ~]# tar -jxvf php-5.3.7.tar.bz2 -C /usr/local/src/  //此文件为源码,解压到/usr/local/src/中

[root@zyx ~]# cd /usr/local/src/

image

[root@zyx src]# cd php-5.3.7/ //切换到该目录下

image

3、查看需要启用的功能

./configure --help

注意:

--prefix=安装目录

--with-apxs2= //把php变成Apache的一个模块

--with-mysql=mysql的安装路径,便于调用

--with-mysqli= mysql的接口程序

--enable-mbstring=//mysql支持长字符串

4、安装php

[root@zyx php-5.3.7]# ./configure --prefix=/usr/local/php  --with-apxs2=/usr/local/apache/bin/apxs  --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring=all  //执行此程序

image

[root@zyx php-5.3.7]# make  //编译

image  //编译结束

由于make test很耗时,这里省去,下去有时间可以尝试

[root@zyx php-5.3.7]# make install   //整理目录

image

整理完毕!

测试:

[root@zyx php-5.3.7]# cd /usr/local/apache/htdocs/

[root@zyx htdocs]# ll
total 4
-rw-r--r-- 1 root root 44 Nov 21  2004 index.html

[root@zyx htdocs]# cat index.html
<html><body><h1>It works!</h1></body></html>[root@zyx htdocs]#

image

 

[root@zyx htdocs]# vim index.html  //编辑此网页

image

[root@zyx htdocs]# mv index.html index.php   //将此网页的名字改为index.php

image

[root@zyx htdocs]# vim /etc/httpd/httpd.conf

image

[root@zyx htdocs]# /usr/local/apache/bin/apachectl stop
[root@zyx htdocs]# /usr/local/apache/bin/apachectl start

image

[root@zyx htdocs]# vim index.php

image

image

[root@zyx htdocs]# service mysqld stop
Shutting down MySQL..                                      [  OK  ]

image