概述:

LAMP(Linux+Apachd+Mysql+Php)是搭建网站的最佳组合(尤其是商务网站),它所有的软件全部是开源免费的,Apache 是世界排名第一的Web 服务器, 根据Netcraf(www.netsraft.co.uk)所作的调查,世界上百分之五十以上的Web 服务器在使用Apache。Apache 的特性:

最新的HTTP/1.1通信协议

拥有简单而强有力的基于文件的配置过程

支持通用网关接口

支持基于IP和基于域名的虚拟主机

支持多种方式的HTTP认证

集成Perl处理模块

集成代理服务器模块

支持实时监视服务器状态和定制服务器日志

支持服务器端包含指令(SSI)

支持安全Socket层(SSL)

提供用户会话过程的跟踪

支持FastCGI

原理:

Apache也是以客户端/服务器模式,常用的客户端程序就是浏览器(如IE),通过统一资源定位器(URL)来查找定位相关的信息,客户端与服务器80端口建立TCP连接,连接后客户端发送访问请求,服务器收到请求后处理相关页面信息返回给客户端,然后断开连接,它属于无连接状态型。

安装Apache软件:

mount -t iso9660 /dev/cdrom /mnt/cdrom

rpm -ivh /mnt/cdrom/Server/httpd-2.2.3-6.el5.i386.rpm

安装完成后默认在/etc/httpd/conf目录下生成主配置文件httpd.conf,不用做任何修改就可能直接运行Apache服务器,首先启动服务器:

service httpd start

Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name, using mail.wudionline.com for ServerName

这个一会修改一下主机对应的域名就可以了(改这里:#ServerName www.example.com:80,把#去掉,再改成自己的域名),或者在/etc/hosts里IP地址所对应的域名即可

最后重启动就不会有此提示了

启动后就可以在浏览器里输入IP地址来浏览服务器了,如图:

看到这个页面说明apache成功运行了,它的默认网站目录指向/var/www/html目录,进程名和服务名为:httpd,修改配置文件的时候最好先备份配置文件,它可供配置出错时及时还原,如果是重量级服务器最好事先在另一台机子上做好配置实验,在不影响服务器运行的前提下测试配置效果,确定无误后方可行修改。它的配置文件的注释文件较多,有兴趣的朋友好好深入研究会有好处的。

cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.bak

vi /etc/httpd/conf/httpd.conf

介绍几个常见的参数:

ServerType standalone Apache //启动方式

ServerRoot "/var/www" //apache配置文件的目录

Timeout 300 //超时时间

KeepAlive on //设置连接的生存期

MaxKeepAliveRequests //每个连接最大请求数

KeepAliveTimeout 15 //保持连接的超时时间

MinSpareServers 5 // 程序最小有5个空闲进程

MaxSpareServers 10 //程序最大有10个空闲进程

StartServer 5 //启动apache时的进程数

MaxClients 200 //同时允许客户数

MaxRequestPerChild 50 //每个客户同时可以有50个子进程

Listen 192.168.2.126:80 //监听端口和IP

BindAddress * //监听的IP地址

AddDefaultCharset GB2312 //服务器默认编码

LoadModule .......... //装载的模块

ExtendedStatus on //可以检阅apache的状态信息(一般设为off)

User onbody

Group nobody //执行apache的用户和组(要用最低权限的用户)

ServerAdmin wuzhuangyan023@163.com //管理员E-mail

ServerName www.wudionline.com //网站域名

DocumentRoot "/var/www" //网页文件目录

Options FollowSymlinks

AllowOverride none

Options Indexes FollowSymlinks

AllowOverride none

Roder allow,deny

Allow from all

UserDir publice_html

DictoryIndex index.htm //首页文件名

AccessFileName .htaccess //控制存取的文件名称

ServerSignature off //是否显示apache版本、主机、连接端口等信息量(为了安全一般设为off)

ServerTokens Prod //与上一句同时使用

ScriptAlias /cgi-bin/ "/var/www/cgi-bin" //定义cgi-bin别名

ErrorLog logs/error_log //错误日志存放点

CustomLog logs/access_log combined //访问日志

<Directory />

Options Indexes FollowSymLinks //表示允许目录浏览(为提高安全性要求去掉Indexes)

AllowOverride None

Order allow,deny //设置访问权限

allow from 192.168.2.0/24 //仅允许192.168.2.0网做访问

</Directory>

一个简单的web服务器只修改以下几个地方就可以正常工作了

DocumentRoot "/var/www/html" //网站文件路径

ServerName www.example.com:80 //服务器名字和端口

ServerAdmin root@localhost //管理员邮件地址,当有错误发生时可以发送错误报告给指定的管理员

Listen 80 //如果想更换服务监听端口则修改这里,一般保持默认值

DirectoryIndex index.html index.html.var //默认首页名称,修改成你要的就可以了

测试网站是否支持php,默认是不支持的

在/var/www/html/index.php里加入<?phpinfo()?>

浏览

它不能正确显示出php相关信息,说明当前环境并不支持php

加入自动启动服务队列

# chkconfig --add httpd
# chkconfig httpd on

安装php让Apache支持php:

1、网上有人提供这种方法:

在AddType application/x-gzip .gz .tgz下面加,让apache支持php后缀

AddType application/x-httpd-php .php

AddType application/x-httpd-php-soure .phps记住后面的点前面有一个空格

在LoadModule cgi_module modules/mod_cgi.so下面加多

LoadModule php5_module /usr/lib/httpd/modules/libphp5.so让apach支持php

2、我用直接安装php组件的方法:

rpm -ivh /mnt/cdrom/Server/php-5.1.6-5.el5.i386.rpm

然后重启Apache就可以直接浏览PHP网页文件了

安装php后就能正确显示php相关说明信息了,呵呵

安装php-mysql:

yum install php-mysql //作用是让php与mysql数据库进行通信,很关键这个程序没有网站不正常。

安装Mysql数据库:

MySQL 是一个真正的多用户、多线程SQL数据库服务器。SQL(结构化查询语言)是世界上最流行的和标准化的数据库语言。 MySQL 是以一个客户机/服务器结构的实现,它由一个服务器守护程序 mysqld 和很多不同的客户程序和库组成

rpm -ivh /mnt/cdrom/Server/mysql-server-5.0.22-2.1.i386.rpm

显示依赖包未安装,此时提示什么包就装什么包,如本例提示缺少mysql-5.0.22-2.1.i386.rpm包,而mysql-5.0.22-2.1.i386.rpm包又缺少perl-DBD-MySQL-3.0007-1.fc6.i386.rpm和libmysqlclient.so.15,所以我们两个都要安装,先装libmysqlclient.so.15,而这个包是包含在mysql-5.0.22-2.1.i386.rpm里,所以先装这个包:

rpm -ivh /mnt/cdrom/Server/mysql-5.0.22-2.1.i386.rpm

rpm -ivh /mnt/cdrom/Server/perl-DBD-MySQL-3.0007-1.fc6.i386.rpm

rpm -ivh /mnt/cdrom/Server/mysql-server-5.0.22-2.1.i386.rpm

它的脚本存放在/etc/rc.d/init.d下,叫mysqld

启动mysql

/etc/rc.d/init.d/mysqld start

加入自动启动服务队列

# chkconfig --add mysqld

# chkconfig   --level   345   mysqld   on

登录mysql

Mysql –u root –p,当看到mysql&gt;说明登录成功了

它的常用命令如下

添加root密码

# mysqladmin -u root password "123456"

Mysqld //是用来启动mysql数据库的命令

mysql –u root –p //登录mysql

create database DatabaseName //创建数据库文件

show databases //显示当前系统数据库

drop database DatabaseName //删除数据库

use databaseName //把指定数据库作为当前数据库

create table TableName (列名 数据类型 备注,...) //在数据库中创建表

show tables //显示当前数据库内的表

drop talbe TableName //删除指定表

insert into TableName set 列名=值,... //插入数据

insert into TableName (列名,...) values (值,...) //插入数据

update TableName set 列名=值,... //更新指定表内容

delete from tableName //删除指定表内容

当然了,上面两条更新和删除如果没有指定条件则对整表操作(更新、删除整个表的内容),一般用法都要指定符合条件才允许操作:

update TableName set 列名=值 where 条件

delete from TableName where 条件

它会更新或删除符合条件的记录

Select 列名(*) from TableName 查询指定表的内容,如果内容较多,则可以只把符合条件的查询出来,

Select * from TableName where id=10

常见错误

至些,LAMP环境搭建成功啦,现在要做的是把一个网站放上去并连接数据库就可以正常使用,下一篇介绍通过openssl保障连接的安全、虚拟机主机架设及常用的安全设置